diff options
Diffstat (limited to 'interface-definitions/include')
182 files changed, 3742 insertions, 543 deletions
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/client-ip-pool-subnet-single.xml.i b/interface-definitions/include/accel-ppp/client-ip-pool-subnet-single.xml.i new file mode 100644 index 000000000..e5918b765 --- /dev/null +++ b/interface-definitions/include/accel-ppp/client-ip-pool-subnet-single.xml.i @@ -0,0 +1,15 @@ +<!-- include start from accel-ppp/client-ip-pool-subnet-single.xml.i --> +<leafNode name="subnet"> +  <properties> +    <help>Client IP subnet (CIDR notation)</help> +    <valueHelp> +      <format>ipv4net</format> +      <description>IPv4 address and prefix length</description> +    </valueHelp> +    <constraint> +      <validator name="ipv4-prefix"/> +    </constraint> +    <constraintErrorMessage>Not a valid CIDR formatted prefix</constraintErrorMessage> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/accel-ppp/client-ipv6-pool.xml.i b/interface-definitions/include/accel-ppp/client-ipv6-pool.xml.i index a692f2335..01cf0e040 100644 --- a/interface-definitions/include/accel-ppp/client-ipv6-pool.xml.i +++ b/interface-definitions/include/accel-ppp/client-ipv6-pool.xml.i @@ -21,7 +21,7 @@                <help>Prefix length used for individual client</help>                <valueHelp>                  <format>u32:48-128</format> -                <description>Client prefix length (default: 64)</description> +                <description>Client prefix length</description>                </valueHelp>                <constraint>                  <validator name="numeric" argument="--range 48-128"/> 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/accel-ppp/radius-additions-rate-limit.xml.i b/interface-definitions/include/accel-ppp/radius-additions-rate-limit.xml.i index be49fce5a..f44920c3f 100644 --- a/interface-definitions/include/accel-ppp/radius-additions-rate-limit.xml.i +++ b/interface-definitions/include/accel-ppp/radius-additions-rate-limit.xml.i @@ -21,6 +21,20 @@          <valueless />        </properties>      </leafNode> +    <leafNode name="multiplier"> +      <properties> +        <help>Shaper multiplier</help> +        <valueHelp> +          <format><0.001-1000></format> +          <description>Shaper multiplier</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0.001-1000 --float"/> +        </constraint> +        <constraintErrorMessage>Multiplier needs to be between 0.001 and 1000</constraintErrorMessage> +      </properties> +      <defaultValue>1</defaultValue> +    </leafNode>    </children>  </node>  <!-- include end --> diff --git a/interface-definitions/include/accel-ppp/radius-additions.xml.i b/interface-definitions/include/accel-ppp/radius-additions.xml.i index 258ece2b5..441c9dda5 100644 --- a/interface-definitions/include/accel-ppp/radius-additions.xml.i +++ b/interface-definitions/include/accel-ppp/radius-additions.xml.i @@ -21,7 +21,7 @@              <help>Accounting port</help>              <valueHelp>                <format>u32:1-65535</format> -              <description>Numeric IP port (default: 1813)</description> +              <description>Numeric IP port</description>              </valueHelp>              <constraint>                <validator name="numeric" argument="--range 1-65535"/> @@ -62,7 +62,7 @@      </leafNode>      <leafNode name="acct-timeout">        <properties> -        <help>Timeout for Interim-Update packets, terminate session afterwards (default 3 seconds)</help> +        <help>Timeout for Interim-Update packets, terminate session afterwards</help>          <valueHelp>            <format>u32:0-60</format>            <description>Timeout in seconds, 0 to keep active</description> @@ -126,7 +126,7 @@          </leafNode>          <leafNode name="port">            <properties> -            <help>Port for Dynamic Authorization Extension server (DM/CoA) (default: 1700)</help> +            <help>Port for Dynamic Authorization Extension server (DM/CoA)</help>              <valueHelp>                <format>u32:1-65535</format>                <description>TCP port</description> diff --git a/interface-definitions/include/arp-ndp-table-size.xml.i b/interface-definitions/include/arp-ndp-table-size.xml.i new file mode 100644 index 000000000..dec86e91a --- /dev/null +++ b/interface-definitions/include/arp-ndp-table-size.xml.i @@ -0,0 +1,14 @@ +<!-- include start from arp-ndp-table-size.xml.i --> +<leafNode name="table-size"> +  <properties> +    <help>Maximum number of entries to keep in the cache</help> +    <completionHelp> +      <list>1024 2048 4096 8192 16384 32768</list> +    </completionHelp> +    <constraint> +      <regex>(1024|2048|4096|8192|16384|32768)</regex> +    </constraint> +  </properties> +  <defaultValue>8192</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/auth-local-users.xml.i b/interface-definitions/include/auth-local-users.xml.i index 8ef09554e..9fb507474 100644 --- a/interface-definitions/include/auth-local-users.xml.i +++ b/interface-definitions/include/auth-local-users.xml.i @@ -7,6 +7,10 @@      <tagNode name="username">        <properties>          <help>Username used for authentication</help> +        <valueHelp> +          <format>txt</format> +          <description>Username used for authentication</description> +        </valueHelp>        </properties>        <children>          #include <include/generic-disable-node.xml.i> diff --git a/interface-definitions/include/bfd.xml.i b/interface-definitions/include/bfd.xml.i deleted file mode 100644 index 2bc3664e1..000000000 --- a/interface-definitions/include/bfd.xml.i +++ /dev/null @@ -1,8 +0,0 @@ -<!-- include start from bfd.xml.i --> -<leafNode name="bfd"> -  <properties> -    <help>Enable Bidirectional Forwarding Detection (BFD)</help> -    <valueless/> -  </properties> -</leafNode> -<!-- include end --> diff --git a/interface-definitions/include/bfd/bfd.xml.i b/interface-definitions/include/bfd/bfd.xml.i new file mode 100644 index 000000000..022956d98 --- /dev/null +++ b/interface-definitions/include/bfd/bfd.xml.i @@ -0,0 +1,10 @@ +<!-- include start from bfd/bfd.xml.i --> +<node name="bfd"> +  <properties> +    <help>Enable Bidirectional Forwarding Detection (BFD)</help> +  </properties> +  <children> +    #include <include/bfd/profile.xml.i> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/bfd-common.xml.i b/interface-definitions/include/bfd/common.xml.i index 1d6ab5d55..126ab9b9a 100644 --- a/interface-definitions/include/bfd-common.xml.i +++ b/interface-definitions/include/bfd/common.xml.i @@ -1,4 +1,4 @@ -<!-- include start from bfd-common.xml.i --> +<!-- include start from bfd/common.xml.i -->  <leafNode name="echo-mode">    <properties>      <help>Enables the echo transmission mode</help> @@ -63,6 +63,12 @@      </leafNode>    </children>  </node> +<leafNode name="passive"> +  <properties> +    <help>Do not attempt to start sessions</help> +    <valueless/> +  </properties> +</leafNode>  <leafNode name="shutdown">    <properties>      <help>Disable this peer</help> diff --git a/interface-definitions/include/bfd/profile.xml.i b/interface-definitions/include/bfd/profile.xml.i new file mode 100644 index 000000000..5ff057286 --- /dev/null +++ b/interface-definitions/include/bfd/profile.xml.i @@ -0,0 +1,14 @@ +<!-- include start from bfd/profile.xml.i --> +<leafNode name="profile"> +  <properties> +    <help>Use settings from BFD profile</help> +    <completionHelp> +      <path>protocols bfd profile</path> +    </completionHelp> +    <valueHelp> +      <format>txt</format> +      <description>BFD profile name</description> +    </valueHelp> +  </properties> +</leafNode> +<!-- include end --> 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-l2vpn-common.xml.i b/interface-definitions/include/bgp/afi-l2vpn-common.xml.i index 8deb189ab..d586635c8 100644 --- a/interface-definitions/include/bgp/afi-l2vpn-common.xml.i +++ b/interface-definitions/include/bgp/afi-l2vpn-common.xml.i @@ -25,7 +25,7 @@            <description>Route target (A.B.C.D:MN|EF:OPQR|GHJK:MN)</description>          </valueHelp>          <constraint> -          <validator name="bgp-route-target" argument="--single"/> +          <validator name="bgp-rd-rt" argument="--route-target"/>          </constraint>        </properties>      </leafNode> @@ -37,7 +37,7 @@            <description>Route target (A.B.C.D:MN|EF:OPQR|GHJK:MN)</description>          </valueHelp>          <constraint> -          <validator name="bgp-route-target" argument="--single"/> +          <validator name="bgp-rd-rt" argument="--route-target"/>          </constraint>        </properties>      </leafNode> @@ -49,7 +49,7 @@            <description>Route target (A.B.C.D:MN|EF:OPQR|GHJK:MN)</description>          </valueHelp>          <constraint> -          <validator name="bgp-route-target" argument="--single"/> +          <validator name="bgp-rd-rt" argument="--route-target"/>          </constraint>        </properties>      </leafNode> 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/afi-route-target-vpn.xml.i b/interface-definitions/include/bgp/afi-route-target-vpn.xml.i index 0cd0fdd76..5784f9eac 100644 --- a/interface-definitions/include/bgp/afi-route-target-vpn.xml.i +++ b/interface-definitions/include/bgp/afi-route-target-vpn.xml.i @@ -17,7 +17,7 @@                <description>Space separated route target list (A.B.C.D:MN|EF:OPQR|GHJK:MN)</description>              </valueHelp>              <constraint> -              <validator name="bgp-route-target" argument="--multi"/> +              <validator name="bgp-rd-rt" argument="--route-target-multi"/>              </constraint>            </properties>          </leafNode> @@ -29,7 +29,7 @@                <description>Space separated route target list (A.B.C.D:MN|EF:OPQR|GHJK:MN)</description>              </valueHelp>              <constraint> -              <validator name="bgp-route-target" argument="--multi"/> +              <validator name="bgp-rd-rt" argument="--route-target-multi"/>              </constraint>            </properties>          </leafNode> @@ -41,7 +41,7 @@                <description>Space separated route target list (A.B.C.D:MN|EF:OPQR|GHJK:MN)</description>              </valueHelp>              <constraint> -              <validator name="bgp-route-target" argument="--multi"/> +              <validator name="bgp-rd-rt" argument="--route-target-multi"/>              </constraint>            </properties>          </leafNode> diff --git a/interface-definitions/include/bgp/afi-common.xml.i b/interface-definitions/include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i index 62beff40c..75221a348 100644 --- a/interface-definitions/include/bgp/afi-common.xml.i +++ b/interface-definitions/include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i @@ -1,4 +1,4 @@ -<!-- include start from bgp/afi-common.xml.i --> +<!-- 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> @@ -11,10 +11,65 @@      <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> +        </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> +        </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> +        </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>AS for routes sent to this peer to be the local AS</help> +    <help>Override ASN in outbound updates to configured neighbor local-as</help>      <valueless/>    </properties>  </leafNode> @@ -122,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-afi-ipv4-labeled-unicast.xml.i b/interface-definitions/include/bgp/neighbor-afi-ipv4-labeled-unicast.xml.i index 45a440fd8..0eae29f5e 100644 --- a/interface-definitions/include/bgp/neighbor-afi-ipv4-labeled-unicast.xml.i +++ b/interface-definitions/include/bgp/neighbor-afi-ipv4-labeled-unicast.xml.i @@ -13,7 +13,7 @@        </children>      </node>      #include <include/bgp/afi-ipv4-prefix-list.xml.i> -    #include <include/bgp/afi-common.xml.i> +    #include <include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i>      #include <include/bgp/afi-default-originate.xml.i>    </children>  </node> diff --git a/interface-definitions/include/bgp/neighbor-afi-ipv4-multicast.xml.i b/interface-definitions/include/bgp/neighbor-afi-ipv4-multicast.xml.i index 6526169ca..4bb6df7c3 100644 --- a/interface-definitions/include/bgp/neighbor-afi-ipv4-multicast.xml.i +++ b/interface-definitions/include/bgp/neighbor-afi-ipv4-multicast.xml.i @@ -13,7 +13,7 @@        </children>      </node>      #include <include/bgp/afi-ipv4-prefix-list.xml.i> -    #include <include/bgp/afi-common.xml.i> +    #include <include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i>      #include <include/bgp/afi-default-originate.xml.i>    </children>  </node> diff --git a/interface-definitions/include/bgp/neighbor-afi-ipv4-unicast.xml.i b/interface-definitions/include/bgp/neighbor-afi-ipv4-unicast.xml.i index b7b7ca5b5..0094ce874 100644 --- a/interface-definitions/include/bgp/neighbor-afi-ipv4-unicast.xml.i +++ b/interface-definitions/include/bgp/neighbor-afi-ipv4-unicast.xml.i @@ -13,7 +13,7 @@        </children>      </node>      #include <include/bgp/afi-ipv4-prefix-list.xml.i> -    #include <include/bgp/afi-common.xml.i> +    #include <include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i>      #include <include/bgp/afi-default-originate.xml.i>    </children>  </node> diff --git a/interface-definitions/include/bgp/neighbor-afi-ipv4-vpn.xml.i b/interface-definitions/include/bgp/neighbor-afi-ipv4-vpn.xml.i index 838327bc9..220f22fe3 100644 --- a/interface-definitions/include/bgp/neighbor-afi-ipv4-vpn.xml.i +++ b/interface-definitions/include/bgp/neighbor-afi-ipv4-vpn.xml.i @@ -5,7 +5,7 @@    </properties>    <children>      #include <include/bgp/afi-ipv4-prefix-list.xml.i> -    #include <include/bgp/afi-common.xml.i> +    #include <include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i>    </children>  </node>  <!-- include end --> diff --git a/interface-definitions/include/bgp/neighbor-afi-ipv6-labeled-unicast.xml.i b/interface-definitions/include/bgp/neighbor-afi-ipv6-labeled-unicast.xml.i index f680b7357..995183571 100644 --- a/interface-definitions/include/bgp/neighbor-afi-ipv6-labeled-unicast.xml.i +++ b/interface-definitions/include/bgp/neighbor-afi-ipv6-labeled-unicast.xml.i @@ -14,7 +14,7 @@      </node>      #include <include/bgp/afi-ipv6-nexthop-local.xml.i>      #include <include/bgp/afi-ipv6-prefix-list.xml.i> -    #include <include/bgp/afi-common.xml.i> +    #include <include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i>      #include <include/bgp/afi-default-originate.xml.i>    </children>  </node> diff --git a/interface-definitions/include/bgp/neighbor-afi-ipv6-multicast.xml.i b/interface-definitions/include/bgp/neighbor-afi-ipv6-multicast.xml.i index 1f8db8361..bb713c313 100644 --- a/interface-definitions/include/bgp/neighbor-afi-ipv6-multicast.xml.i +++ b/interface-definitions/include/bgp/neighbor-afi-ipv6-multicast.xml.i @@ -6,7 +6,7 @@    <children>      #include <include/bgp/afi-ipv6-nexthop-local.xml.i>      #include <include/bgp/afi-ipv6-prefix-list.xml.i> -    #include <include/bgp/afi-common.xml.i> +    #include <include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i>      #include <include/bgp/afi-default-originate.xml.i>    </children>  </node> diff --git a/interface-definitions/include/bgp/neighbor-afi-ipv6-unicast.xml.i b/interface-definitions/include/bgp/neighbor-afi-ipv6-unicast.xml.i index f6b812c28..26a5e7090 100644 --- a/interface-definitions/include/bgp/neighbor-afi-ipv6-unicast.xml.i +++ b/interface-definitions/include/bgp/neighbor-afi-ipv6-unicast.xml.i @@ -14,7 +14,7 @@      </node>      #include <include/bgp/afi-ipv6-nexthop-local.xml.i>      #include <include/bgp/afi-ipv6-prefix-list.xml.i> -    #include <include/bgp/afi-common.xml.i> +    #include <include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i>      #include <include/bgp/afi-default-originate.xml.i>    </children>  </node> diff --git a/interface-definitions/include/bgp/neighbor-afi-ipv6-vpn.xml.i b/interface-definitions/include/bgp/neighbor-afi-ipv6-vpn.xml.i index c0df71cf3..5c6811986 100644 --- a/interface-definitions/include/bgp/neighbor-afi-ipv6-vpn.xml.i +++ b/interface-definitions/include/bgp/neighbor-afi-ipv6-vpn.xml.i @@ -6,7 +6,7 @@    <children>      #include <include/bgp/afi-ipv6-nexthop-local.xml.i>      #include <include/bgp/afi-ipv6-prefix-list.xml.i> -    #include <include/bgp/afi-common.xml.i> +    #include <include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i>    </children>  </node>  <!-- include end --> diff --git a/interface-definitions/include/bgp/neighbor-bfd.xml.i b/interface-definitions/include/bgp/neighbor-bfd.xml.i index d486bdd8a..fac2a1166 100644 --- a/interface-definitions/include/bgp/neighbor-bfd.xml.i +++ b/interface-definitions/include/bgp/neighbor-bfd.xml.i @@ -4,6 +4,7 @@      <help>Enable Bidirectional Forwarding Detection (BFD) support</help>    </properties>    <children> +    #include <include/bfd/profile.xml.i>      <leafNode name="check-control-plane-failure">        <properties>          <help>Allow to write CBIT independence in BFD outgoing packets and read both C-BIT value of BFD and lookup BGP peer status</help> 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/neighbor-shutdown.xml.i b/interface-definitions/include/bgp/neighbor-shutdown.xml.i index 6d15899a6..acc7bc5a9 100644 --- a/interface-definitions/include/bgp/neighbor-shutdown.xml.i +++ b/interface-definitions/include/bgp/neighbor-shutdown.xml.i @@ -1,7 +1,7 @@  <!-- include start from bgp/neighbor-shutdown.xml.i -->  <leafNode name="shutdown">    <properties> -    <help>Administratively shut down this neighbor</help> +    <help>Administratively shutdown this neighbor</help>      <valueless/>    </properties>  </leafNode> diff --git a/interface-definitions/include/bgp/protocol-common-config.xml.i b/interface-definitions/include/bgp/protocol-common-config.xml.i index 2dfae517e..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> @@ -1181,6 +1181,26 @@          </leafNode>        </children>      </node> +    <node name="conditional-advertisement"> +      <properties> +        <help>Conditional advertisement settings</help> +      </properties> +      <children> +        <leafNode name="timer"> +          <properties> +            <help>Set period to rescan BGP table to check if condition is met</help> +            <valueHelp> +              <format>u32:5-240</format> +              <description>Period to rerun the conditional advertisement scanner process</description> +            </valueHelp> +            <constraint> +              <validator name="numeric" argument="--range 5-240"/> +            </constraint> +          </properties> +          <defaultValue>60</defaultValue> +        </leafNode> +      </children> +    </node>      <node name="dampening">        <properties>          <help>Enable route-flap dampening</help> @@ -1343,6 +1363,12 @@          <valueless/>        </properties>      </leafNode> +    <leafNode name="fast-convergence"> +      <properties> +        <help>Teardown sessions immediately whenever peer becomes unreachable</help> +        <valueless/> +      </properties> +    </leafNode>      <node name="graceful-restart">        <properties>          <help>Graceful restart capability parameters</help> @@ -1374,6 +1400,18 @@          <valueless/>        </properties>      </leafNode> +    <leafNode name="minimum-holdtime"> +      <properties> +        <help>BGP minimum holdtime</help> +        <valueHelp> +          <format>u32:1-65535</format> +          <description>Minimum holdtime in seconds</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-65535"/> +        </constraint> +      </properties> +    </leafNode>      <leafNode name="network-import-check">        <properties>          <help>Enable IGP route check for network statements</help> @@ -1392,6 +1430,30 @@          <valueless/>        </properties>      </leafNode> +    <leafNode name="no-suppress-duplicates"> +      <properties> +        <help>Disable suppress duplicate updates if the route actually not changed</help> +        <valueless/> +      </properties> +    </leafNode> +    <leafNode name="reject-as-sets"> +      <properties> +        <help>Reject routes with AS_SET or AS_CONFED_SET flag</help> +        <valueless/> +      </properties> +    </leafNode> +    <leafNode name="shutdown"> +      <properties> +        <help>Administrative shutdown of the BGP instance</help> +        <valueless/> +      </properties> +    </leafNode> +    <leafNode name="suppress-fib-pending"> +      <properties> +        <help>Advertise only routes that are programmed in kernel to peers</help> +        <valueless/> +      </properties> +    </leafNode>      #include <include/router-id.xml.i>    </children>  </node> @@ -1399,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> @@ -1441,4 +1503,4 @@      #include <include/bgp/timers-keepalive.xml.i>    </children>  </node> -<!-- include end -->
\ No newline at end of file +<!-- include end --> 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/bgp/route-distinguisher.xml.i b/interface-definitions/include/bgp/route-distinguisher.xml.i index 6d0aa3ef1..8bc5b452e 100644 --- a/interface-definitions/include/bgp/route-distinguisher.xml.i +++ b/interface-definitions/include/bgp/route-distinguisher.xml.i @@ -7,7 +7,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> +      <validator name="bgp-rd-rt" argument="--route-distinguisher"/>      </constraint>    </properties>  </leafNode> diff --git a/interface-definitions/include/bgp/timers-keepalive.xml.i b/interface-definitions/include/bgp/timers-keepalive.xml.i index b2771e326..b23f96ec8 100644 --- a/interface-definitions/include/bgp/timers-keepalive.xml.i +++ b/interface-definitions/include/bgp/timers-keepalive.xml.i @@ -4,7 +4,7 @@      <help>BGP keepalive interval for this neighbor</help>      <valueHelp>        <format>u32:1-65535</format> -      <description>Keepalive interval in seconds (default 60)</description> +      <description>Keepalive interval in seconds</description>      </valueHelp>      <constraint>        <validator name="numeric" argument="--range 1-65535"/> diff --git a/interface-definitions/include/conntrack/log-common.xml.i b/interface-definitions/include/conntrack/log-common.xml.i new file mode 100644 index 000000000..38799f8f4 --- /dev/null +++ b/interface-definitions/include/conntrack/log-common.xml.i @@ -0,0 +1,20 @@ +<!-- include start from conntrack/log-common.xml.i --> +<leafNode name="destroy"> +  <properties> +    <help>Log connection deletion</help> +    <valueless/> +  </properties> +</leafNode> +<leafNode name="new"> +  <properties> +    <help>Log connection creation</help> +    <valueless/> +  </properties> +</leafNode> +<leafNode name="update"> +  <properties> +    <help>Log connection updates</help> +    <valueless/> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/conntrack/timeout-common-protocols.xml.i b/interface-definitions/include/conntrack/timeout-common-protocols.xml.i new file mode 100644 index 000000000..2676d846e --- /dev/null +++ b/interface-definitions/include/conntrack/timeout-common-protocols.xml.i @@ -0,0 +1,172 @@ +<!-- include start from conntrack/timeout-common-protocols.xml.i --> +<leafNode name="icmp"> +  <properties> +    <help>ICMP timeout in seconds</help> +    <valueHelp> +      <format>u32:1-21474836</format> +      <description>ICMP timeout in seconds</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 1-21474836"/> +    </constraint> +  </properties> +  <defaultValue>30</defaultValue> +</leafNode> +<leafNode name="other"> +  <properties> +    <help>Generic connection timeout in seconds</help> +    <valueHelp> +      <format>u32:1-21474836</format> +      <description>Generic connection timeout in seconds</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 1-21474836"/> +    </constraint> +  </properties> +  <defaultValue>600</defaultValue> +</leafNode> +<node name="tcp"> +  <properties> +    <help>TCP connection timeout options</help> +  </properties> +  <children> +    <leafNode name="close-wait"> +      <properties> +        <help>TCP CLOSE-WAIT timeout in seconds</help> +        <valueHelp> +          <format>u32:1-21474836</format> +          <description>TCP CLOSE-WAIT timeout in seconds</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-21474836"/> +        </constraint> +      </properties> +      <defaultValue>60</defaultValue> +    </leafNode> +    <leafNode name="close"> +      <properties> +        <help>TCP CLOSE timeout in seconds</help> +        <valueHelp> +          <format>u32:1-21474836</format> +          <description>TCP CLOSE timeout in seconds</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-21474836"/> +        </constraint> +      </properties> +      <defaultValue>10</defaultValue> +    </leafNode> +    <leafNode name="established"> +      <properties> +        <help>TCP ESTABLISHED timeout in seconds</help> +        <valueHelp> +          <format>u32:1-21474836</format> +          <description>TCP ESTABLISHED timeout in seconds</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-21474836"/> +        </constraint> +      </properties> +      <defaultValue>432000</defaultValue> +    </leafNode> +    <leafNode name="fin-wait"> +      <properties> +        <help>TCP FIN-WAIT timeout in seconds</help> +        <valueHelp> +          <format>u32:1-21474836</format> +          <description>TCP FIN-WAIT timeout in seconds</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-21474836"/> +        </constraint> +      </properties> +      <defaultValue>120</defaultValue> +    </leafNode> +    <leafNode name="last-ack"> +      <properties> +        <help>TCP LAST-ACK timeout in seconds</help> +        <valueHelp> +          <format>u32:1-21474836</format> +          <description>TCP LAST-ACK timeout in seconds</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-21474836"/> +        </constraint> +      </properties> +      <defaultValue>30</defaultValue> +    </leafNode> +    <leafNode name="syn-recv"> +      <properties> +        <help>TCP SYN-RECEIVED timeout in seconds</help> +        <valueHelp> +          <format>u32:1-21474836</format> +          <description>TCP SYN-RECEIVED timeout in seconds</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-21474836"/> +        </constraint> +      </properties> +      <defaultValue>60</defaultValue> +    </leafNode> +    <leafNode name="syn-sent"> +      <properties> +        <help>TCP SYN-SENT timeout in seconds</help> +        <valueHelp> +          <format>u32:1-21474836</format> +          <description>TCP SYN-SENT timeout in seconds</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-21474836"/> +        </constraint> +      </properties> +      <defaultValue>120</defaultValue> +    </leafNode> +    <leafNode name="time-wait"> +      <properties> +        <help>TCP TIME-WAIT timeout in seconds</help> +        <valueHelp> +          <format>u32:1-21474836</format> +          <description>TCP TIME-WAIT timeout in seconds</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-21474836"/> +        </constraint> +      </properties> +      <defaultValue>120</defaultValue> +    </leafNode> +  </children> +</node> +<node name="udp"> +  <properties> +    <help>UDP timeout options</help> +  </properties> +  <children> +    <leafNode name="other"> +      <properties> +        <help>UDP generic timeout in seconds</help> +        <valueHelp> +          <format>u32:1-21474836</format> +          <description>UDP generic timeout in seconds</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-21474836"/> +        </constraint> +      </properties> +      <defaultValue>30</defaultValue> +    </leafNode> +    <leafNode name="stream"> +      <properties> +        <help>UDP stream timeout in seconds</help> +        <valueHelp> +          <format>u32:1-21474836</format> +          <description>UDP stream timeout in seconds</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-21474836"/> +        </constraint> +      </properties> +      <defaultValue>180</defaultValue> +    </leafNode> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/dhcp/ntp-server.xml.i b/interface-definitions/include/dhcp/ntp-server.xml.i index 32d8207e5..4d7235aa1 100644 --- a/interface-definitions/include/dhcp/ntp-server.xml.i +++ b/interface-definitions/include/dhcp/ntp-server.xml.i @@ -1,15 +1,15 @@  <!-- include start from dhcp/ntp-server.xml.i --> -                  <leafNode name="ntp-server"> -                    <properties> -                      <help>IP address of NTP server</help> -                      <valueHelp> -                        <format>ipv4</format> -                        <description>NTP server IPv4 address</description> -                      </valueHelp> -                      <constraint> -                        <validator name="ipv4-address"/> -                      </constraint> -                      <multi/> -                    </properties> -                  </leafNode> +<leafNode name="ntp-server"> +  <properties> +    <help>IP address of NTP server</help> +    <valueHelp> +      <format>ipv4</format> +      <description>NTP server IPv4 address</description> +    </valueHelp> +    <constraint> +      <validator name="ipv4-address"/> +    </constraint> +    <multi/> +  </properties> +</leafNode>  <!-- include end --> diff --git a/interface-definitions/include/dns/time-to-live.xml.i b/interface-definitions/include/dns/time-to-live.xml.i new file mode 100644 index 000000000..5c1a1472d --- /dev/null +++ b/interface-definitions/include/dns/time-to-live.xml.i @@ -0,0 +1,15 @@ +<!-- include start from dns/time-to-live.xml.i --> +<leafNode name="ttl"> +  <properties> +    <help>Time-to-live (TTL)</help> +    <valueHelp> +      <format>u32:0-2147483647</format> +      <description>TTL in seconds</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 0-2147483647"/> +    </constraint> +  </properties> +  <defaultValue>300</defaultValue> +</leafNode> +<!-- include end --> 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 230f590cb..0f60e3c38 100644 --- a/interface-definitions/include/firewall/action.xml.i +++ b/interface-definitions/include/firewall/action.xml.i @@ -3,18 +3,22 @@    <properties>      <help>Rule action [REQUIRED]</help>      <completionHelp> -      <list>permit deny</list> +      <list>accept reject drop</list>      </completionHelp>      <valueHelp> -      <format>permit</format> -      <description>Permit matching entries</description> +      <format>accept</format> +      <description>Accept matching entries</description>      </valueHelp>      <valueHelp> -      <format>deny</format> -      <description>Deny matching entries</description> +      <format>reject</format> +      <description>Reject matching entries</description> +    </valueHelp> +    <valueHelp> +      <format>drop</format> +      <description>Drop matching entries</description>      </valueHelp>      <constraint> -      <regex>^(permit|deny)$</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 a59c0b390..2a5137dbf 100644 --- a/interface-definitions/include/firewall/common-rule.xml.i +++ b/interface-definitions/include/firewall/common-rule.xml.i @@ -55,7 +55,7 @@          <help>Maximum number of packets to allow in excess of rate</help>          <valueHelp>            <format>u32:0-4294967295</format> -          <description>burst__change_me</description> +          <description>Maximum number of packets to allow in excess of rate</description>          </valueHelp>          <constraint>            <validator name="numeric" argument="--range 0-4294967295"/> @@ -66,11 +66,11 @@        <properties>          <help>Maximum average matching rate</help>          <valueHelp> -          <format>u32:0-4294967295</format> -          <description>rate__change_me</description> +          <format>txt</format> +          <description>integer/unit (Example: 5/minute)</description>          </valueHelp>          <constraint> -          <validator name="numeric" argument="--range 0-4294967295"/> +          <regex>\d+/(second|minute|hour|day)</regex>          </constraint>        </properties>      </leafNode> @@ -91,15 +91,42 @@        <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>      <completionHelp> -      <script>cat /etc/protocols | sed -e '/^#.*/d' | awk '{ print $1 }'</script> +      <script>${vyos_completion_dir}/list_protocols.sh</script> +      <list>all tcp_udp</list>      </completionHelp>      <valueHelp>        <format>all</format> @@ -114,14 +141,17 @@        <description>IP protocol number</description>      </valueHelp>      <valueHelp> +      <format><protocol></format> +      <description>IP protocol name</description> +    </valueHelp> +    <valueHelp>        <format>!<protocol></format> -      <description>IP protocol number</description> +      <description>IP protocol name</description>      </valueHelp>      <constraint>        <validator name="ip-protocol"/>      </constraint>    </properties> -  <defaultValue>all</defaultValue>  </leafNode>  <node name="recent">    <properties> @@ -142,13 +172,24 @@      </leafNode>      <leafNode name="time">        <properties> -        <help>Source addresses seen in the last N seconds</help> +        <help>Source addresses seen in the last second/minute/hour</help> +        <completionHelp> +          <list>second minute hour</list> +        </completionHelp>          <valueHelp> -          <format>u32:0-4294967295</format> -          <description>Source addresses seen in the last N seconds</description> +          <format>second</format> +          <description>Source addresses seen COUNT times in the last second</description> +        </valueHelp> +        <valueHelp> +          <format>minute</format> +          <description>Source addresses seen COUNT times in the last minute</description> +        </valueHelp> +        <valueHelp> +          <format>hour</format> +          <description>Source addresses seen COUNT times in the last hour</description>          </valueHelp>          <constraint> -          <validator name="numeric" argument="--range 0-4294967295"/> +          <regex>(second|minute|hour)</regex>          </constraint>        </properties>      </leafNode> @@ -172,6 +213,9 @@            <format>!<MAC address></format>            <description>Match everything except the specified MAC address</description>          </valueHelp> +        <constraint> +          <validator name="mac-address-firewall"/> +        </constraint>        </properties>      </leafNode>      #include <include/firewall/port.xml.i> @@ -197,7 +241,7 @@            <description>Disable</description>          </valueHelp>          <constraint> -          <regex>^(enable|disable)$</regex> +          <regex>(enable|disable)</regex>          </constraint>        </properties>      </leafNode> @@ -216,7 +260,7 @@            <description>Disable</description>          </valueHelp>          <constraint> -          <regex>^(enable|disable)$</regex> +          <regex>(enable|disable)</regex>          </constraint>        </properties>      </leafNode> @@ -235,7 +279,7 @@            <description>Disable</description>          </valueHelp>          <constraint> -          <regex>^(enable|disable)$</regex> +          <regex>(enable|disable)</regex>          </constraint>        </properties>      </leafNode> @@ -254,71 +298,77 @@            <description>Disable</description>          </valueHelp>          <constraint> -          <regex>^(enable|disable)$</regex> +          <regex>(enable|disable)</regex>          </constraint>        </properties>      </leafNode>    </children>  </node> -<node name="tcp"> -  <properties> -    <help>TCP flags to match</help> -  </properties> -  <children> -    <leafNode name="flags"> -      <properties> -        <help>TCP flags to match</help> -        <valueHelp> -          <format>txt</format> -          <description>TCP flags to match</description> -        </valueHelp> -        <valueHelp> -          <format> </format> -          <description>\n\n  Allowed values for TCP flags : SYN ACK FIN RST URG PSH ALL\n  When specifying more than one flag, flags should be comma-separated.\n For example : value of 'SYN,!ACK,!FIN,!RST' will only match packets with\n  the SYN flag set, and the ACK, FIN and RST flags unset</description> -        </valueHelp> -      </properties> -    </leafNode> -  </children> -</node> +#include <include/firewall/tcp-flags.xml.i>  <node name="time">    <properties>      <help>Time to match rule</help>    </properties>    <children> -    <leafNode name="monthdays"> -      <properties> -        <help>Monthdays to match rule on</help> -      </properties> -    </leafNode>      <leafNode name="startdate">        <properties>          <help>Date to start matching rule</help> +        <valueHelp> +          <format>txt</format> +          <description>Enter date using following notation - YYYY-MM-DD</description> +        </valueHelp> +        <constraint> +          <regex>(\d{4}\-\d{2}\-\d{2})</regex> +        </constraint>        </properties>      </leafNode>      <leafNode name="starttime">        <properties>          <help>Time of day to start matching rule</help> +        <valueHelp> +          <format>txt</format> +          <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> +        </constraint>        </properties>      </leafNode>      <leafNode name="stopdate">        <properties>          <help>Date to stop matching rule</help> +        <valueHelp> +          <format>txt</format> +          <description>Enter date using following notation - YYYY-MM-DD</description> +        </valueHelp> +        <constraint> +          <regex>(\d{4}\-\d{2}\-\d{2})</regex> +        </constraint>        </properties>      </leafNode>      <leafNode name="stoptime">        <properties>          <help>Time of day to stop matching rule</help> -      </properties> -    </leafNode> -    <leafNode name="utc"> -      <properties> -        <help>Interpret times for startdate, stopdate, starttime and stoptime to be UTC</help> -        <valueless/> +        <valueHelp> +          <format>txt</format> +          <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> +        </constraint>        </properties>      </leafNode>      <leafNode name="weekdays">        <properties> -        <help>Weekdays to match rule on</help> +        <help>Comma separated weekdays to match rule on</help> +        <valueHelp> +          <format>txt</format> +          <description>Name of day (Monday, Tuesday, Wednesday, Thursdays, Friday, Saturday, Sunday)</description> +        </valueHelp> +        <valueHelp> +          <format>u32:0-6</format> +          <description>Day number (0 = Sunday ... 6 = Saturday)</description> +        </valueHelp>        </properties>      </leafNode>    </children> diff --git a/interface-definitions/include/firewall/icmp-type-name.xml.i b/interface-definitions/include/firewall/icmp-type-name.xml.i index b45fb619b..d4197cf82 100644 --- a/interface-definitions/include/firewall/icmp-type-name.xml.i +++ b/interface-definitions/include/firewall/icmp-type-name.xml.i @@ -3,170 +3,70 @@    <properties>      <help>ICMP type-name</help>      <completionHelp> -      <list>any echo-reply pong destination-unreachable network-unreachable host-unreachable protocol-unreachable port-unreachable fragmentation-needed source-route-failed network-unknown host-unknown network-prohibited host-prohibited TOS-network-unreachable TOS-host-unreachable communication-prohibited host-precedence-violation precedence-cutoff source-quench redirect network-redirect host-redirect TOS-network-redirect TOS host-redirect echo-request ping router-advertisement router-solicitation time-exceeded ttl-exceeded ttl-zero-during-transit ttl-zero-during-reassembly parameter-problem ip-header-bad required-option-missing timestamp-request timestamp-reply address-mask-request address-mask-reply</list> +      <list>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</list>      </completionHelp>      <valueHelp> -      <format>any</format> -      <description>Any ICMP type/code</description> -    </valueHelp> -    <valueHelp>        <format>echo-reply</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>pong</format> -      <description>ICMP type/code name</description> +      <description>ICMP type 0: echo-reply</description>      </valueHelp>      <valueHelp>        <format>destination-unreachable</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>network-unreachable</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>host-unreachable</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>protocol-unreachable</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>port-unreachable</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>fragmentation-needed</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>source-route-failed</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>network-unknown</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>host-unknown</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>network-prohibited</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>host-prohibited</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>TOS-network-unreachable</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>TOS-host-unreachable</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>communication-prohibited</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>host-precedence-violation</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>precedence-cutoff</format> -      <description>ICMP type/code name</description> +      <description>ICMP type 3: destination-unreachable</description>      </valueHelp>      <valueHelp>        <format>source-quench</format> -      <description>ICMP type/code name</description> +      <description>ICMP type 4: source-quench</description>      </valueHelp>      <valueHelp>        <format>redirect</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>network-redirect</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>host-redirect</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>TOS-network-redirect</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>TOS host-redirect</format> -      <description>ICMP type/code name</description> +      <description>ICMP type 5: redirect</description>      </valueHelp>      <valueHelp>        <format>echo-request</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>ping</format> -      <description>ICMP type/code name</description> +      <description>ICMP type 8: echo-request</description>      </valueHelp>      <valueHelp>        <format>router-advertisement</format> -      <description>ICMP type/code name</description> +      <description>ICMP type 9: router-advertisement</description>      </valueHelp>      <valueHelp>        <format>router-solicitation</format> -      <description>ICMP type/code name</description> +      <description>ICMP type 10: router-solicitation</description>      </valueHelp>      <valueHelp>        <format>time-exceeded</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>ttl-exceeded</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>ttl-zero-during-transit</format> -      <description>ICMP type/code name</description> -    </valueHelp> -    <valueHelp> -      <format>ttl-zero-during-reassembly</format> -      <description>ICMP type/code name</description> +      <description>ICMP type 11: time-exceeded</description>      </valueHelp>      <valueHelp>        <format>parameter-problem</format> -      <description>ICMP type/code name</description> +      <description>ICMP type 12: parameter-problem</description>      </valueHelp>      <valueHelp> -      <format>ip-header-bad</format> -      <description>ICMP type/code name</description> +      <format>timestamp-request</format> +      <description>ICMP type 13: timestamp-request</description>      </valueHelp>      <valueHelp> -      <format>required-option-missing</format> -      <description>ICMP type/code name</description> +      <format>timestamp-reply</format> +      <description>ICMP type 14: timestamp-reply</description>      </valueHelp>      <valueHelp> -      <format>timestamp-request</format> -      <description>ICMP type/code name</description> +      <format>info-request</format> +      <description>ICMP type 15: info-request</description>      </valueHelp>      <valueHelp> -      <format>timestamp-reply</format> -      <description>ICMP type/code name</description> +      <format>info-reply</format> +      <description>ICMP type 16: info-reply</description>      </valueHelp>      <valueHelp>        <format>address-mask-request</format> -      <description>ICMP type/code name</description> +      <description>ICMP type 17: address-mask-request</description>      </valueHelp>      <valueHelp>        <format>address-mask-reply</format> -      <description>ICMP type/code name</description> +      <description>ICMP type 18: address-mask-reply</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)$</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 new file mode 100644 index 000000000..a2e68abfb --- /dev/null +++ b/interface-definitions/include/firewall/icmpv6-type-name.xml.i @@ -0,0 +1,73 @@ +<!-- include start from firewall/icmpv6-type-name.xml.i --> +<leafNode name="type-name"> +  <properties> +    <help>ICMPv6 type-name</help> +    <completionHelp> +      <list>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</list> +    </completionHelp> +    <valueHelp> +      <format>destination-unreachable</format> +      <description>ICMPv6 type 1: destination-unreachable</description> +    </valueHelp> +    <valueHelp> +      <format>packet-too-big</format> +      <description>ICMPv6 type 2: packet-too-big</description> +    </valueHelp> +    <valueHelp> +      <format>time-exceeded</format> +      <description>ICMPv6 type 3: time-exceeded</description> +    </valueHelp> +    <valueHelp> +      <format>echo-request</format> +      <description>ICMPv6 type 128: echo-request</description> +    </valueHelp> +    <valueHelp> +      <format>echo-reply</format> +      <description>ICMPv6 type 129: echo-reply</description> +    </valueHelp> +    <valueHelp> +      <format>mld-listener-query</format> +      <description>ICMPv6 type 130: mld-listener-query</description> +    </valueHelp> +    <valueHelp> +      <format>mld-listener-report</format> +      <description>ICMPv6 type 131: mld-listener-report</description> +    </valueHelp> +    <valueHelp> +      <format>mld-listener-reduction</format> +      <description>ICMPv6 type 132: mld-listener-reduction</description> +    </valueHelp> +    <valueHelp> +      <format>nd-router-solicit</format> +      <description>ICMPv6 type 133: nd-router-solicit</description> +    </valueHelp> +    <valueHelp> +      <format>nd-router-advert</format> +      <description>ICMPv6 type 134: nd-router-advert</description> +    </valueHelp> +    <valueHelp> +      <format>nd-neighbor-solicit</format> +      <description>ICMPv6 type 135: nd-neighbor-solicit</description> +    </valueHelp> +    <valueHelp> +      <format>nd-neighbor-advert</format> +      <description>ICMPv6 type 136: nd-neighbor-advert</description> +    </valueHelp> +    <valueHelp> +      <format>nd-redirect</format> +      <description>ICMPv6 type 137: nd-redirect</description> +    </valueHelp> +    <valueHelp> +      <format>parameter-problem</format> +      <description>ICMPv6 type 4: parameter-problem</description> +    </valueHelp> +    <valueHelp> +      <format>router-renumbering</format> +      <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> +    </constraint> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/firewall/mac-group.xml.i b/interface-definitions/include/firewall/mac-group.xml.i new file mode 100644 index 000000000..dbce3fc88 --- /dev/null +++ b/interface-definitions/include/firewall/mac-group.xml.i @@ -0,0 +1,10 @@ +<!-- include start from firewall/mac-group.xml.i --> +<leafNode name="mac-group"> +  <properties> +    <help>Group of MAC addresses</help> +    <completionHelp> +      <path>firewall group mac-group</path> +    </completionHelp> +  </properties> +</leafNode> +<!-- include start from firewall/mac-group.xml.i -->
\ No newline at end of file diff --git a/interface-definitions/include/firewall/name-default-action.xml.i b/interface-definitions/include/firewall/name-default-action.xml.i index 1b61b076f..512b0296f 100644 --- a/interface-definitions/include/firewall/name-default-action.xml.i +++ b/interface-definitions/include/firewall/name-default-action.xml.i @@ -7,7 +7,7 @@      </completionHelp>      <valueHelp>        <format>drop</format> -      <description>Drop if no prior rules are hit (default)</description> +      <description>Drop if no prior rules are hit</description>      </valueHelp>      <valueHelp>        <format>reject</format> @@ -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/firewall/port.xml.i b/interface-definitions/include/firewall/port.xml.i index 59d92978b..3bacafff8 100644 --- a/interface-definitions/include/firewall/port.xml.i +++ b/interface-definitions/include/firewall/port.xml.i @@ -16,8 +16,11 @@      </valueHelp>      <valueHelp>        <format> </format> -      <description>\n\n  Multiple destination ports can be specified as a comma-separated list.\n  The whole list can also be negated using '!'.\n  For example: '!22,telnet,http,123,1001-1005'</description> +      <description>\n\n  Multiple destination ports can be specified as a comma-separated list.\n  For example: 'telnet,http,123,1001-1005'</description>      </valueHelp> +    <constraint> +      <validator name="port-multi"/> +    </constraint>    </properties>  </leafNode>  <!-- include end --> diff --git a/interface-definitions/include/firewall/source-destination-group-ipv6.xml.i b/interface-definitions/include/firewall/source-destination-group-ipv6.xml.i new file mode 100644 index 000000000..c2cc7edb3 --- /dev/null +++ b/interface-definitions/include/firewall/source-destination-group-ipv6.xml.i @@ -0,0 +1,34 @@ +<!-- include start from firewall/source-destination-group-ipv6.xml.i --> +<node name="group"> +  <properties> +    <help>Group</help> +  </properties> +  <children> +    <leafNode name="address-group"> +      <properties> +        <help>Group of addresses</help> +        <completionHelp> +          <path>firewall group ipv6-address-group</path> +        </completionHelp> +      </properties> +    </leafNode> +    #include <include/firewall/mac-group.xml.i> +    <leafNode name="network-group"> +      <properties> +        <help>Group of networks</help> +        <completionHelp> +          <path>firewall group ipv6-network-group</path> +        </completionHelp> +      </properties> +    </leafNode> +    <leafNode name="port-group"> +      <properties> +        <help>Group of ports</help> +        <completionHelp> +          <path>firewall group port-group</path> +        </completionHelp> +      </properties> +    </leafNode> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/firewall/source-destination-group.xml.i b/interface-definitions/include/firewall/source-destination-group.xml.i index 30226b0d8..ab11e89e9 100644 --- a/interface-definitions/include/firewall/source-destination-group.xml.i +++ b/interface-definitions/include/firewall/source-destination-group.xml.i @@ -7,16 +7,26 @@      <leafNode name="address-group">        <properties>          <help>Group of addresses</help> +        <completionHelp> +          <path>firewall group address-group</path> +        </completionHelp>        </properties>      </leafNode> +    #include <include/firewall/mac-group.xml.i>      <leafNode name="network-group">        <properties>          <help>Group of networks</help> +        <completionHelp> +          <path>firewall group network-group</path> +        </completionHelp>        </properties>      </leafNode>      <leafNode name="port-group">        <properties>          <help>Group of ports</help> +        <completionHelp> +          <path>firewall group port-group</path> +        </completionHelp>        </properties>      </leafNode>    </children> diff --git a/interface-definitions/include/firewall/tcp-flags.xml.i b/interface-definitions/include/firewall/tcp-flags.xml.i new file mode 100644 index 000000000..b99896687 --- /dev/null +++ b/interface-definitions/include/firewall/tcp-flags.xml.i @@ -0,0 +1,119 @@ +<!-- include start from firewall/tcp-flags.xml.i --> +<node name="tcp"> +  <properties> +    <help>TCP flags to match</help> +  </properties> +  <children> +    <node name="flags"> +      <properties> +        <help>TCP flags to match</help> +      </properties> +      <children> +        <leafNode name="syn"> +          <properties> +            <help>Synchronise flag</help> +            <valueless/> +          </properties> +        </leafNode> +        <leafNode name="ack"> +          <properties> +            <help>Acknowledge flag</help> +            <valueless/> +          </properties> +        </leafNode> +        <leafNode name="fin"> +          <properties> +            <help>Finish flag</help> +            <valueless/> +          </properties> +        </leafNode> +        <leafNode name="rst"> +          <properties> +            <help>Reset flag</help> +            <valueless/> +          </properties> +        </leafNode> +        <leafNode name="urg"> +          <properties> +            <help>Urgent flag</help> +            <valueless/> +          </properties> +        </leafNode> +        <leafNode name="psh"> +          <properties> +            <help>Push flag</help> +            <valueless/> +          </properties> +        </leafNode> +        <leafNode name="ecn"> +          <properties> +            <help>Explicit Congestion Notification flag</help> +            <valueless/> +          </properties> +        </leafNode> +        <leafNode name="cwr"> +          <properties> +            <help>Congestion Window Reduced flag</help> +            <valueless/> +          </properties> +        </leafNode> +        <node name="not"> +          <properties> +            <help>Match flags not set</help> +          </properties> +          <children> +            <leafNode name="syn"> +              <properties> +                <help>Synchronise flag</help> +                <valueless/> +              </properties> +            </leafNode> +            <leafNode name="ack"> +              <properties> +                <help>Acknowledge flag</help> +                <valueless/> +              </properties> +            </leafNode> +            <leafNode name="fin"> +              <properties> +                <help>Finish flag</help> +                <valueless/> +              </properties> +            </leafNode> +            <leafNode name="rst"> +              <properties> +                <help>Reset flag</help> +                <valueless/> +              </properties> +            </leafNode> +            <leafNode name="urg"> +              <properties> +                <help>Urgent flag</help> +                <valueless/> +              </properties> +            </leafNode> +            <leafNode name="psh"> +              <properties> +                <help>Push flag</help> +                <valueless/> +              </properties> +            </leafNode> +            <leafNode name="ecn"> +              <properties> +                <help>Explicit Congestion Notification flag</help> +                <valueless/> +              </properties> +            </leafNode> +            <leafNode name="cwr"> +              <properties> +                <help>Congestion Window Reduced flag</help> +                <valueless/> +              </properties> +            </leafNode> +          </children> +        </node> +      </children> +    </node> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/generic-disable-node.xml.i b/interface-definitions/include/generic-disable-node.xml.i index bb4fa5c4b..97a328ecc 100644 --- a/interface-definitions/include/generic-disable-node.xml.i +++ b/interface-definitions/include/generic-disable-node.xml.i @@ -1,7 +1,7 @@  <!-- include start from generic-disable-node.xml.i -->  <leafNode name="disable">    <properties> -    <help>Temporary disable</help> +    <help>Disable instance</help>      <valueless/>    </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/arp-cache-timeout.xml.i b/interface-definitions/include/interface/arp-cache-timeout.xml.i index cb01d0525..06d7ffe96 100644 --- a/interface-definitions/include/interface/arp-cache-timeout.xml.i +++ b/interface-definitions/include/interface/arp-cache-timeout.xml.i @@ -4,7 +4,7 @@      <help>ARP cache entry timeout in seconds</help>      <valueHelp>        <format>u32:1-86400</format> -      <description>ARP cache entry timout in seconds (default 30)</description> +      <description>ARP cache entry timout in seconds</description>      </valueHelp>      <constraint>        <validator name="numeric" argument="--range 1-86400"/> 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 b65b0802a..914b60503 100644 --- a/interface-definitions/include/interface/dhcp-options.xml.i +++ b/interface-definitions/include/interface/dhcp-options.xml.i @@ -19,24 +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 (default 210)</description> -        </valueHelp> -        <constraint> -          <validator name="numeric" argument="--range 1-255"/> -        </constraint> -      </properties> -    </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/dhcpv6-options.xml.i b/interface-definitions/include/interface/dhcpv6-options.xml.i index d1abf4a90..08e4f5e0a 100644 --- a/interface-definitions/include/interface/dhcpv6-options.xml.i +++ b/interface-definitions/include/interface/dhcpv6-options.xml.i @@ -57,10 +57,10 @@            <children>              <leafNode name="address">                <properties> -                <help>Local interface address assigned to interface</help> +                <help>Local interface address assigned to interface (default: EUI-64)</help>                  <valueHelp>                    <format>>0</format> -                  <description>Used to form IPv6 interface address (default: EUI-64)</description> +                  <description>Used to form IPv6 interface address</description>                  </valueHelp>                  <constraint>                    <validator name="numeric" argument="--non-negative"/> diff --git a/interface-definitions/include/interface/inbound-interface.xml.i b/interface-definitions/include/interface/inbound-interface.xml.i new file mode 100644 index 000000000..5a8d47280 --- /dev/null +++ b/interface-definitions/include/interface/inbound-interface.xml.i @@ -0,0 +1,10 @@ +<!-- include start from interface/inbound-interface.xml.i --> +<leafNode name="inbound-interface"> +  <properties> +  <help>Inbound Interface</help> +  <completionHelp> +    <script>${vyos_completion_dir}/list_interfaces.py</script> +  </completionHelp> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/interface/interface-firewall-vif-c.xml.i b/interface-definitions/include/interface/interface-firewall-vif-c.xml.i new file mode 100644 index 000000000..1bc235fcb --- /dev/null +++ b/interface-definitions/include/interface/interface-firewall-vif-c.xml.i @@ -0,0 +1,79 @@ +<!-- include start from interface/interface-firewall-vif-c.xml.i --> +<node name="firewall" owner="${vyos_conf_scripts_dir}/firewall-interface.py $VAR(../../../@).$VAR(../../@).$VAR(../@)"> +  <properties> +    <priority>615</priority> +    <help>Firewall options</help> +  </properties> +  <children> +    <node name="in"> +      <properties> +        <help>forwarded packets on inbound interface</help> +      </properties> +      <children> +        <leafNode name="name"> +          <properties> +            <help>Inbound IPv4 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall name</path> +            </completionHelp> +          </properties> +        </leafNode> +        <leafNode name="ipv6-name"> +          <properties> +            <help>Inbound IPv6 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall ipv6-name</path> +            </completionHelp> +          </properties> +        </leafNode> +      </children> +    </node> +    <node name="out"> +      <properties> +        <help>forwarded packets on outbound interface</help> +      </properties> +      <children> +        <leafNode name="name"> +          <properties> +            <help>Outbound IPv4 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall name</path> +            </completionHelp> +          </properties> +        </leafNode> +        <leafNode name="ipv6-name"> +          <properties> +            <help>Outbound IPv6 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall ipv6-name</path> +            </completionHelp> +          </properties> +        </leafNode> +      </children> +    </node> +    <node name="local"> +      <properties> +        <help>packets destined for this router</help> +      </properties> +      <children> +        <leafNode name="name"> +          <properties> +            <help>Local IPv4 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall name</path> +            </completionHelp> +          </properties> +        </leafNode> +        <leafNode name="ipv6-name"> +          <properties> +            <help>Local IPv6 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall ipv6-name</path> +            </completionHelp> +          </properties> +        </leafNode> +      </children> +    </node> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/interface/interface-firewall-vif.xml.i b/interface-definitions/include/interface/interface-firewall-vif.xml.i new file mode 100644 index 000000000..a37ac5c4a --- /dev/null +++ b/interface-definitions/include/interface/interface-firewall-vif.xml.i @@ -0,0 +1,79 @@ +<!-- include start from interface/interface-firewall-vif.xml.i --> +<node name="firewall" owner="${vyos_conf_scripts_dir}/firewall-interface.py $VAR(../../@).$VAR(../@)"> +  <properties> +    <priority>615</priority> +    <help>Firewall options</help> +  </properties> +  <children> +    <node name="in"> +      <properties> +        <help>forwarded packets on inbound interface</help> +      </properties> +      <children> +        <leafNode name="name"> +          <properties> +            <help>Inbound IPv4 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall name</path> +            </completionHelp> +          </properties> +        </leafNode> +        <leafNode name="ipv6-name"> +          <properties> +            <help>Inbound IPv6 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall ipv6-name</path> +            </completionHelp> +          </properties> +        </leafNode> +      </children> +    </node> +    <node name="out"> +      <properties> +        <help>forwarded packets on outbound interface</help> +      </properties> +      <children> +        <leafNode name="name"> +          <properties> +            <help>Outbound IPv4 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall name</path> +            </completionHelp> +          </properties> +        </leafNode> +        <leafNode name="ipv6-name"> +          <properties> +            <help>Outbound IPv6 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall ipv6-name</path> +            </completionHelp> +          </properties> +        </leafNode> +      </children> +    </node> +    <node name="local"> +      <properties> +        <help>packets destined for this router</help> +      </properties> +      <children> +        <leafNode name="name"> +          <properties> +            <help>Local IPv4 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall name</path> +            </completionHelp> +          </properties> +        </leafNode> +        <leafNode name="ipv6-name"> +          <properties> +            <help>Local IPv6 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall ipv6-name</path> +            </completionHelp> +          </properties> +        </leafNode> +      </children> +    </node> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/interface/interface-firewall.xml.i b/interface-definitions/include/interface/interface-firewall.xml.i new file mode 100644 index 000000000..b3f20c3bf --- /dev/null +++ b/interface-definitions/include/interface/interface-firewall.xml.i @@ -0,0 +1,79 @@ +<!-- include start from interface/interface-firewall.xml.i --> +<node name="firewall" owner="${vyos_conf_scripts_dir}/firewall-interface.py $VAR(../@)"> +  <properties> +    <priority>615</priority> +    <help>Firewall options</help> +  </properties> +  <children> +    <node name="in"> +      <properties> +        <help>forwarded packets on inbound interface</help> +      </properties> +      <children> +        <leafNode name="name"> +          <properties> +            <help>Inbound IPv4 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall name</path> +            </completionHelp> +          </properties> +        </leafNode> +        <leafNode name="ipv6-name"> +          <properties> +            <help>Inbound IPv6 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall ipv6-name</path> +            </completionHelp> +          </properties> +        </leafNode> +      </children> +    </node> +    <node name="out"> +      <properties> +        <help>forwarded packets on outbound interface</help> +      </properties> +      <children> +        <leafNode name="name"> +          <properties> +            <help>Outbound IPv4 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall name</path> +            </completionHelp> +          </properties> +        </leafNode> +        <leafNode name="ipv6-name"> +          <properties> +            <help>Outbound IPv6 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall ipv6-name</path> +            </completionHelp> +          </properties> +        </leafNode> +      </children> +    </node> +    <node name="local"> +      <properties> +        <help>packets destined for this router</help> +      </properties> +      <children> +        <leafNode name="name"> +          <properties> +            <help>Local IPv4 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall name</path> +            </completionHelp> +          </properties> +        </leafNode> +        <leafNode name="ipv6-name"> +          <properties> +            <help>Local IPv6 firewall ruleset name for interface</help> +            <completionHelp> +              <path>firewall ipv6-name</path> +            </completionHelp> +          </properties> +        </leafNode> +      </children> +    </node> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/interface/interface-policy-vif-c.xml.i b/interface-definitions/include/interface/interface-policy-vif-c.xml.i new file mode 100644 index 000000000..866fcd5c0 --- /dev/null +++ b/interface-definitions/include/interface/interface-policy-vif-c.xml.i @@ -0,0 +1,26 @@ +<!-- include start from interface/interface-policy-vif-c.xml.i --> +<node name="policy" owner="${vyos_conf_scripts_dir}/policy-route-interface.py $VAR(../../../@).$VAR(../../@).$VAR(../@)"> +  <properties> +    <priority>620</priority> +    <help>Policy route options</help> +  </properties> +  <children> +    <leafNode name="route"> +      <properties> +        <help>IPv4 policy route ruleset for interface</help> +        <completionHelp> +          <path>policy route</path> +        </completionHelp> +      </properties> +    </leafNode> +    <leafNode name="route6"> +      <properties> +        <help>IPv6 policy route ruleset for interface</help> +        <completionHelp> +          <path>policy route6</path> +        </completionHelp> +      </properties> +    </leafNode> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/interface/interface-policy-vif.xml.i b/interface-definitions/include/interface/interface-policy-vif.xml.i new file mode 100644 index 000000000..83510fe59 --- /dev/null +++ b/interface-definitions/include/interface/interface-policy-vif.xml.i @@ -0,0 +1,26 @@ +<!-- include start from interface/interface-policy-vif.xml.i --> +<node name="policy" owner="${vyos_conf_scripts_dir}/policy-route-interface.py $VAR(../../@).$VAR(../@)"> +  <properties> +    <priority>620</priority> +    <help>Policy route options</help> +  </properties> +  <children> +    <leafNode name="route"> +      <properties> +        <help>IPv4 policy route ruleset for interface</help> +        <completionHelp> +          <path>policy route</path> +        </completionHelp> +      </properties> +    </leafNode> +    <leafNode name="route6"> +      <properties> +        <help>IPv6 policy route ruleset for interface</help> +        <completionHelp> +          <path>policy route6</path> +        </completionHelp> +      </properties> +    </leafNode> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/interface/interface-policy.xml.i b/interface-definitions/include/interface/interface-policy.xml.i new file mode 100644 index 000000000..42a8fd009 --- /dev/null +++ b/interface-definitions/include/interface/interface-policy.xml.i @@ -0,0 +1,26 @@ +<!-- include start from interface/interface-policy.xml.i --> +<node name="policy" owner="${vyos_conf_scripts_dir}/policy-route-interface.py $VAR(../@)"> +  <properties> +    <priority>620</priority> +    <help>Policy route options</help> +  </properties> +  <children> +    <leafNode name="route"> +      <properties> +        <help>IPv4 policy route ruleset for interface</help> +        <completionHelp> +          <path>policy route</path> +        </completionHelp> +      </properties> +    </leafNode> +    <leafNode name="route6"> +      <properties> +        <help>IPv6 policy route ruleset for interface</help> +        <completionHelp> +          <path>policy route6</path> +        </completionHelp> +      </properties> +    </leafNode> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/interface/netns.xml.i b/interface-definitions/include/interface/netns.xml.i new file mode 100644 index 000000000..39f9118fa --- /dev/null +++ b/interface-definitions/include/interface/netns.xml.i @@ -0,0 +1,14 @@ +<!-- include start from interface/netns.xml.i --> +<leafNode name="netns"> +  <properties> +    <help>Network namespace name</help> +    <valueHelp> +      <format>text</format> +      <description>Network namespace name</description> +    </valueHelp> +    <completionHelp> +      <path>netns name</path> +    </completionHelp> +  </properties> +</leafNode> +<!-- include end --> 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-df.xml.i b/interface-definitions/include/interface/parameters-df.xml.i new file mode 100644 index 000000000..82436b5e4 --- /dev/null +++ b/interface-definitions/include/interface/parameters-df.xml.i @@ -0,0 +1,26 @@ +<!-- include start from interface/parameters-df.xml.i --> +<leafNode name="df"> +  <properties> +    <help>Usage of the DF (don't Fragment) bit in outgoing packets</help> +    <completionHelp> +      <list>set unset inherit</list> +    </completionHelp> +    <valueHelp> +      <format>set</format> +      <description>Always set DF (don't fragment) bit</description> +    </valueHelp> +    <valueHelp> +      <format>unset</format> +      <description>Always unset DF (don't fragment) bit</description> +    </valueHelp> +    <valueHelp> +      <format>inherit</format> +      <description>Copy from the original IP header</description> +    </valueHelp> +    <constraint> +      <regex>(set|unset|inherit)</regex> +    </constraint> +  </properties> +  <defaultValue>unset</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/interface/parameters-dont-fragment.xml.i b/interface-definitions/include/interface/parameters-dont-fragment.xml.i deleted file mode 100644 index d34f0a97b..000000000 --- a/interface-definitions/include/interface/parameters-dont-fragment.xml.i +++ /dev/null @@ -1,8 +0,0 @@ -<!-- include start from interface/parameters-df.xml.i --> -<leafNode name="dont-fragment"> -  <properties> -    <help>Specifies the usage of the dont fragment (DF) bit</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/redirect.xml.i b/interface-definitions/include/interface/redirect.xml.i new file mode 100644 index 000000000..3be9ee16b --- /dev/null +++ b/interface-definitions/include/interface/redirect.xml.i @@ -0,0 +1,17 @@ +<!-- include start from interface/redirect.xml.i --> +<leafNode name="redirect"> +  <properties> +    <help>Incoming packet redirection destination</help> +    <completionHelp> +      <script>${vyos_completion_dir}/list_interfaces.py</script> +    </completionHelp> +    <valueHelp> +      <format>txt</format> +      <description>Interface name</description> +    </valueHelp> +    <constraint> +      <validator name="interface-name"/> +    </constraint> +  </properties> +</leafNode> +<!-- include end --> 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/tunnel-remote-multi.xml.i b/interface-definitions/include/interface/tunnel-remote-multi.xml.i new file mode 100644 index 000000000..f672087a4 --- /dev/null +++ b/interface-definitions/include/interface/tunnel-remote-multi.xml.i @@ -0,0 +1,19 @@ +<!-- include start from interface/tunnel-remote-multi.xml.i --> +<leafNode name="remote"> +  <properties> +    <help>Tunnel remote address</help> +    <valueHelp> +      <format>ipv4</format> +      <description>Tunnel remote IPv4 address</description> +    </valueHelp> +    <valueHelp> +      <format>ipv6</format> +      <description>Tunnel remote IPv6 address</description> +    </valueHelp> +    <constraint> +      <validator name="ip-address"/> +    </constraint> +    <multi/> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/interface/tunnel-remote.xml.i b/interface-definitions/include/interface/tunnel-remote.xml.i index 1ba9b0382..2a8891b85 100644 --- a/interface-definitions/include/interface/tunnel-remote.xml.i +++ b/interface-definitions/include/interface/tunnel-remote.xml.i @@ -1,4 +1,4 @@ -<!-- include start from rip/tunnel-remote.xml.i --> +<!-- include start from interface/tunnel-remote.xml.i -->  <leafNode name="remote">    <properties>      <help>Tunnel remote address</help> diff --git a/interface-definitions/include/interface/vif-s.xml.i b/interface-definitions/include/interface/vif-s.xml.i index e7ba6d193..c1af9f9e3 100644 --- a/interface-definitions/include/interface/vif-s.xml.i +++ b/interface-definitions/include/interface/vif-s.xml.i @@ -18,6 +18,8 @@      #include <include/interface/dhcpv6-options.xml.i>      #include <include/interface/disable-link-detect.xml.i>      #include <include/interface/disable.xml.i> +    #include <include/interface/interface-firewall-vif.xml.i> +    #include <include/interface/interface-policy-vif.xml.i>      <leafNode name="protocol">        <properties>          <help>Protocol used for service VLAN (default: 802.1ad)</help> @@ -33,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> @@ -42,6 +44,7 @@      #include <include/interface/ipv4-options.xml.i>      #include <include/interface/ipv6-options.xml.i>      #include <include/interface/mac.xml.i> +    #include <include/interface/mirror.xml.i>      #include <include/interface/mtu-68-16000.xml.i>      <tagNode name="vif-c">        <properties> @@ -61,10 +64,15 @@          #include <include/interface/ipv4-options.xml.i>          #include <include/interface/ipv6-options.xml.i>          #include <include/interface/mac.xml.i> +        #include <include/interface/mirror.xml.i>          #include <include/interface/mtu-68-16000.xml.i> +        #include <include/interface/redirect.xml.i>          #include <include/interface/vrf.xml.i> +        #include <include/interface/interface-firewall-vif-c.xml.i> +        #include <include/interface/interface-policy-vif-c.xml.i>        </children>      </tagNode> +    #include <include/interface/redirect.xml.i>      #include <include/interface/vrf.xml.i>    </children>  </tagNode> diff --git a/interface-definitions/include/interface/vif.xml.i b/interface-definitions/include/interface/vif.xml.i index 5644c554f..57ef8d64c 100644 --- a/interface-definitions/include/interface/vif.xml.i +++ b/interface-definitions/include/interface/vif.xml.i @@ -18,7 +18,8 @@      #include <include/interface/dhcpv6-options.xml.i>      #include <include/interface/disable-link-detect.xml.i>      #include <include/interface/disable.xml.i> -    #include <include/interface/vrf.xml.i> +    #include <include/interface/interface-firewall-vif.xml.i> +    #include <include/interface/interface-policy-vif.xml.i>      <leafNode name="egress-qos">        <properties>          <help>VLAN egress QoS</help> @@ -27,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> @@ -40,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> @@ -48,7 +49,10 @@      #include <include/interface/ipv4-options.xml.i>      #include <include/interface/ipv6-options.xml.i>      #include <include/interface/mac.xml.i> +    #include <include/interface/mirror.xml.i>      #include <include/interface/mtu-68-16000.xml.i> +    #include <include/interface/redirect.xml.i> +    #include <include/interface/vrf.xml.i>    </children>  </tagNode>  <!-- include end --> diff --git a/interface-definitions/include/interface/vrf.xml.i b/interface-definitions/include/interface/vrf.xml.i index 5ad978a27..8605f56e8 100644 --- a/interface-definitions/include/interface/vrf.xml.i +++ b/interface-definitions/include/interface/vrf.xml.i @@ -3,7 +3,7 @@    <properties>      <help>VRF instance name</help>      <valueHelp> -      <format>text</format> +      <format>txt</format>        <description>VRF instance name</description>      </valueHelp>      <completionHelp> diff --git a/interface-definitions/include/ipsec/local-address.xml.i b/interface-definitions/include/ipsec/local-address.xml.i index 2de6ecb1f..9d267f3f7 100644 --- a/interface-definitions/include/ipsec/local-address.xml.i +++ b/interface-definitions/include/ipsec/local-address.xml.i @@ -4,6 +4,7 @@      <help>IPv4 or IPv6 address of a local interface to use for VPN</help>      <completionHelp>        <list>any</list> +      <script>${vyos_completion_dir}/list_local_ips.sh --both</script>      </completionHelp>      <valueHelp>        <format>ipv4</format> @@ -20,7 +21,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/ipsec/local-traffic-selector.xml.i b/interface-definitions/include/ipsec/local-traffic-selector.xml.i index d30a6d11a..9ae67f583 100644 --- a/interface-definitions/include/ipsec/local-traffic-selector.xml.i +++ b/interface-definitions/include/ipsec/local-traffic-selector.xml.i @@ -9,11 +9,11 @@        <properties>          <help>Local IPv4 or IPv6 prefix</help>          <valueHelp> -          <format>ipv4</format> +          <format>ipv4net</format>            <description>Local IPv4 prefix</description>          </valueHelp>          <valueHelp> -          <format>ipv6</format> +          <format>ipv6net</format>            <description>Local IPv6 prefix</description>          </valueHelp>          <constraint> diff --git a/interface-definitions/include/isis/high-low-label-value.xml.i b/interface-definitions/include/isis/high-low-label-value.xml.i new file mode 100644 index 000000000..adc28417d --- /dev/null +++ b/interface-definitions/include/isis/high-low-label-value.xml.i @@ -0,0 +1,26 @@ +<!-- include start from isis/high-low-label-value.xml.i --> +<leafNode name="low-label-value"> +  <properties> +    <help>MPLS label lower bound</help> +    <valueHelp> +      <format>u32:16-1048575</format> +      <description>Label value</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 16-1048575"/> +    </constraint> +  </properties> +</leafNode> +<leafNode name="high-label-value"> +  <properties> +    <help>MPLS label upper bound</help> +    <valueHelp> +      <format>u32:16-1048575</format> +      <description>Label value</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 16-1048575"/> +    </constraint> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/isis/password.xml.i b/interface-definitions/include/isis/password.xml.i new file mode 100644 index 000000000..27c3b0fa0 --- /dev/null +++ b/interface-definitions/include/isis/password.xml.i @@ -0,0 +1,20 @@ +<!-- include start from isis/password.xml.i --> +<leafNode name="plaintext-password"> +  <properties> +    <help>Plain-text authentication type</help> +    <valueHelp> +      <format>txt</format> +      <description>Circuit password</description> +    </valueHelp> +  </properties> +</leafNode> +<leafNode name="md5"> +  <properties> +    <help>MD5 authentication type</help> +    <valueHelp> +      <format>txt</format> +      <description>Level-wide password</description> +    </valueHelp> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/isis/protocol-common-config.xml.i b/interface-definitions/include/isis/protocol-common-config.xml.i index 84e2f7bb2..75a0355d4 100644 --- a/interface-definitions/include/isis/protocol-common-config.xml.i +++ b/interface-definitions/include/isis/protocol-common-config.xml.i @@ -4,24 +4,7 @@      <help>Configure the authentication password for an area</help>    </properties>    <children> -    <leafNode name="plaintext-password"> -      <properties> -        <help>Plain-text authentication type</help> -        <valueHelp> -          <format>txt</format> -          <description>Level-wide password</description> -        </valueHelp> -      </properties> -    </leafNode> -    <leafNode name="md5"> -      <properties> -        <help>MD5 authentication type</help> -        <valueHelp> -          <format>txt</format> -          <description>Level-wide password</description> -        </valueHelp> -      </properties> -    </leafNode> +    #include <include/isis/password.xml.i>    </children>  </node>  <node name="default-information"> @@ -59,24 +42,7 @@      <help>Set the authentication password for a routing domain</help>    </properties>    <children> -    <leafNode name="plaintext-password"> -      <properties> -        <help>Plain-text authentication type</help> -        <valueHelp> -          <format>txt</format> -          <description>Level-wide password</description> -        </valueHelp> -      </properties> -    </leafNode> -    <leafNode name="md5"> -      <properties> -        <help>MD5 authentication type</help> -        <valueHelp> -          <format>txt</format> -          <description>Level-wide password</description> -        </valueHelp> -      </properties> -    </leafNode> +    #include <include/isis/password.xml.i>    </children>  </node>  <leafNode name="dynamic-hostname"> @@ -104,7 +70,7 @@        <description>Act as an area router</description>      </valueHelp>      <constraint> -      <regex>^(level-1|level-1-2|level-2)$</regex> +      <regex>(level-1|level-1-2|level-2)</regex>      </constraint>    </properties>  </leafNode> @@ -182,7 +148,7 @@        <description>Use new style of TLVs to carry wider metric</description>      </valueHelp>      <constraint> -      <regex>^(narrow|transition|wide)$</regex> +      <regex>(narrow|transition|wide)</regex>      </constraint>    </properties>  </leafNode> @@ -275,68 +241,20 @@      </leafNode>      <node name="global-block">        <properties> -        <help>Global block label range</help> +        <help>Segment Routing Global Block label range</help>        </properties>        <children> -        <leafNode name="low-label-value"> -          <properties> -            <help>The lower bound of the global block</help> -            <valueHelp> -              <format>u32:16-1048575</format> -              <description>MPLS label value</description> -            </valueHelp> -            <constraint> -              <validator name="numeric" argument="--range 16-1048575"/> -            </constraint> -          </properties> -        </leafNode> -        <leafNode name="high-label-value"> -          <properties> -            <help>The upper bound of the global block</help> -            <valueHelp> -              <format>u32:16-1048575</format> -              <description>MPLS label value</description> -            </valueHelp> -            <constraint> -              <validator name="numeric" argument="--range 16-1048575"/> -            </constraint> -          </properties> -        </leafNode> +        #include <include/isis/high-low-label-value.xml.i>        </children>      </node> -<!--      <node name="local-block">        <properties> -        <help>Local Block label range</help> +        <help>Segment Routing Local Block label range</help>        </properties>        <children> -        <leafNode name="low-label-value"> -          <properties> -            <help>The lower bound of the local block</help> -            <valueHelp> -              <format>u32:16-1048575</format> -              <description>MPLS label value</description> -            </valueHelp> -            <constraint> -              <validator name="numeric" argument="  range 16-1048575"/> -            </constraint> -          </properties> -        </leafNode> -        <leafNode name="high-label-value"> -          <properties> -            <help>The upper bound of the local block</help> -            <valueHelp> -              <format>u32:16-1048575</format> -              <description>MPLS label value</description> -            </valueHelp> -            <constraint> -              <validator name="numeric" argument="  range 16-1048575"/> -            </constraint> -          </properties> -        </leafNode> +        #include <include/isis/high-low-label-value.xml.i>        </children>      </node> --->      <leafNode name="maximum-label-depth">        <properties>          <help>Maximum MPLS labels allowed for this router</help> @@ -648,7 +566,7 @@      </completionHelp>    </properties>    <children> -    #include <include/bfd.xml.i> +    #include <include/bfd/bfd.xml.i>      <leafNode name="circuit-type">        <properties>          <help>Configure circuit type for interface</help> @@ -668,7 +586,7 @@            <description>Level-2 only adjacencies are formed</description>          </valueHelp>          <constraint> -          <regex>^(level-1|level-1-2|level-2-only)$</regex> +          <regex>(level-1|level-1-2|level-2-only)</regex>          </constraint>        </properties>      </leafNode> @@ -722,15 +640,7 @@          <help>Configure the authentication password for a circuit</help>        </properties>        <children> -        <leafNode name="plaintext-password"> -          <properties> -            <help>Plain-text authentication type</help> -            <valueHelp> -              <format>txt</format> -              <description>Circuit password</description> -            </valueHelp> -          </properties> -        </leafNode> +        #include <include/isis/password.xml.i>        </children>      </node>      <leafNode name="priority"> diff --git a/interface-definitions/include/listen-address-ipv4.xml.i b/interface-definitions/include/listen-address-ipv4.xml.i index ee52cebe8..9cca297a0 100644 --- a/interface-definitions/include/listen-address-ipv4.xml.i +++ b/interface-definitions/include/listen-address-ipv4.xml.i @@ -1,13 +1,13 @@  <!-- include start from listen-address-ipv4.xml.i -->  <leafNode name="listen-address">    <properties> -    <help>Local IPv4 addresses for service to listen on</help> +    <help>Local IPv4 addresses to listen on</help>      <completionHelp>        <script>${vyos_completion_dir}/list_local_ips.sh --ipv4</script>      </completionHelp>      <valueHelp>        <format>ipv4</format> -      <description>IP address to listen for incoming connections</description> +      <description>IPv4 address to listen for incoming connections</description>      </valueHelp>      <multi/>      <constraint> diff --git a/interface-definitions/include/listen-address-vrf.xml.i b/interface-definitions/include/listen-address-vrf.xml.i new file mode 100644 index 000000000..8c2bdce70 --- /dev/null +++ b/interface-definitions/include/listen-address-vrf.xml.i @@ -0,0 +1,25 @@ +<!-- include start from listen-address-vrf.xml.i --> +<tagNode name="listen-address"> +  <properties> +    <help>Local IP addresses to listen on</help> +    <completionHelp> +      <script>${vyos_completion_dir}/list_local_ips.sh --both</script> +    </completionHelp> +    <valueHelp> +      <format>ipv4</format> +      <description>IPv4 address to listen for incoming connections</description> +    </valueHelp> +    <valueHelp> +      <format>ipv6</format> +      <description>IPv6 address to listen for incoming connections</description> +    </valueHelp> +    <constraint> +      <validator name="ipv4-address"/> +      <validator name="ipv6-address"/> +    </constraint> +  </properties> +  <children> +    #include <include/interface/vrf.xml.i> +  </children> +</tagNode> +<!-- include end --> diff --git a/interface-definitions/include/listen-address.xml.i b/interface-definitions/include/listen-address.xml.i index 9b86851c7..48003dbf2 100644 --- a/interface-definitions/include/listen-address.xml.i +++ b/interface-definitions/include/listen-address.xml.i @@ -1,13 +1,13 @@  <!-- include start from listen-address.xml.i -->  <leafNode name="listen-address">    <properties> -    <help>Local IP addresses for service to listen on</help> +    <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>IP address to listen for incoming connections</description> +      <description>IPv4 address to listen for incoming connections</description>      </valueHelp>      <valueHelp>        <format>ipv6</format> @@ -17,6 +17,7 @@      <constraint>        <validator name="ipv4-address"/>        <validator name="ipv6-address"/> +      <validator name="ipv6-link-local"/>      </constraint>    </properties>  </leafNode> diff --git a/interface-definitions/include/monitoring/url.xml.i b/interface-definitions/include/monitoring/url.xml.i new file mode 100644 index 000000000..32c81122d --- /dev/null +++ b/interface-definitions/include/monitoring/url.xml.i @@ -0,0 +1,15 @@ +<!-- include start from monitoring/url.xml.i --> +<leafNode name="url"> +  <properties> +    <help>Remote URL [REQUIRED]</help> +    <valueHelp> +      <format>url</format> +      <description>Remote URL</description> +    </valueHelp> +    <constraint> +      <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> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/nat-port.xml.i b/interface-definitions/include/nat-port.xml.i index ebba43712..5f762cfb3 100644 --- a/interface-definitions/include/nat-port.xml.i +++ b/interface-definitions/include/nat-port.xml.i @@ -3,6 +3,10 @@    <properties>      <help>Port number</help>      <valueHelp> +     <format>txt</format> +     <description>Named port (any name in /etc/services, e.g., http)</description> +    </valueHelp> +    <valueHelp>        <format>u32:1-65535</format>        <description>Numeric IP port</description>      </valueHelp> @@ -11,9 +15,12 @@        <description>Numbered port range (e.g. 1001-1005)</description>      </valueHelp>      <valueHelp> -      <format> </format> +      <format/>        <description>\n\nMultiple destination ports can be specified as a comma-separated list.\nThe whole list can also be negated using '!'.\nFor example: '!22,telnet,http,123,1001-1005'</description>      </valueHelp> +    <constraint> +     <validator name="port-multi"/> +    </constraint>    </properties>  </leafNode>  <!-- include end --> diff --git a/interface-definitions/include/nat-rule.xml.i b/interface-definitions/include/nat-rule.xml.i index 084f1f722..bdb86ed9b 100644 --- a/interface-definitions/include/nat-rule.xml.i +++ b/interface-definitions/include/nat-rule.xml.i @@ -4,7 +4,7 @@      <help>Rule number for NAT</help>      <valueHelp>        <format>u32:1-999999</format> -      <description>Number for this NAT rule</description> +      <description>Number of NAT rule</description>      </valueHelp>      <constraint>        <validator name="numeric" argument="--range 1-999999"/> @@ -12,11 +12,7 @@      <constraintErrorMessage>NAT rule number must be between 1 and 999999</constraintErrorMessage>    </properties>    <children> -    <leafNode name="description"> -      <properties> -        <help>Rule description</help> -      </properties> -    </leafNode> +    #include <include/generic-description.xml.i>      <node name="destination">        <properties>          <help>NAT destination parameters</help> diff --git a/interface-definitions/include/nat-translation-options.xml.i b/interface-definitions/include/nat-translation-options.xml.i index df2f76397..6b95de045 100644 --- a/interface-definitions/include/nat-translation-options.xml.i +++ b/interface-definitions/include/nat-translation-options.xml.i @@ -16,13 +16,14 @@          </valueHelp>          <valueHelp>            <format>random</format> -          <description>Random source or destination address allocation for each connection (default)</description> +          <description>Random source or destination address allocation for each connection</description>          </valueHelp>          <constraint> -          <regex>^(persistent|random)$</regex> +          <regex>(persistent|random)</regex>          </constraint>        </properties> -    </leafNode>  +      <defaultValue>random</defaultValue> +    </leafNode>      <leafNode name="port-mapping">        <properties>          <help>Port mapping options</help> @@ -39,13 +40,14 @@          </valueHelp>          <valueHelp>            <format>none</format> -          <description>Do not apply port randomization (default)</description> +          <description>Do not apply port randomization</description>          </valueHelp>          <constraint> -          <regex>^(random|fully-random|none)$</regex> +          <regex>(random|fully-random|none)</regex>          </constraint>        </properties> -    </leafNode>  +      <defaultValue>none</defaultValue> +    </leafNode>    </children>  </node>  <!-- include end --> diff --git a/interface-definitions/include/nat-translation-port.xml.i b/interface-definitions/include/nat-translation-port.xml.i index 6e507353c..6f17df3d9 100644 --- a/interface-definitions/include/nat-translation-port.xml.i +++ b/interface-definitions/include/nat-translation-port.xml.i @@ -10,6 +10,9 @@        <format>range</format>        <description>Numbered port range (e.g., 1001-1005)</description>      </valueHelp> +    <constraint> +     <validator name="port-range"/> +    </constraint>    </properties>  </leafNode>  <!-- include end --> 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/auto-cost.xml.i b/interface-definitions/include/ospf/auto-cost.xml.i new file mode 100644 index 000000000..da6483a00 --- /dev/null +++ b/interface-definitions/include/ospf/auto-cost.xml.i @@ -0,0 +1,22 @@ +<!-- include start from ospf/auto-cost.xml.i --> +<node name="auto-cost"> +  <properties> +    <help>Calculate interface cost according to bandwidth</help> +  </properties> +  <children> +    <leafNode name="reference-bandwidth"> +      <properties> +        <help>Reference bandwidth method to assign cost</help> +        <valueHelp> +          <format>u32:1-4294967</format> +          <description>Reference bandwidth cost in Mbits/sec</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-4294967"/> +        </constraint> +      </properties> +      <defaultValue>100</defaultValue> +    </leafNode> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/ospf/default-information.xml.i b/interface-definitions/include/ospf/default-information.xml.i new file mode 100644 index 000000000..50cda54a4 --- /dev/null +++ b/interface-definitions/include/ospf/default-information.xml.i @@ -0,0 +1,25 @@ +<!-- include start from ospf/intervals.xml.i --> +<node name="default-information"> +  <properties> +    <help>Default route advertisment settings</help> +  </properties> +  <children> +    <node name="originate"> +      <properties> +        <help>Distribute a default route</help> +      </properties> +      <children> +        <leafNode name="always"> +          <properties> +            <help>Always advertise a default route</help> +            <valueless/> +          </properties> +        </leafNode> +        #include <include/ospf/metric.xml.i> +        #include <include/ospf/metric-type.xml.i> +        #include <include/route-map.xml.i> +      </children> +    </node> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/ospf/interface-common.xml.i b/interface-definitions/include/ospf/interface-common.xml.i index 4b0aef380..9c8b94f0b 100644 --- a/interface-definitions/include/ospf/interface-common.xml.i +++ b/interface-definitions/include/ospf/interface-common.xml.i @@ -1,5 +1,5 @@  <!-- include start from ospf/interface-common.xml.i --> -#include <include/bfd.xml.i> +#include <include/bfd/bfd.xml.i>  <leafNode name="cost">    <properties>      <help>Interface cost</help> @@ -20,7 +20,7 @@  </leafNode>  <leafNode name="priority">    <properties> -    <help>Router priority (default: 1)</help> +    <help>Router priority</help>      <valueHelp>        <format>u32:0-255</format>        <description>OSPF router priority cost</description> diff --git a/interface-definitions/include/ospf/intervals.xml.i b/interface-definitions/include/ospf/intervals.xml.i index fad1a6305..9f6e5df69 100644 --- a/interface-definitions/include/ospf/intervals.xml.i +++ b/interface-definitions/include/ospf/intervals.xml.i @@ -1,7 +1,7 @@  <!-- include start from ospf/intervals.xml.i -->  <leafNode name="dead-interval">    <properties> -    <help>Interval after which a neighbor is declared dead (default: 40)</help> +    <help>Interval after which a neighbor is declared dead</help>      <valueHelp>        <format>u32:1-65535</format>        <description>Neighbor dead interval (seconds)</description> @@ -14,7 +14,7 @@  </leafNode>  <leafNode name="hello-interval">    <properties> -    <help>Interval between hello packets (default: 10)</help> +    <help>Interval between hello packets</help>      <valueHelp>        <format>u32:1-65535</format>        <description>Hello interval (seconds)</description> @@ -27,7 +27,7 @@  </leafNode>  <leafNode name="retransmit-interval">    <properties> -    <help>Interval between retransmitting lost link state advertisements (default: 5)</help> +    <help>Interval between retransmitting lost link state advertisements</help>      <valueHelp>        <format>u32:1-65535</format>        <description>Retransmit interval (seconds)</description> @@ -40,7 +40,7 @@  </leafNode>  <leafNode name="transmit-delay">    <properties> -    <help>Link state transmit delay (default: 1)</help> +    <help>Link state transmit delay</help>      <valueHelp>        <format>u32:1-65535</format>        <description>Link state transmit delay (seconds)</description> diff --git a/interface-definitions/include/ospf/metric-type.xml.i b/interface-definitions/include/ospf/metric-type.xml.i index ef9fd8ac0..de55c7645 100644 --- a/interface-definitions/include/ospf/metric-type.xml.i +++ b/interface-definitions/include/ospf/metric-type.xml.i @@ -1,7 +1,7 @@  <!-- include start from ospf/metric-type.xml.i -->  <leafNode name="metric-type">    <properties> -    <help>OSPF metric type for default routes (default: 2)</help> +    <help>OSPF metric type for default routes</help>      <valueHelp>        <format>u32:1-2</format>        <description>Set OSPF External Type 1/2 metrics</description> diff --git a/interface-definitions/include/ospf/protocol-common-config.xml.i b/interface-definitions/include/ospf/protocol-common-config.xml.i index 982e519a9..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/> @@ -106,7 +106,7 @@              </leafNode>              <leafNode name="translate">                <properties> -                <help>Configure NSSA-ABR (default: candidate)</help> +                <help>Configure NSSA-ABR</help>                  <completionHelp>                    <list>always candidate never</list>                  </completionHelp> @@ -116,14 +116,14 @@                  </valueHelp>                  <valueHelp>                    <format>candidate</format> -                  <description>Translate for election (default)</description> +                  <description>Translate for election</description>                  </valueHelp>                  <valueHelp>                    <format>never</format>                    <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,72 +252,61 @@            <description>Enable shortcutting mode</description>          </valueHelp>          <constraint> -          <regex>^(default|disable|enable)$</regex> +          <regex>(default|disable|enable)</regex>          </constraint>        </properties>      </leafNode> -    <tagNode name="virtual-link"> +    <leafNode name="export-list">        <properties> -        <help>Virtual link</help> +        <help>Set the filter for networks announced to other areas</help> +        <completionHelp> +          <path>policy access-list</path> +        </completionHelp>          <valueHelp> -          <format>ipv4</format> -          <description>OSPF area in dotted decimal notation</description> +          <format>u32</format> +          <description>Access-list number</description>          </valueHelp>          <constraint>            <validator name="numeric" argument="--range 0-4294967295"/> -          <validator name="ip-address"/>          </constraint>        </properties> -      <children> -        #include <include/ospf/authentication.xml.i> -        #include <include/ospf/intervals.xml.i> -      </children> -    </tagNode> -  </children> -</tagNode> -<node name="auto-cost"> -  <properties> -    <help>Calculate OSPF interface cost according to bandwidth (default: 100)</help> -  </properties> -  <children> -    <leafNode name="reference-bandwidth"> +    </leafNode> +    <leafNode name="import-list">        <properties> -        <help>Reference bandwidth method to assign OSPF cost</help> +        <help>Set the filter for networks from other areas announced</help> +        <completionHelp> +          <path>policy access-list</path> +        </completionHelp>          <valueHelp> -          <format>u32:1-4294967</format> -          <description>Reference bandwidth cost in Mbits/sec</description> +          <format>u32</format> +          <description>Access-list number</description>          </valueHelp>          <constraint> -          <validator name="numeric" argument="--range 1-4294967"/> +          <validator name="numeric" argument="--range 0-4294967295"/>          </constraint>        </properties> -      <defaultValue>100</defaultValue>      </leafNode> -  </children> -</node> -<node name="default-information"> -  <properties> -    <help>Default route advertisment settings</help> -  </properties> -  <children> -    <node name="originate"> +    <tagNode name="virtual-link">        <properties> -        <help>Distribute a default route</help> +        <help>Virtual link</help> +        <valueHelp> +          <format>ipv4</format> +          <description>OSPF area in dotted decimal notation</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-4294967295"/> +          <validator name="ip-address"/> +        </constraint>        </properties>        <children> -        <leafNode name="always"> -          <properties> -            <help>Always advertise a default route</help> -            <valueless/> -          </properties> -        </leafNode> -        #include <include/ospf/metric.xml.i> -        #include <include/ospf/metric-type.xml.i> -        #include <include/route-map.xml.i> +        #include <include/ospf/authentication.xml.i> +        #include <include/ospf/intervals.xml.i>        </children> -    </node> +    </tagNode>    </children> -</node> +</tagNode> +#include <include/ospf/auto-cost.xml.i> +#include <include/ospf/default-information.xml.i>  <leafNode name="default-metric">    <properties>      <help>Metric of redistributed routes</help> @@ -330,6 +319,18 @@      </constraint>    </properties>  </leafNode> +<leafNode name="maximum-paths"> +  <properties> +    <help>Maximum multiple paths (ECMP)</help> +    <valueHelp> +      <format>u32:1-64</format> +      <description>Maximum multiple paths (ECMP)</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 1-64"/> +    </constraint> +  </properties> +</leafNode>  <node name="distance">    <properties>      <help>Administrative distance</help> @@ -431,11 +432,19 @@            <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>      </leafNode> +    <node name="passive"> +      <properties> +        <help>Suppress routing updates on an interface</help> +      </properties> +      <children> +        #include <include/generic-disable-node.xml.i> +      </children> +    </node>    </children>  </tagNode>  #include <include/ospf/log-adjacency-changes.xml.i> @@ -523,7 +532,7 @@    <children>      <leafNode name="poll-interval">        <properties> -        <help>Dead neighbor polling interval (default: 60)</help> +        <help>Dead neighbor polling interval</help>          <valueHelp>            <format>u32:1-65535</format>            <description>Seconds between dead neighbor polling interval</description> @@ -536,7 +545,7 @@      </leafNode>      <leafNode name="priority">        <properties> -        <help>Neighbor priority in seconds (default: 0)</help> +        <help>Neighbor priority in seconds</help>          <valueHelp>            <format>u32:0-255</format>            <description>Neighbor priority</description> @@ -556,13 +565,13 @@    <children>      <leafNode name="abr-type">        <properties> -        <help>OSPF ABR type (default: cisco)</help> +        <help>OSPF ABR type</help>          <completionHelp>            <list>cisco ibm shortcut standard</list>          </completionHelp>          <valueHelp>            <format>cisco</format> -          <description>Cisco ABR type (default)</description> +          <description>Cisco ABR type</description>          </valueHelp>          <valueHelp>            <format>ibm</format> @@ -577,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> @@ -597,26 +606,19 @@      #include <include/router-id.xml.i>    </children>  </node> -#include <include/routing-passive-interface.xml.i> -<leafNode name="passive-interface-exclude"> +<leafNode name="passive-interface">    <properties> -    <help>Interface to exclude when using 'passive-interface default'</help> +    <help>Suppress routing updates on an interface</help>      <completionHelp> -      <script>${vyos_completion_dir}/list_interfaces.py</script> +      <list>default</list>      </completionHelp>      <valueHelp> -      <format>txt</format> -      <description>Interface to exclude when suppressing routing updates</description> -    </valueHelp> -    <valueHelp> -      <format>vlinkN</format> -      <description>Virtual-link interface to exclude when suppressing routing updates</description> +      <format>default</format> +      <description>Default to suppress routing updates on all interfaces</description>      </valueHelp>      <constraint> -      <validator name="interface-name"/> -      <regex>^(vlink[0-9]+)$</regex> +      <regex>(default)</regex>      </constraint> -    <multi/>    </properties>  </leafNode>  <node name="redistribute"> @@ -740,7 +742,7 @@            <children>              <leafNode name="delay">                <properties> -                <help>Delay from the first change received to SPF calculation (default: 200)</help> +                <help>Delay from the first change received to SPF calculation</help>                  <valueHelp>                    <format>u32:0-600000</format>                    <description>Delay in milliseconds</description> @@ -753,7 +755,7 @@              </leafNode>              <leafNode name="initial-holdtime">                <properties> -                <help>Initial hold time between consecutive SPF calculations (default: 1000)</help> +                <help>Initial hold time between consecutive SPF calculations</help>                  <valueHelp>                    <format>u32:0-600000</format>                    <description>Initial hold time in milliseconds</description> @@ -766,7 +768,7 @@              </leafNode>              <leafNode name="max-holdtime">                <properties> -                <help>Maximum hold time (default: 10000)</help> +                <help>Maximum hold time</help>                  <valueHelp>                    <format>u32:0-600000</format>                    <description>Max hold time in milliseconds</description> diff --git a/interface-definitions/include/ospfv3/no-summary.xml.i b/interface-definitions/include/ospfv3/no-summary.xml.i new file mode 100644 index 000000000..a6afda3e0 --- /dev/null +++ b/interface-definitions/include/ospfv3/no-summary.xml.i @@ -0,0 +1,8 @@ +<!-- include start from ospfv3/no-summary.xml.i --> +<leafNode name="no-summary"> +  <properties> +    <help>Do not inject inter-area routes into the stub</help> +    <valueless/> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/ospfv3/protocol-common-config.xml.i b/interface-definitions/include/ospfv3/protocol-common-config.xml.i new file mode 100644 index 000000000..630534eea --- /dev/null +++ b/interface-definitions/include/ospfv3/protocol-common-config.xml.i @@ -0,0 +1,252 @@ +<!-- include start from ospfv3/protocol-common-config.xml.i --> +<tagNode name="area"> +  <properties> +    <help>OSPFv3 Area</help> +    <valueHelp> +      <format>u32</format> +      <description>Area ID as a decimal value</description> +    </valueHelp> +    <valueHelp> +      <format>ipv4</format> +      <description>Area ID in IP address forma</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 0-4294967295"/> +      <validator name="ip-address"/> +    </constraint> +  </properties> +  <children> +    <node name="area-type"> +      <properties> +        <help>OSPFv3 Area type</help> +      </properties> +      <children> +        <node name="nssa"> +          <properties> +            <help>NSSA OSPFv3 area</help> +          </properties> +          <children> +            <leafNode name="default-information-originate"> +              <properties> +                <help>Originate Type 7 default into NSSA area</help> +                <valueless/> +              </properties> +            </leafNode> +            #include <include/ospfv3/no-summary.xml.i> +          </children> +        </node> +        <node name="stub"> +          <properties> +            <help>Stub OSPFv3 area</help> +          </properties> +          <children> +            #include <include/ospfv3/no-summary.xml.i> +          </children> +        </node> +      </children> +    </node> +    <leafNode name="export-list"> +      <properties> +        <help>Name of export-list</help> +        <completionHelp> +          <path>policy access-list6</path> +        </completionHelp> +      </properties> +    </leafNode> +    <leafNode name="import-list"> +      <properties> +        <help>Name of import-list</help> +        <completionHelp> +          <path>policy access-list6</path> +        </completionHelp> +      </properties> +    </leafNode> +    <tagNode name="range"> +      <properties> +        <help>Specify IPv6 prefix (border routers only)</help> +        <valueHelp> +          <format>ipv6net</format> +          <description>Specify IPv6 prefix (border routers only)</description> +        </valueHelp> +        <constraint> +          <validator name="ipv6-prefix"/> +        </constraint> +      </properties> +      <children> +        <leafNode name="advertise"> +          <properties> +            <help>Advertise this range</help> +            <valueless/> +          </properties> +        </leafNode> +        <leafNode name="not-advertise"> +          <properties> +            <help>Do not advertise this range</help> +            <valueless/> +          </properties> +        </leafNode> +      </children> +    </tagNode> +  </children> +</tagNode> +#include <include/ospf/auto-cost.xml.i> +#include <include/ospf/default-information.xml.i> +<node name="distance"> +  <properties> +    <help>Administrative distance</help> +  </properties> +  <children> +    #include <include/ospf/distance-global.xml.i> +    <node name="ospfv3"> +      <properties> +        <help>OSPFv3 administrative distance</help> +      </properties> +      <children> +        #include <include/ospf/distance-per-protocol.xml.i> +      </children> +    </node> +  </children> +</node> +<tagNode name="interface"> +  <properties> +    <help>Enable routing on an IPv6 interface</help> +    <completionHelp> +      <script>${vyos_completion_dir}/list_interfaces.py</script> +    </completionHelp> +    <valueHelp> +      <format>txt</format> +      <description>Interface used for routing information exchange</description> +    </valueHelp> +    <constraint> +      <validator name="interface-name"/> +    </constraint> +  </properties> +  <children> +    <leafNode name="area"> +      <properties> +        <help>Enable OSPF on this interface</help> +        <completionHelp> +          <path>protocols ospfv3 area</path> +        </completionHelp> +        <valueHelp> +          <format>u32</format> +          <description>OSPF area ID as decimal notation</description> +        </valueHelp> +        <valueHelp> +          <format>ipv4</format> +          <description>OSPF area ID in IP address notation</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-4294967295"/> +          <validator name="ip-address"/> +        </constraint> +      </properties> +    </leafNode> +    #include <include/ospf/intervals.xml.i> +    #include <include/ospf/interface-common.xml.i> +    <leafNode name="ifmtu"> +      <properties> +        <help>Interface MTU</help> +        <valueHelp> +          <format>u32:1-65535</format> +          <description>Interface MTU</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-65535"/> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="instance-id"> +      <properties> +        <help>Instance ID</help> +        <valueHelp> +          <format>u32:0-255</format> +          <description>Instance Id</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-255"/> +        </constraint> +      </properties> +      <defaultValue>0</defaultValue> +    </leafNode> +    <leafNode name="network"> +      <properties> +        <help>Network type</help> +        <completionHelp> +          <list>broadcast point-to-point</list> +        </completionHelp> +        <valueHelp> +          <format>broadcast</format> +          <description>Broadcast network type</description> +        </valueHelp> +        <valueHelp> +          <format>point-to-point</format> +          <description>Point-to-point network type</description> +        </valueHelp> +        <constraint> +          <regex>(broadcast|point-to-point)</regex> +        </constraint> +        <constraintErrorMessage>Must be broadcast or point-to-point</constraintErrorMessage> +      </properties> +    </leafNode> +    #include <include/isis/passive.xml.i> +  </children> +</tagNode> +#include <include/ospf/log-adjacency-changes.xml.i> +<node name="parameters"> +  <properties> +    <help>OSPFv3 specific parameters</help> +  </properties> +  <children> +    #include <include/router-id.xml.i> +  </children> +</node> +<node name="redistribute"> +  <properties> +    <help>Redistribute information from another routing protocol</help> +  </properties> +  <children> +    <node name="bgp"> +      <properties> +        <help>Redistribute BGP routes</help> +      </properties> +      <children> +        #include <include/route-map.xml.i> +      </children> +    </node> +    <node name="connected"> +      <properties> +        <help>Redistribute connected routes</help> +      </properties> +      <children> +        #include <include/route-map.xml.i> +      </children> +    </node> +    <node name="kernel"> +      <properties> +        <help>Redistribute kernel routes</help> +      </properties> +      <children> +        #include <include/route-map.xml.i> +      </children> +    </node> +    <node name="ripng"> +      <properties> +        <help>Redistribute RIPNG routes</help> +      </properties> +      <children> +        #include <include/route-map.xml.i> +      </children> +    </node> +    <node name="static"> +      <properties> +        <help>Redistribute static routes</help> +      </properties> +      <children> +        #include <include/route-map.xml.i> +      </children> +    </node> +  </children> +</node> +#include <include/route-map.xml.i> +<!-- include end --> 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 new file mode 100644 index 000000000..cfeba1a6c --- /dev/null +++ b/interface-definitions/include/policy/route-common-rule-ipv6.xml.i @@ -0,0 +1,553 @@ +<!-- include start from policy/route-common-rule.xml.i --> +#include <include/policy/route-rule-action.xml.i> +#include <include/generic-description.xml.i> +<leafNode name="disable"> +  <properties> +    <help>Option to disable firewall rule</help> +    <valueless/> +  </properties> +</leafNode> +<node name="fragment"> +  <properties> +    <help>IP fragment match</help> +  </properties> +  <children> +    <leafNode name="match-frag"> +      <properties> +        <help>Second and further fragments of fragmented packets</help> +        <valueless/> +      </properties> +    </leafNode> +    <leafNode name="match-non-frag"> +      <properties> +        <help>Head fragments or unfragmented packets</help> +        <valueless/> +      </properties> +    </leafNode> +  </children> +</node> +<node name="ipsec"> +  <properties> +    <help>Inbound IPsec packets</help> +  </properties> +  <children> +    <leafNode name="match-ipsec"> +      <properties> +        <help>Inbound IPsec packets</help> +        <valueless/> +      </properties> +    </leafNode> +    <leafNode name="match-none"> +      <properties> +        <help>Inbound non-IPsec packets</help> +        <valueless/> +      </properties> +    </leafNode> +  </children> +</node> +<node name="limit"> +  <properties> +    <help>Rate limit using a token bucket filter</help> +  </properties> +  <children> +    <leafNode name="burst"> +      <properties> +        <help>Maximum number of packets to allow in excess of rate</help> +        <valueHelp> +          <format>u32:0-4294967295</format> +          <description>Maximum number of packets to allow in excess of rate</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-4294967295"/> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="rate"> +      <properties> +        <help>Maximum average matching rate</help> +        <valueHelp> +          <format>u32:0-4294967295</format> +          <description>Maximum average matching rate</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-4294967295"/> +        </constraint> +      </properties> +    </leafNode> +  </children> +</node> +<leafNode name="log"> +  <properties> +    <help>Option to log packets matching rule</help> +    <completionHelp> +      <list>enable disable</list> +    </completionHelp> +    <valueHelp> +      <format>enable</format> +      <description>Enable log</description> +    </valueHelp> +    <valueHelp> +      <format>disable</format> +      <description>Disable log</description> +    </valueHelp> +    <constraint> +      <regex>(enable|disable)</regex> +    </constraint> +  </properties> +</leafNode> +<leafNode name="protocol"> +  <properties> +    <help>Protocol to match (protocol name, number, or "all")</help> +    <completionHelp> +      <script>cat /etc/protocols | sed -e '/^#.*/d' | awk '{ print $1 }'</script> +    </completionHelp> +    <valueHelp> +      <format>all</format> +      <description>All IP protocols</description> +    </valueHelp> +    <valueHelp> +      <format>tcp_udp</format> +      <description>Both TCP and UDP</description> +    </valueHelp> +    <valueHelp> +      <format>0-255</format> +      <description>IP protocol number</description> +    </valueHelp> +    <valueHelp> +      <format>!<protocol></format> +      <description>IP protocol number</description> +    </valueHelp> +    <constraint> +      <validator name="ip-protocol"/> +    </constraint> +  </properties> +  <defaultValue>all</defaultValue> +</leafNode> +<node name="recent"> +  <properties> +    <help>Parameters for matching recently seen sources</help> +  </properties> +  <children> +    <leafNode name="count"> +      <properties> +        <help>Source addresses seen more than N times</help> +        <valueHelp> +          <format>u32:1-255</format> +          <description>Source addresses seen more than N times</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-255"/> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="time"> +      <properties> +        <help>Source addresses seen in the last N seconds</help> +        <valueHelp> +          <format>u32:0-4294967295</format> +          <description>Source addresses seen in the last N seconds</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-4294967295"/> +        </constraint> +      </properties> +    </leafNode> +  </children> +</node> +<node name="set"> +  <properties> +    <help>Packet modifications</help> +  </properties> +  <children> +    <leafNode name="dscp"> +      <properties> +        <help>Packet Differentiated Services Codepoint (DSCP)</help> +        <valueHelp> +          <format>u32:0-63</format> +          <description>DSCP number</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-63"/> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="mark"> +      <properties> +        <help>Packet marking</help> +        <valueHelp> +          <format>u32:1-2147483647</format> +          <description>Packet marking</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-2147483647"/> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="table"> +      <properties> +        <help>Routing table to forward packet with</help> +        <valueHelp> +          <format>u32:1-200</format> +          <description>Table number</description> +        </valueHelp> +        <valueHelp> +          <format>main</format> +          <description>Main table</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-200"/> +          <regex>(main)</regex> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="tcp-mss"> +      <properties> +        <help>TCP Maximum Segment Size</help> +        <valueHelp> +          <format>u32:500-1460</format> +          <description>Explicitly set TCP MSS value</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 500-1460"/> +        </constraint> +      </properties> +    </leafNode> +  </children> +</node> +<node name="source"> +  <properties> +    <help>Source parameters</help> +  </properties> +  <children> +    #include <include/firewall/address-ipv6.xml.i> +    #include <include/firewall/source-destination-group.xml.i> +    <leafNode name="mac-address"> +      <properties> +        <help>Source MAC address</help> +        <valueHelp> +          <format><MAC address></format> +          <description>MAC address to match</description> +        </valueHelp> +        <valueHelp> +          <format>!<MAC address></format> +          <description>Match everything except the specified MAC address</description> +        </valueHelp> +        <constraint> +          <validator name="mac-address-firewall"/> +        </constraint> +      </properties> +    </leafNode> +    #include <include/firewall/port.xml.i> +  </children> +</node> +<node name="state"> +  <properties> +    <help>Session state</help> +  </properties> +  <children> +    <leafNode name="established"> +      <properties> +        <help>Established state</help> +        <completionHelp> +          <list>enable disable</list> +        </completionHelp> +        <valueHelp> +          <format>enable</format> +          <description>Enable</description> +        </valueHelp> +        <valueHelp> +          <format>disable</format> +          <description>Disable</description> +        </valueHelp> +        <constraint> +          <regex>(enable|disable)</regex> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="invalid"> +      <properties> +        <help>Invalid state</help> +        <completionHelp> +          <list>enable disable</list> +        </completionHelp> +        <valueHelp> +          <format>enable</format> +          <description>Enable</description> +        </valueHelp> +        <valueHelp> +          <format>disable</format> +          <description>Disable</description> +        </valueHelp> +        <constraint> +          <regex>(enable|disable)</regex> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="new"> +      <properties> +        <help>New state</help> +        <completionHelp> +          <list>enable disable</list> +        </completionHelp> +        <valueHelp> +          <format>enable</format> +          <description>Enable</description> +        </valueHelp> +        <valueHelp> +          <format>disable</format> +          <description>Disable</description> +        </valueHelp> +        <constraint> +          <regex>(enable|disable)</regex> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="related"> +      <properties> +        <help>Related state</help> +        <completionHelp> +          <list>enable disable</list> +        </completionHelp> +        <valueHelp> +          <format>enable</format> +          <description>Enable</description> +        </valueHelp> +        <valueHelp> +          <format>disable</format> +          <description>Disable</description> +        </valueHelp> +        <constraint> +          <regex>(enable|disable)</regex> +        </constraint> +      </properties> +    </leafNode> +  </children> +</node> +#include <include/firewall/tcp-flags.xml.i> +<node name="time"> +  <properties> +    <help>Time to match rule</help> +  </properties> +  <children> +    <leafNode name="monthdays"> +      <properties> +        <help>Monthdays to match rule on</help> +      </properties> +    </leafNode> +    <leafNode name="startdate"> +      <properties> +        <help>Date to start matching rule</help> +      </properties> +    </leafNode> +    <leafNode name="starttime"> +      <properties> +        <help>Time of day to start matching rule</help> +      </properties> +    </leafNode> +    <leafNode name="stopdate"> +      <properties> +        <help>Date to stop matching rule</help> +      </properties> +    </leafNode> +    <leafNode name="stoptime"> +      <properties> +        <help>Time of day to stop matching rule</help> +      </properties> +    </leafNode> +    <leafNode name="utc"> +      <properties> +        <help>Interpret times for startdate, stopdate, starttime and stoptime to be UTC</help> +        <valueless/> +      </properties> +    </leafNode> +    <leafNode name="weekdays"> +      <properties> +        <help>Weekdays to match rule on</help> +      </properties> +    </leafNode> +  </children> +</node> +<node name="icmpv6"> +  <properties> +    <help>ICMPv6 type and code information</help> +  </properties> +  <children> +    <leafNode name="type"> +      <properties> +        <help>ICMP type-name</help> +        <completionHelp> +          <list>any echo-reply pong destination-unreachable network-unreachable host-unreachable protocol-unreachable port-unreachable fragmentation-needed source-route-failed network-unknown host-unknown network-prohibited host-prohibited TOS-network-unreachable TOS-host-unreachable communication-prohibited host-precedence-violation precedence-cutoff source-quench redirect network-redirect host-redirect TOS-network-redirect TOS host-redirect echo-request ping router-advertisement router-solicitation time-exceeded ttl-exceeded ttl-zero-during-transit ttl-zero-during-reassembly parameter-problem ip-header-bad required-option-missing timestamp-request timestamp-reply address-mask-request address-mask-reply packet-too-big</list> +        </completionHelp> +        <valueHelp> +          <format>any</format> +          <description>Any ICMP type/code</description> +        </valueHelp> +        <valueHelp> +          <format>echo-reply</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>pong</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>destination-unreachable</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>network-unreachable</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>host-unreachable</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>protocol-unreachable</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>port-unreachable</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>fragmentation-needed</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>source-route-failed</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>network-unknown</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>host-unknown</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>network-prohibited</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>host-prohibited</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>TOS-network-unreachable</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>TOS-host-unreachable</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>communication-prohibited</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>host-precedence-violation</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>precedence-cutoff</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>source-quench</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>redirect</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>network-redirect</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>host-redirect</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>TOS-network-redirect</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>TOS host-redirect</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>echo-request</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>ping</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>router-advertisement</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>router-solicitation</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>time-exceeded</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>ttl-exceeded</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>ttl-zero-during-transit</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>ttl-zero-during-reassembly</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>parameter-problem</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>ip-header-bad</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>required-option-missing</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>timestamp-request</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>timestamp-reply</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>address-mask-request</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>address-mask-reply</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <valueHelp> +          <format>packet-too-big</format> +          <description>ICMP type/code name</description> +        </valueHelp> +        <constraint> +          <regex>(any|echo-reply|pong|destination-unreachable|network-unreachable|host-unreachable|protocol-unreachable|port-unreachable|fragmentation-needed|source-route-failed|network-unknown|host-unknown|network-prohibited|host-prohibited|TOS-network-unreachable|TOS-host-unreachable|communication-prohibited|host-precedence-violation|precedence-cutoff|source-quench|redirect|network-redirect|host-redirect|TOS-network-redirect|TOS host-redirect|echo-request|ping|router-advertisement|router-solicitation|time-exceeded|ttl-exceeded|ttl-zero-during-transit|ttl-zero-during-reassembly|parameter-problem|ip-header-bad|required-option-missing|timestamp-request|timestamp-reply|address-mask-request|address-mask-reply|packet-too-big)</regex> +          <validator name="numeric" argument="--range 0-255"/> +        </constraint> +      </properties> +    </leafNode> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/policy/route-common-rule.xml.i b/interface-definitions/include/policy/route-common-rule.xml.i new file mode 100644 index 000000000..5a17dbc95 --- /dev/null +++ b/interface-definitions/include/policy/route-common-rule.xml.i @@ -0,0 +1,402 @@ +<!-- include start from policy/route-common-rule.xml.i --> +#include <include/policy/route-rule-action.xml.i> +#include <include/generic-description.xml.i> +<leafNode name="disable"> +  <properties> +    <help>Option to disable firewall rule</help> +    <valueless/> +  </properties> +</leafNode> +<node name="fragment"> +  <properties> +    <help>IP fragment match</help> +  </properties> +  <children> +    <leafNode name="match-frag"> +      <properties> +        <help>Second and further fragments of fragmented packets</help> +        <valueless/> +      </properties> +    </leafNode> +    <leafNode name="match-non-frag"> +      <properties> +        <help>Head fragments or unfragmented packets</help> +        <valueless/> +      </properties> +    </leafNode> +  </children> +</node> +<node name="ipsec"> +  <properties> +    <help>Inbound IPsec packets</help> +  </properties> +  <children> +    <leafNode name="match-ipsec"> +      <properties> +        <help>Inbound IPsec packets</help> +        <valueless/> +      </properties> +    </leafNode> +    <leafNode name="match-none"> +      <properties> +        <help>Inbound non-IPsec packets</help> +        <valueless/> +      </properties> +    </leafNode> +  </children> +</node> +<node name="limit"> +  <properties> +    <help>Rate limit using a token bucket filter</help> +  </properties> +  <children> +    <leafNode name="burst"> +      <properties> +        <help>Maximum number of packets to allow in excess of rate</help> +        <valueHelp> +          <format>u32:0-4294967295</format> +          <description>Maximum number of packets to allow in excess of rate</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-4294967295"/> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="rate"> +      <properties> +        <help>Maximum average matching rate</help> +        <valueHelp> +          <format>u32:0-4294967295</format> +          <description>Maximum average matching rate</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-4294967295"/> +        </constraint> +      </properties> +    </leafNode> +  </children> +</node> +<leafNode name="log"> +  <properties> +    <help>Option to log packets matching rule</help> +    <completionHelp> +      <list>enable disable</list> +    </completionHelp> +    <valueHelp> +      <format>enable</format> +      <description>Enable log</description> +    </valueHelp> +    <valueHelp> +      <format>disable</format> +      <description>Disable log</description> +    </valueHelp> +    <constraint> +      <regex>(enable|disable)</regex> +    </constraint> +  </properties> +</leafNode> +<leafNode name="protocol"> +  <properties> +    <help>Protocol to match (protocol name, number, or "all")</help> +    <completionHelp> +      <script>cat /etc/protocols | sed -e '/^#.*/d' | awk '{ print $1 }'</script> +    </completionHelp> +    <valueHelp> +      <format>all</format> +      <description>All IP protocols</description> +    </valueHelp> +    <valueHelp> +      <format>tcp_udp</format> +      <description>Both TCP and UDP</description> +    </valueHelp> +    <valueHelp> +      <format>0-255</format> +      <description>IP protocol number</description> +    </valueHelp> +    <valueHelp> +      <format>!<protocol></format> +      <description>IP protocol number</description> +    </valueHelp> +    <constraint> +      <validator name="ip-protocol"/> +    </constraint> +  </properties> +  <defaultValue>all</defaultValue> +</leafNode> +<node name="recent"> +  <properties> +    <help>Parameters for matching recently seen sources</help> +  </properties> +  <children> +    <leafNode name="count"> +      <properties> +        <help>Source addresses seen more than N times</help> +        <valueHelp> +          <format>u32:1-255</format> +          <description>Source addresses seen more than N times</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-255"/> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="time"> +      <properties> +        <help>Source addresses seen in the last N seconds</help> +        <valueHelp> +          <format>u32:0-4294967295</format> +          <description>Source addresses seen in the last N seconds</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-4294967295"/> +        </constraint> +      </properties> +    </leafNode> +  </children> +</node> +<node name="set"> +  <properties> +    <help>Packet modifications</help> +  </properties> +  <children> +    <leafNode name="dscp"> +      <properties> +        <help>Packet Differentiated Services Codepoint (DSCP)</help> +        <valueHelp> +          <format>u32:0-63</format> +          <description>DSCP number</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-63"/> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="mark"> +      <properties> +        <help>Packet marking</help> +        <valueHelp> +          <format>u32:1-2147483647</format> +          <description>Packet marking</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-2147483647"/> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="table"> +      <properties> +        <help>Routing table to forward packet with</help> +        <valueHelp> +          <format>u32:1-200</format> +          <description>Table number</description> +        </valueHelp> +        <valueHelp> +          <format>main</format> +          <description>Main table</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-200"/> +          <regex>(main)</regex> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="tcp-mss"> +      <properties> +        <help>TCP Maximum Segment Size</help> +        <valueHelp> +          <format>u32:500-1460</format> +          <description>Explicitly set TCP MSS value</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 500-1460"/> +        </constraint> +      </properties> +    </leafNode> +  </children> +</node> +<node name="source"> +  <properties> +    <help>Source parameters</help> +  </properties> +  <children> +    #include <include/firewall/address.xml.i> +    #include <include/firewall/source-destination-group.xml.i> +    <leafNode name="mac-address"> +      <properties> +        <help>Source MAC address</help> +        <valueHelp> +          <format><MAC address></format> +          <description>MAC address to match</description> +        </valueHelp> +        <valueHelp> +          <format>!<MAC address></format> +          <description>Match everything except the specified MAC address</description> +        </valueHelp> +        <constraint> +          <validator name="mac-address-firewall"/> +        </constraint> +      </properties> +    </leafNode> +    #include <include/firewall/port.xml.i> +  </children> +</node> +<node name="state"> +  <properties> +    <help>Session state</help> +  </properties> +  <children> +    <leafNode name="established"> +      <properties> +        <help>Established state</help> +        <completionHelp> +          <list>enable disable</list> +        </completionHelp> +        <valueHelp> +          <format>enable</format> +          <description>Enable</description> +        </valueHelp> +        <valueHelp> +          <format>disable</format> +          <description>Disable</description> +        </valueHelp> +        <constraint> +          <regex>(enable|disable)</regex> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="invalid"> +      <properties> +        <help>Invalid state</help> +        <completionHelp> +          <list>enable disable</list> +        </completionHelp> +        <valueHelp> +          <format>enable</format> +          <description>Enable</description> +        </valueHelp> +        <valueHelp> +          <format>disable</format> +          <description>Disable</description> +        </valueHelp> +        <constraint> +          <regex>(enable|disable)</regex> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="new"> +      <properties> +        <help>New state</help> +        <completionHelp> +          <list>enable disable</list> +        </completionHelp> +        <valueHelp> +          <format>enable</format> +          <description>Enable</description> +        </valueHelp> +        <valueHelp> +          <format>disable</format> +          <description>Disable</description> +        </valueHelp> +        <constraint> +          <regex>(enable|disable)</regex> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="related"> +      <properties> +        <help>Related state</help> +        <completionHelp> +          <list>enable disable</list> +        </completionHelp> +        <valueHelp> +          <format>enable</format> +          <description>Enable</description> +        </valueHelp> +        <valueHelp> +          <format>disable</format> +          <description>Disable</description> +        </valueHelp> +        <constraint> +          <regex>(enable|disable)</regex> +        </constraint> +      </properties> +    </leafNode> +  </children> +</node> +#include <include/firewall/tcp-flags.xml.i> +<node name="time"> +  <properties> +    <help>Time to match rule</help> +  </properties> +  <children> +    <leafNode name="monthdays"> +      <properties> +        <help>Monthdays to match rule on</help> +      </properties> +    </leafNode> +    <leafNode name="startdate"> +      <properties> +        <help>Date to start matching rule</help> +      </properties> +    </leafNode> +    <leafNode name="starttime"> +      <properties> +        <help>Time of day to start matching rule</help> +      </properties> +    </leafNode> +    <leafNode name="stopdate"> +      <properties> +        <help>Date to stop matching rule</help> +      </properties> +    </leafNode> +    <leafNode name="stoptime"> +      <properties> +        <help>Time of day to stop matching rule</help> +      </properties> +    </leafNode> +    <leafNode name="utc"> +      <properties> +        <help>Interpret times for startdate, stopdate, starttime and stoptime to be UTC</help> +        <valueless/> +      </properties> +    </leafNode> +    <leafNode name="weekdays"> +      <properties> +        <help>Weekdays to match rule on</help> +      </properties> +    </leafNode> +  </children> +</node> +<node name="icmp"> +  <properties> +    <help>ICMP type and code information</help> +  </properties> +  <children> +    <leafNode name="code"> +      <properties> +        <help>ICMP code (0-255)</help> +        <valueHelp> +          <format>u32:0-255</format> +          <description>ICMP code (0-255)</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-255"/> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="type"> +      <properties> +        <help>ICMP type (0-255)</help> +        <valueHelp> +          <format>u32:0-255</format> +          <description>ICMP type (0-255)</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-255"/> +        </constraint> +      </properties> +    </leafNode> +    #include <include/firewall/icmp-type-name.xml.i> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/policy/route-rule-action.xml.i b/interface-definitions/include/policy/route-rule-action.xml.i new file mode 100644 index 000000000..1217055f2 --- /dev/null +++ b/interface-definitions/include/policy/route-rule-action.xml.i @@ -0,0 +1,17 @@ +<!-- include start from policy/route-rule-action.xml.i --> +<leafNode name="action"> +  <properties> +    <help>Rule action [REQUIRED]</help> +    <completionHelp> +      <list>drop</list> +    </completionHelp> +    <valueHelp> +      <format>drop</format> +      <description>Drop matching entries</description> +    </valueHelp> +    <constraint> +      <regex>(drop)</regex> +    </constraint> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/bandwidth.xml.i b/interface-definitions/include/qos/bandwidth.xml.i new file mode 100644 index 000000000..82af22f42 --- /dev/null +++ b/interface-definitions/include/qos/bandwidth.xml.i @@ -0,0 +1,15 @@ +<!-- include start from qos/bandwidth.xml.i --> +<leafNode name="bandwidth"> +  <properties> +    <help>Traffic-limit used for this class</help> +    <valueHelp> +      <format><number></format> +      <description>Rate in kbit (kilobit per second)</description> +    </valueHelp> +    <valueHelp> +      <format><number><suffix></format> +      <description>Rate with scaling suffix (mbit, mbps, ...)</description> +    </valueHelp> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/burst.xml.i b/interface-definitions/include/qos/burst.xml.i new file mode 100644 index 000000000..761618027 --- /dev/null +++ b/interface-definitions/include/qos/burst.xml.i @@ -0,0 +1,16 @@ +<!-- include start from qos/burst.xml.i --> +<leafNode name="burst"> +  <properties> +    <help>Burst size for this class</help> +    <valueHelp> +      <format><number></format> +      <description>Bytes</description> +    </valueHelp> +    <valueHelp> +      <format><number><suffix></format> +      <description>Bytes with scaling suffix (kb, mb, gb)</description> +    </valueHelp> +  </properties> +  <defaultValue>15k</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/codel-quantum.xml.i b/interface-definitions/include/qos/codel-quantum.xml.i new file mode 100644 index 000000000..bc24630b6 --- /dev/null +++ b/interface-definitions/include/qos/codel-quantum.xml.i @@ -0,0 +1,16 @@ +<!-- include start from qos/codel-quantum.xml.i --> +<leafNode name="codel-quantum"> +  <properties> +    <help>Deficit in the fair queuing algorithm</help> +    <valueHelp> +      <format>u32:0-1048576</format> +      <description>Number of bytes used as 'deficit'</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 0-1048576"/> +    </constraint> +    <constraintErrorMessage>Interval must be in range 0 to 1048576</constraintErrorMessage> +  </properties> +  <defaultValue>1514</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/dscp.xml.i b/interface-definitions/include/qos/dscp.xml.i new file mode 100644 index 000000000..bb90850ac --- /dev/null +++ b/interface-definitions/include/qos/dscp.xml.i @@ -0,0 +1,143 @@ +<!-- include start from qos/dscp.xml.i --> +<leafNode name="dscp"> +  <properties> +    <help>Match on Differentiated Services Codepoint (DSCP)</help> +    <completionHelp> +      <list>default reliability throughput lowdelay priority immediate flash flash-override critical internet network AF11 AF12 AF13 AF21 AF22 AF23 AF31 AF32 AF33 AF41 AF42 AF43 CS1 CS2 CS3 CS4 CS5 CS6 CS7 EF</list> +    </completionHelp> +    <valueHelp> +      <format>u32:0-63</format> +      <description>Differentiated Services Codepoint (DSCP) value </description> +    </valueHelp> +    <valueHelp> +      <format>default</format> +      <description>match DSCP (000000)</description> +    </valueHelp> +    <valueHelp> +      <format>reliability</format> +      <description>match DSCP (000001)</description> +    </valueHelp> +    <valueHelp> +      <format>throughput</format> +      <description>match DSCP (000010)</description> +    </valueHelp> +    <valueHelp> +      <format>lowdelay</format> +      <description>match DSCP (000100)</description> +    </valueHelp> +    <valueHelp> +      <format>priority</format> +      <description>match DSCP (001000)</description> +    </valueHelp> +    <valueHelp> +      <format>immediate</format> +      <description>match DSCP (010000)</description> +    </valueHelp> +    <valueHelp> +      <format>flash</format> +      <description>match DSCP (011000)</description> +    </valueHelp> +    <valueHelp> +      <format>flash-override</format> +      <description>match DSCP (100000)</description> +    </valueHelp> +    <valueHelp> +      <format>critical</format> +      <description>match DSCP (101000)</description> +    </valueHelp> +    <valueHelp> +      <format>internet</format> +      <description>match DSCP (110000)</description> +    </valueHelp> +    <valueHelp> +      <format>network</format> +      <description>match DSCP (111000)</description> +    </valueHelp> +    <valueHelp> +      <format>AF11</format> +      <description>High-throughput data</description> +    </valueHelp> +    <valueHelp> +      <format>AF12</format> +      <description>High-throughput data</description> +    </valueHelp> +    <valueHelp> +      <format>AF13</format> +      <description>High-throughput data</description> +    </valueHelp> +    <valueHelp> +      <format>AF21</format> +      <description>Low-latency data</description> +    </valueHelp> +    <valueHelp> +      <format>AF22</format> +      <description>Low-latency data</description> +    </valueHelp> +    <valueHelp> +      <format>AF23</format> +      <description>Low-latency data</description> +    </valueHelp> +    <valueHelp> +      <format>AF31</format> +      <description>Multimedia streaming</description> +    </valueHelp> +    <valueHelp> +      <format>AF32</format> +      <description>Multimedia streaming</description> +    </valueHelp> +    <valueHelp> +      <format>AF33</format> +      <description>Multimedia streaming</description> +    </valueHelp> +    <valueHelp> +      <format>AF41</format> +      <description>Multimedia conferencing</description> +    </valueHelp> +    <valueHelp> +      <format>AF42</format> +      <description>Multimedia conferencing</description> +    </valueHelp> +    <valueHelp> +      <format>AF43</format> +      <description>Multimedia conferencing</description> +    </valueHelp> +    <valueHelp> +      <format>CS1</format> +      <description>Low-priority data</description> +    </valueHelp> +    <valueHelp> +      <format>CS2</format> +      <description>OAM</description> +    </valueHelp> +    <valueHelp> +      <format>CS3</format> +      <description>Broadcast video</description> +    </valueHelp> +    <valueHelp> +      <format>CS4</format> +      <description>Real-time interactive</description> +    </valueHelp> +    <valueHelp> +      <format>CS5</format> +      <description>Signaling</description> +    </valueHelp> +    <valueHelp> +      <format>CS6</format> +      <description>Network control</description> +    </valueHelp> +    <valueHelp> +      <format>CS7</format> +      <description></description> +    </valueHelp> +    <valueHelp> +      <format>EF</format> +      <description>Expedited Forwarding</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 0-63"/> +      <regex>(default|reliability|throughput|lowdelay|priority|immediate|flash|flash-override|critical|internet|network|AF11|AF12|AF13|AF21|AF22|AF23|AF31|AF32|AF33|AF41|AF42|AF43|CS1|CS2|CS3|CS4|CS5|CS6|CS7|EF)</regex> +    </constraint> +    <constraintErrorMessage>Priority must be between 0 and 63</constraintErrorMessage> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/flows.xml.i b/interface-definitions/include/qos/flows.xml.i new file mode 100644 index 000000000..a7d7c6422 --- /dev/null +++ b/interface-definitions/include/qos/flows.xml.i @@ -0,0 +1,16 @@ +<!-- include start from qos/flows.xml.i --> +<leafNode name="flows"> +  <properties> +    <help>Number of flows into which the incoming packets are classified</help> +    <valueHelp> +      <format>u32:1-65536</format> +      <description>Number of flows</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 1-65536"/> +    </constraint> +    <constraintErrorMessage>Interval must be in range 1 to 65536</constraintErrorMessage> +  </properties> +  <defaultValue>1024</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/hfsc-d.xml.i b/interface-definitions/include/qos/hfsc-d.xml.i new file mode 100644 index 000000000..2a513509c --- /dev/null +++ b/interface-definitions/include/qos/hfsc-d.xml.i @@ -0,0 +1,15 @@ +<!-- include start from qos/hfsc-d.xml.i --> +<leafNode name="d"> +  <properties> +    <help>Service curve delay</help> +    <valueHelp> +      <format><number></format> +      <description>Time in milliseconds</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 0-65535"/> +    </constraint> +    <constraintErrorMessage>Priority must be between 0 and 65535</constraintErrorMessage> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/hfsc-m1.xml.i b/interface-definitions/include/qos/hfsc-m1.xml.i new file mode 100644 index 000000000..749d01f57 --- /dev/null +++ b/interface-definitions/include/qos/hfsc-m1.xml.i @@ -0,0 +1,32 @@ +<!-- include start from qos/hfsc-m1.xml.i --> +<leafNode name="m1"> +  <properties> +    <help>Linkshare m1 parameter for class traffic</help> +    <valueHelp> +      <format><number></format> +      <description>Rate in kbit (kilobit per second)</description> +    </valueHelp> +    <valueHelp> +      <format><number>%%</format> +      <description>Percentage of overall rate</description> +    </valueHelp> +    <valueHelp> +      <format><number>bit</format> +      <description>bit(1), kbit(10^3), mbit(10^6), gbit, tbit</description> +    </valueHelp> +    <valueHelp> +      <format><number>ibit</format> +      <description>kibit(1024), mibit(1024^2), gibit(1024^3), tbit(1024^4)</description> +    </valueHelp> +    <valueHelp> +      <format><number>ibps</format> +      <description>kibps(1024*8), mibps(1024^2*8), gibps, tibps - Byte/sec</description> +    </valueHelp> +    <valueHelp> +      <format><number>bps</format> +      <description>bps(8),kbps(8*10^3),mbps(8*10^6), gbps, tbps - Byte/sec</description> +    </valueHelp> +  </properties> +  <defaultValue>100%</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/hfsc-m2.xml.i b/interface-definitions/include/qos/hfsc-m2.xml.i new file mode 100644 index 000000000..24e8f5d63 --- /dev/null +++ b/interface-definitions/include/qos/hfsc-m2.xml.i @@ -0,0 +1,32 @@ +<!-- include start from qos/hfsc-m2.xml.i --> +<leafNode name="m2"> +  <properties> +    <help>Linkshare m2 parameter for class traffic</help> +    <valueHelp> +      <format><number></format> +      <description>Rate in kbit (kilobit per second)</description> +    </valueHelp> +    <valueHelp> +      <format><number>%%</format> +      <description>Percentage of overall rate</description> +    </valueHelp> +    <valueHelp> +      <format><number>bit</format> +      <description>bit(1), kbit(10^3), mbit(10^6), gbit, tbit</description> +    </valueHelp> +    <valueHelp> +      <format><number>ibit</format> +      <description>kibit(1024), mibit(1024^2), gibit(1024^3), tbit(1024^4)</description> +    </valueHelp> +    <valueHelp> +      <format><number>ibps</format> +      <description>kibps(1024*8), mibps(1024^2*8), gibps, tibps - Byte/sec</description> +    </valueHelp> +    <valueHelp> +      <format><number>bps</format> +      <description>bps(8),kbps(8*10^3),mbps(8*10^6), gbps, tbps - Byte/sec</description> +    </valueHelp> +  </properties> +  <defaultValue>100%</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/interval.xml.i b/interface-definitions/include/qos/interval.xml.i new file mode 100644 index 000000000..41896ac9c --- /dev/null +++ b/interface-definitions/include/qos/interval.xml.i @@ -0,0 +1,16 @@ +<!-- include start from qos/interval.xml.i --> +<leafNode name="interval"> +  <properties> +    <help>Interval used to measure the delay</help> +    <valueHelp> +      <format>u32</format> +      <description>Interval in milliseconds</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 0-4294967295"/> +    </constraint> +    <constraintErrorMessage>Interval must be in range 0 to 4294967295</constraintErrorMessage> +  </properties> +  <defaultValue>100</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/match.xml.i b/interface-definitions/include/qos/match.xml.i new file mode 100644 index 000000000..7d89e4460 --- /dev/null +++ b/interface-definitions/include/qos/match.xml.i @@ -0,0 +1,221 @@ +<!-- include start from qos/match.xml.i --> +<tagNode name="match"> +  <properties> +    <help>Class matching rule name</help> +    <constraint> +      <regex>[^-].*</regex> +    </constraint> +    <constraintErrorMessage>Match queue name cannot start with hyphen (-)</constraintErrorMessage> +  </properties> +  <children> +    #include <include/generic-description.xml.i> +    <node name="ether"> +      <properties> +        <help>Ethernet header match</help> +      </properties> +      <children> +        <leafNode name="destination"> +          <properties> +            <help>Ethernet destination address for this match</help> +            <valueHelp> +              <format>macaddr</format> +              <description>MAC address to match</description> +            </valueHelp> +            <constraint> +              <validator name="mac-address"/> +            </constraint> +          </properties> +        </leafNode> +        <leafNode name="protocol"> +          <properties> +            <help>Ethernet protocol for this match</help> +            <!-- this refers to /etc/protocols --> +            <completionHelp> +              <list>all 802.1Q 802_2 802_3 aarp aoe arp atalk dec ip ipv6 ipx lat localtalk rarp snap x25</list> +            </completionHelp> +            <valueHelp> +              <format>u32:0-65535</format> +              <description>Ethernet protocol number</description> +            </valueHelp> +            <valueHelp> +              <format>txt</format> +              <description>Ethernet protocol name</description> +            </valueHelp> +            <valueHelp> +              <format>all</format> +              <description>Any protocol</description> +            </valueHelp> +            <valueHelp> +              <format>ip</format> +              <description>Internet IP (IPv4)</description> +            </valueHelp> +            <valueHelp> +              <format>ipv6</format> +              <description>Internet IP (IPv6)</description> +            </valueHelp> +            <valueHelp> +              <format>arp</format> +              <description>Address Resolution Protocol</description> +            </valueHelp> +            <valueHelp> +              <format>atalk</format> +              <description>Appletalk</description> +            </valueHelp> +            <valueHelp> +              <format>ipx</format> +              <description>Novell Internet Packet Exchange</description> +            </valueHelp> +            <valueHelp> +              <format>802.1Q</format> +              <description>802.1Q VLAN tag</description> +            </valueHelp> +            <constraint> +              <validator name="ip-protocol"/> +            </constraint> +          </properties> +        </leafNode> +        <leafNode name="source"> +          <properties> +            <help>Ethernet source address for this match</help> +            <valueHelp> +              <format>macaddr</format> +              <description>MAC address to match</description> +            </valueHelp> +            <constraint> +              <validator name="mac-address"/> +            </constraint> +          </properties> +        </leafNode> +      </children> +    </node> +    #include <include/generic-interface.xml.i> +    <node name="ip"> +      <properties> +        <help>Match IP protocol header</help> +      </properties> +      <children> +        <node name="destination"> +          <properties> +            <help>Match on destination port or address</help> +          </properties> +          <children> +            <leafNode name="address"> +              <properties> +                <help>IPv4 destination address for this match</help> +                <valueHelp> +                  <format>ipv4net</format> +                  <description>IPv4 address and prefix length</description> +                </valueHelp> +                <constraint> +                  <validator name="ipv4"/> +                </constraint> +              </properties> +            </leafNode> +            #include <include/port-number.xml.i> +          </children> +        </node> +        #include <include/qos/dscp.xml.i> +        #include <include/qos/max-length.xml.i> +        #include <include/ip-protocol.xml.i> +        <node name="source"> +          <properties> +            <help>Match on source port or address</help> +          </properties> +          <children> +            <leafNode name="address"> +              <properties> +                <help>IPv4 source address for this match</help> +                <valueHelp> +                  <format>ipv4net</format> +                  <description>IPv4 address and prefix length</description> +                </valueHelp> +                <constraint> +                  <validator name="ipv4"/> +                </constraint> +              </properties> +            </leafNode> +            #include <include/port-number.xml.i> +          </children> +        </node> +        #include <include/qos/tcp-flags.xml.i> +      </children> +    </node> +    <node name="ipv6"> +      <properties> +        <help>Match IPv6 protocol header</help> +      </properties> +      <children> +        <node name="destination"> +          <properties> +            <help>Match on destination port or address</help> +          </properties> +          <children> +            <leafNode name="address"> +              <properties> +                <help>IPv6 destination address for this match</help> +                <valueHelp> +                  <format>ipv6net</format> +                  <description>IPv6 address and prefix length</description> +                </valueHelp> +                <constraint> +                  <validator name="ipv6"/> +                </constraint> +              </properties> +            </leafNode> +            #include <include/port-number.xml.i> +          </children> +        </node> +        #include <include/qos/dscp.xml.i> +        #include <include/qos/max-length.xml.i> +        #include <include/ip-protocol.xml.i> +        <node name="source"> +          <properties> +            <help>Match on source port or address</help> +          </properties> +          <children> +            <leafNode name="address"> +              <properties> +                <help>IPv6 source address for this match</help> +                <valueHelp> +                  <format>ipv6net</format> +                  <description>IPv6 address and prefix length</description> +                </valueHelp> +                <constraint> +                  <validator name="ipv6"/> +                </constraint> +              </properties> +            </leafNode> +            #include <include/port-number.xml.i> +          </children> +        </node> +        #include <include/qos/tcp-flags.xml.i> +      </children> +    </node> +    <leafNode name="mark"> +      <properties> +        <help>Match on mark applied by firewall</help> +        <valueHelp> +          <format>txt</format> +          <description>FW mark to match</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0x0-0xffff"/> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="vif"> +      <properties> +        <help>Virtual Local Area Network (VLAN) ID for this match</help> +        <valueHelp> +          <format>u32:0-4095</format> +          <description>Virtual Local Area Network (VLAN) tag </description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 0-4095"/> +        </constraint> +        <constraintErrorMessage>VLAN ID must be between 0 and 4095</constraintErrorMessage> +      </properties> +    </leafNode> +  </children> +</tagNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/max-length.xml.i b/interface-definitions/include/qos/max-length.xml.i new file mode 100644 index 000000000..4cc20f8c4 --- /dev/null +++ b/interface-definitions/include/qos/max-length.xml.i @@ -0,0 +1,15 @@ +<!-- include start from qos/max-length.xml.i --> +<leafNode name="max-length"> +  <properties> +    <help>Maximum packet length (ipv4)</help> +    <valueHelp> +      <format>u32:0-65535</format> +      <description>Maximum packet/payload length</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 0-65535"/> +    </constraint> +    <constraintErrorMessage>Maximum IPv4 total packet length is 65535</constraintErrorMessage> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/queue-limit-1-4294967295.xml.i b/interface-definitions/include/qos/queue-limit-1-4294967295.xml.i new file mode 100644 index 000000000..2f2d44631 --- /dev/null +++ b/interface-definitions/include/qos/queue-limit-1-4294967295.xml.i @@ -0,0 +1,15 @@ +<!-- include start from qos/queue-limit-1-4294967295.xml.i --> +<leafNode name="queue-limit"> +  <properties> +    <help>Maximum queue size</help> +    <valueHelp> +      <format>u32:1-4294967295</format> +      <description>Queue size in packets</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 1-4294967295"/> +    </constraint> +    <constraintErrorMessage>Queue limit must be greater than zero</constraintErrorMessage> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/queue-limit-2-10999.xml.i b/interface-definitions/include/qos/queue-limit-2-10999.xml.i new file mode 100644 index 000000000..7a9c8266b --- /dev/null +++ b/interface-definitions/include/qos/queue-limit-2-10999.xml.i @@ -0,0 +1,16 @@ +<!-- include start from qos/queue-limit.xml.i --> +<leafNode name="queue-limit"> +  <properties> +    <help>Upper limit of the queue</help> +    <valueHelp> +      <format>u32:2-10999</format> +      <description>Queue size in packets</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 2-10999"/> +    </constraint> +    <constraintErrorMessage>Queue limit must greater than 1 and less than 11000</constraintErrorMessage> +  </properties> +  <defaultValue>10240</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/queue-type.xml.i b/interface-definitions/include/qos/queue-type.xml.i new file mode 100644 index 000000000..634f61024 --- /dev/null +++ b/interface-definitions/include/qos/queue-type.xml.i @@ -0,0 +1,30 @@ +<!-- include start from qos/queue-type.xml.i --> +<leafNode name="queue-type"> +  <properties> +    <help>Queue type for default traffic</help> +    <completionHelp> +      <list>fq-codel fair-queue drop-tail random-detect</list> +    </completionHelp> +    <valueHelp> +      <format>fq-codel</format> +      <description>Fair Queue Codel</description> +    </valueHelp> +    <valueHelp> +      <format>fair-queue</format> +      <description>Stochastic Fair Queue (SFQ)</description> +    </valueHelp> +    <valueHelp> +      <format>drop-tail</format> +      <description>First-In-First-Out (FIFO)</description> +    </valueHelp> +    <valueHelp> +      <format>random-detect</format> +      <description>Random Early Detection (RED)</description> +    </valueHelp> +    <constraint> +      <regex>(fq-codel|fair-queue|drop-tail|random-detect)</regex> +    </constraint> +  </properties> +  <defaultValue>drop-tail</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/set-dscp.xml.i b/interface-definitions/include/qos/set-dscp.xml.i new file mode 100644 index 000000000..55c0ea44d --- /dev/null +++ b/interface-definitions/include/qos/set-dscp.xml.i @@ -0,0 +1,63 @@ +<!-- include start from qos/set-dscp.xml.i --> +<leafNode name="set-dscp"> +  <properties> +    <help>Change the Differentiated Services (DiffServ) field in the IP header</help> +    <completionHelp> +      <list>default reliability throughput lowdelay priority immediate flash flash-override critical internet network</list> +    </completionHelp> +    <valueHelp> +      <format>u32:0-63</format> +      <description>Priority order for bandwidth pool</description> +    </valueHelp> +    <valueHelp> +      <format>default</format> +      <description>match DSCP (000000)</description> +    </valueHelp> +    <valueHelp> +      <format>reliability</format> +      <description>match DSCP (000001)</description> +    </valueHelp> +    <valueHelp> +      <format>throughput</format> +      <description>match DSCP (000010)</description> +    </valueHelp> +    <valueHelp> +      <format>lowdelay</format> +      <description>match DSCP (000100)</description> +    </valueHelp> +    <valueHelp> +      <format>priority</format> +      <description>match DSCP (001000)</description> +    </valueHelp> +    <valueHelp> +      <format>immediate</format> +      <description>match DSCP (010000)</description> +    </valueHelp> +    <valueHelp> +      <format>flash</format> +      <description>match DSCP (011000)</description> +    </valueHelp> +    <valueHelp> +      <format>flash-override</format> +      <description>match DSCP (100000)</description> +    </valueHelp> +    <valueHelp> +      <format>critical</format> +      <description>match DSCP (101000)</description> +    </valueHelp> +    <valueHelp> +      <format>internet</format> +      <description>match DSCP (110000)</description> +    </valueHelp> +    <valueHelp> +      <format>network</format> +      <description>match DSCP (111000)</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 0-63"/> +      <regex>(default|reliability|throughput|lowdelay|priority|immediate|flash|flash-override|critical|internet|network)</regex> +    </constraint> +    <constraintErrorMessage>Priority must be between 0 and 63</constraintErrorMessage> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/target.xml.i b/interface-definitions/include/qos/target.xml.i new file mode 100644 index 000000000..bf6342ac9 --- /dev/null +++ b/interface-definitions/include/qos/target.xml.i @@ -0,0 +1,16 @@ +<!-- include start from qos/target.xml.i --> +<leafNode name="target"> +  <properties> +    <help>Acceptable minimum standing/persistent queue delay</help> +    <valueHelp> +      <format>u32</format> +      <description>Queue delay in milliseconds</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 0-4294967295"/> +    </constraint> +    <constraintErrorMessage>Delay must be in range 0 to 4294967295</constraintErrorMessage> +  </properties> +  <defaultValue>5</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/qos/tcp-flags.xml.i b/interface-definitions/include/qos/tcp-flags.xml.i new file mode 100644 index 000000000..81d70d1f3 --- /dev/null +++ b/interface-definitions/include/qos/tcp-flags.xml.i @@ -0,0 +1,21 @@ +<!-- include start from qos/tcp-flags.xml.i --> +<node name="tcp"> +  <properties> +    <help>TCP Flags matching</help> +  </properties> +  <children> +    <leafNode name="ack"> +      <properties> +        <help>Match TCP ACK</help> +        <valueless/> +      </properties> +    </leafNode> +    <leafNode name="syn"> +      <properties> +        <help>Match TCP SYN</help> +        <valueless/> +      </properties> +    </leafNode> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/radius-server-port.xml.i b/interface-definitions/include/radius-server-port.xml.i index 4e5d906bc..c6b691a0f 100644 --- a/interface-definitions/include/radius-server-port.xml.i +++ b/interface-definitions/include/radius-server-port.xml.i @@ -4,7 +4,7 @@      <help>Authentication port</help>      <valueHelp>        <format>u32:1-65535</format> -      <description>Numeric IP port (default: 1812)</description> +      <description>Numeric IP port</description>      </valueHelp>      <constraint>        <validator name="numeric" argument="--range 1-65535"/> diff --git a/interface-definitions/include/rip/rip-timers.xml.i b/interface-definitions/include/rip/rip-timers.xml.i index 3aaaf8e65..129d9ed23 100644 --- a/interface-definitions/include/rip/rip-timers.xml.i +++ b/interface-definitions/include/rip/rip-timers.xml.i @@ -9,7 +9,7 @@          <help>Garbage collection timer</help>          <valueHelp>            <format>u32:5-2147483647</format> -          <description>Garbage colletion time (default 120)</description> +          <description>Garbage colletion time</description>          </valueHelp>          <constraint>            <validator name="numeric" argument="--range 5-2147483647"/> @@ -22,7 +22,7 @@          <help>Routing information timeout timer</help>          <valueHelp>            <format>u32:5-2147483647</format> -          <description>Routing information timeout timer (default 180)</description> +          <description>Routing information timeout timer</description>          </valueHelp>          <constraint>            <validator name="numeric" argument="--range 5-2147483647"/> @@ -35,7 +35,7 @@          <help>Routing table update timer</help>          <valueHelp>            <format>u32:5-2147483647</format> -          <description>Routing table update timer in seconds (default 30)</description> +          <description>Routing table update timer in seconds</description>          </valueHelp>          <constraint>            <validator name="numeric" argument="--range 5-2147483647"/> 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 new file mode 100644 index 000000000..7469805ac --- /dev/null +++ b/interface-definitions/include/snmp/access-mode.xml.i @@ -0,0 +1,23 @@ +<!-- include start from snmp/access-mode.xml.i --> +<leafNode name="mode"> +  <properties> +    <help>Define access permission</help> +    <completionHelp> +      <list>ro rw</list> +    </completionHelp> +    <valueHelp> +      <format>ro</format> +      <description>Read-Only</description> +    </valueHelp> +    <valueHelp> +      <format>rw</format> +      <description>read write</description> +    </valueHelp> +    <constraint> +      <regex>(ro|rw)</regex> +    </constraint> +    <constraintErrorMessage>Authorization type must be either 'rw' or 'ro'</constraintErrorMessage> +  </properties> +  <defaultValue>ro</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/snmp/authentication-type.xml.i b/interface-definitions/include/snmp/authentication-type.xml.i new file mode 100644 index 000000000..047d8cff4 --- /dev/null +++ b/interface-definitions/include/snmp/authentication-type.xml.i @@ -0,0 +1,22 @@ +<!-- include start from snmp/authentication-type.xml.i --> +<leafNode name="type"> +  <properties> +    <help>Define used protocol</help> +    <completionHelp> +      <list>md5 sha</list> +    </completionHelp> +    <valueHelp> +      <format>md5</format> +      <description>Message Digest 5</description> +    </valueHelp> +    <valueHelp> +      <format>sha</format> +      <description>Secure Hash Algorithm</description> +    </valueHelp> +    <constraint> +      <regex>(md5|sha)</regex> +    </constraint> +  </properties> +  <defaultValue>md5</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/snmp/privacy-type.xml.i b/interface-definitions/include/snmp/privacy-type.xml.i new file mode 100644 index 000000000..d5fd1e811 --- /dev/null +++ b/interface-definitions/include/snmp/privacy-type.xml.i @@ -0,0 +1,22 @@ +<!-- include start from snmp/privacy-type.xml.i --> +<leafNode name="type"> +  <properties> +    <help>Defines the protocol for privacy</help> +    <completionHelp> +      <list>des aes</list> +    </completionHelp> +    <valueHelp> +      <format>des</format> +      <description>Data Encryption Standard</description> +    </valueHelp> +    <valueHelp> +      <format>aes</format> +      <description>Advanced Encryption Standard</description> +    </valueHelp> +    <constraint> +      <regex>(des|aes)</regex> +    </constraint> +  </properties> +  <defaultValue>des</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/snmp/protocol.xml.i b/interface-definitions/include/snmp/protocol.xml.i new file mode 100644 index 000000000..d7e6752ad --- /dev/null +++ b/interface-definitions/include/snmp/protocol.xml.i @@ -0,0 +1,22 @@ +<!-- include start from snmp/protocol.xml.i -->
 +<leafNode name="protocol">
 +  <properties>
 +    <help>Protocol to be used (TCP/UDP)</help>
 +    <completionHelp>
 +      <list>udp tcp</list>
 +    </completionHelp>
 +    <valueHelp>
 +      <format>udp</format>
 +      <description>Listen protocol UDP</description>
 +    </valueHelp>
 +    <valueHelp>
 +      <format>tcp</format>
 +      <description>Listen protocol TCP</description>
 +    </valueHelp>
 +    <constraint>
 +      <regex>(udp|tcp)</regex>
 +    </constraint>
 +  </properties>
 +  <defaultValue>udp</defaultValue>
 +</leafNode>
 +<!-- include end -->
 diff --git a/interface-definitions/include/ssh-user.xml.i b/interface-definitions/include/ssh-user.xml.i index 677602dd8..6ac1f35bc 100644 --- a/interface-definitions/include/ssh-user.xml.i +++ b/interface-definitions/include/ssh-user.xml.i @@ -3,9 +3,9 @@    <properties>      <help>Allow specific users to login</help>      <constraint> -      <regex>[a-z_][a-z0-9_-]{1,31}[$]?</regex> +      <regex>[-_a-zA-Z0-9.]{1,100}</regex>      </constraint> -    <constraintErrorMessage>illegal characters or more than 32 characters</constraintErrorMessage> +    <constraintErrorMessage>Illegal characters or more than 100 characters</constraintErrorMessage>      <multi/>    </properties>  </leafNode> diff --git a/interface-definitions/include/static/static-route-blackhole.xml.i b/interface-definitions/include/static/static-route-blackhole.xml.i index f2ad23e69..487f775f5 100644 --- a/interface-definitions/include/static/static-route-blackhole.xml.i +++ b/interface-definitions/include/static/static-route-blackhole.xml.i @@ -1,10 +1,11 @@  <!-- include start from static/static-route-blackhole.xml.i -->  <node name="blackhole">    <properties> -    <help>Silently discard packets when matched</help> +    <help>Silently discard pkts when matched</help>    </properties>    <children>      #include <include/static/static-route-distance.xml.i> +    #include <include/static/static-route-tag.xml.i>    </children>  </node>  <!-- include end --> diff --git a/interface-definitions/include/static/static-route-reject.xml.i b/interface-definitions/include/static/static-route-reject.xml.i new file mode 100644 index 000000000..81d4f9afd --- /dev/null +++ b/interface-definitions/include/static/static-route-reject.xml.i @@ -0,0 +1,12 @@ +<!-- include start from static/static-route-blackhole.xml.i --> +<node name="reject"> +  <properties> +    <help>Emit an ICMP unreachable when matched</help> +  </properties> +  <children> +    #include <include/static/static-route-distance.xml.i> +    #include <include/static/static-route-tag.xml.i> +  </children> +</node> +<!-- include end --> + diff --git a/interface-definitions/include/static/static-route-tag.xml.i b/interface-definitions/include/static/static-route-tag.xml.i new file mode 100644 index 000000000..24bfa732e --- /dev/null +++ b/interface-definitions/include/static/static-route-tag.xml.i @@ -0,0 +1,14 @@ +<!-- include start from static/static-route-tag.xml.i --> +<leafNode name="tag"> +  <properties> +    <help>Tag value for this route</help> +    <valueHelp> +      <format>u32:1-4294967295</format> +      <description>Tag value for this route</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 1-4294967295"/> +    </constraint> +  </properties> +</leafNode> +<!-- include end --> 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/static/static-route.xml.i b/interface-definitions/include/static/static-route.xml.i index 21babc015..2de5dc58f 100644 --- a/interface-definitions/include/static/static-route.xml.i +++ b/interface-definitions/include/static/static-route.xml.i @@ -1,7 +1,7 @@  <!-- include start from static/static-route.xml.i -->  <tagNode name="route">    <properties> -    <help>VRF static IPv4 route</help> +    <help>Static IPv4 route</help>      <valueHelp>        <format>ipv4net</format>        <description>IPv4 static route</description> @@ -11,26 +11,8 @@      </constraint>    </properties>    <children> -    <node name="blackhole"> -      <properties> -        <help>Silently discard pkts when matched</help> -      </properties> -      <children> -        #include <include/static/static-route-distance.xml.i> -        <leafNode name="tag"> -          <properties> -            <help>Tag value for this route</help> -            <valueHelp> -              <format>u32:1-4294967295</format> -              <description>Tag value for this route</description> -            </valueHelp> -            <constraint> -              <validator name="numeric" argument="--range 1-4294967295"/> -            </constraint> -          </properties> -        </leafNode> -      </children> -    </node> +    #include <include/static/static-route-blackhole.xml.i> +    #include <include/static/static-route-reject.xml.i>      #include <include/dhcp-interface.xml.i>      <tagNode name="interface">        <properties> diff --git a/interface-definitions/include/static/static-route6.xml.i b/interface-definitions/include/static/static-route6.xml.i index 0ea995588..35feef41c 100644 --- a/interface-definitions/include/static/static-route6.xml.i +++ b/interface-definitions/include/static/static-route6.xml.i @@ -1,7 +1,7 @@  <!-- include start from static/static-route6.xml.i -->  <tagNode name="route6">    <properties> -    <help>VRF static IPv6 route</help> +    <help>Static IPv6 route</help>      <valueHelp>        <format>ipv6net</format>        <description>IPv6 static route</description> @@ -11,26 +11,8 @@      </constraint>    </properties>    <children> -    <node name="blackhole"> -      <properties> -        <help>Silently discard pkts when matched</help> -      </properties> -      <children> -        #include <include/static/static-route-distance.xml.i> -        <leafNode name="tag"> -          <properties> -            <help>Tag value for this route</help> -            <valueHelp> -              <format>u32:1-4294967295</format> -              <description>Tag value for this route</description> -            </valueHelp> -            <constraint> -              <validator name="numeric" argument="--range 1-4294967295"/> -            </constraint> -          </properties> -        </leafNode> -      </children> -    </node> +    #include <include/static/static-route-blackhole.xml.i> +    #include <include/static/static-route-reject.xml.i>      <tagNode name="interface">        <properties>          <help>IPv6 gateway interface name</help> diff --git a/interface-definitions/include/version/bgp-version.xml.i b/interface-definitions/include/version/bgp-version.xml.i new file mode 100644 index 000000000..15bc5abd4 --- /dev/null +++ b/interface-definitions/include/version/bgp-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/bgp-version.xml.i --> +<syntaxVersion component='bgp' version='2'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/broadcast-relay-version.xml.i b/interface-definitions/include/version/broadcast-relay-version.xml.i new file mode 100644 index 000000000..98481f446 --- /dev/null +++ b/interface-definitions/include/version/broadcast-relay-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/broadcast-relay-version.xml.i --> +<syntaxVersion component='broadcast-relay' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/cluster-version.xml.i b/interface-definitions/include/version/cluster-version.xml.i new file mode 100644 index 000000000..621996df4 --- /dev/null +++ b/interface-definitions/include/version/cluster-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/cluster-version.xml.i --> +<syntaxVersion component='cluster' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/config-management-version.xml.i b/interface-definitions/include/version/config-management-version.xml.i new file mode 100644 index 000000000..695ba09ab --- /dev/null +++ b/interface-definitions/include/version/config-management-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/config-management-version.xml.i --> +<syntaxVersion component='config-management' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/conntrack-sync-version.xml.i b/interface-definitions/include/version/conntrack-sync-version.xml.i new file mode 100644 index 000000000..f040c29f6 --- /dev/null +++ b/interface-definitions/include/version/conntrack-sync-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/conntrack-sync-version.xml.i --> +<syntaxVersion component='conntrack-sync' version='2'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/conntrack-version.xml.i b/interface-definitions/include/version/conntrack-version.xml.i new file mode 100644 index 000000000..696f76362 --- /dev/null +++ b/interface-definitions/include/version/conntrack-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/conntrack-version.xml.i --> +<syntaxVersion component='conntrack' version='3'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/dhcp-relay-version.xml.i b/interface-definitions/include/version/dhcp-relay-version.xml.i new file mode 100644 index 000000000..75f5d5486 --- /dev/null +++ b/interface-definitions/include/version/dhcp-relay-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/dhcp-relay-version.xml.i --> +<syntaxVersion component='dhcp-relay' version='2'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/dhcp-server-version.xml.i b/interface-definitions/include/version/dhcp-server-version.xml.i new file mode 100644 index 000000000..330cb7d1b --- /dev/null +++ b/interface-definitions/include/version/dhcp-server-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/dhcp-server-version.xml.i --> +<syntaxVersion component='dhcp-server' version='6'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/dhcpv6-server-version.xml.i b/interface-definitions/include/version/dhcpv6-server-version.xml.i new file mode 100644 index 000000000..4b2cf40aa --- /dev/null +++ b/interface-definitions/include/version/dhcpv6-server-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/dhcpv6-server-version.xml.i --> +<syntaxVersion component='dhcpv6-server' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/dns-forwarding-version.xml.i b/interface-definitions/include/version/dns-forwarding-version.xml.i new file mode 100644 index 000000000..fe817940a --- /dev/null +++ b/interface-definitions/include/version/dns-forwarding-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/dns-forwarding-version.xml.i --> +<syntaxVersion component='dns-forwarding' version='3'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/firewall-version.xml.i b/interface-definitions/include/version/firewall-version.xml.i new file mode 100644 index 000000000..059a89f24 --- /dev/null +++ b/interface-definitions/include/version/firewall-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/firewall-version.xml.i --> +<syntaxVersion component='firewall' version='7'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/flow-accounting-version.xml.i b/interface-definitions/include/version/flow-accounting-version.xml.i new file mode 100644 index 000000000..5b01fe4b5 --- /dev/null +++ b/interface-definitions/include/version/flow-accounting-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/flow-accounting-version.xml.i --> +<syntaxVersion component='flow-accounting' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/https-version.xml.i b/interface-definitions/include/version/https-version.xml.i new file mode 100644 index 000000000..586083649 --- /dev/null +++ b/interface-definitions/include/version/https-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/https-version.xml.i --> +<syntaxVersion component='https' version='3'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/interfaces-version.xml.i b/interface-definitions/include/version/interfaces-version.xml.i new file mode 100644 index 000000000..0a209bc3a --- /dev/null +++ b/interface-definitions/include/version/interfaces-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/interfaces-version.xml.i --> +<syntaxVersion component='interfaces' version='26'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/ipoe-server-version.xml.i b/interface-definitions/include/version/ipoe-server-version.xml.i new file mode 100644 index 000000000..00d2544e6 --- /dev/null +++ b/interface-definitions/include/version/ipoe-server-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/ipoe-server-version.xml.i --> +<syntaxVersion component='ipoe-server' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/ipsec-version.xml.i b/interface-definitions/include/version/ipsec-version.xml.i new file mode 100644 index 000000000..59295cc91 --- /dev/null +++ b/interface-definitions/include/version/ipsec-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/ipsec-version.xml.i --> +<syntaxVersion component='ipsec' version='9'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/isis-version.xml.i b/interface-definitions/include/version/isis-version.xml.i new file mode 100644 index 000000000..4a8fef39c --- /dev/null +++ b/interface-definitions/include/version/isis-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/isis-version.xml.i --> +<syntaxVersion component='isis' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/l2tp-version.xml.i b/interface-definitions/include/version/l2tp-version.xml.i new file mode 100644 index 000000000..86114d676 --- /dev/null +++ b/interface-definitions/include/version/l2tp-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/l2tp-version.xml.i --> +<syntaxVersion component='l2tp' version='4'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/lldp-version.xml.i b/interface-definitions/include/version/lldp-version.xml.i new file mode 100644 index 000000000..0deb73279 --- /dev/null +++ b/interface-definitions/include/version/lldp-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/lldp-version.xml.i --> +<syntaxVersion component='lldp' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/mdns-version.xml.i b/interface-definitions/include/version/mdns-version.xml.i new file mode 100644 index 000000000..b200a68b4 --- /dev/null +++ b/interface-definitions/include/version/mdns-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/mdns-version.xml.i --> +<syntaxVersion component='mdns' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/nat-version.xml.i b/interface-definitions/include/version/nat-version.xml.i new file mode 100644 index 000000000..027216a07 --- /dev/null +++ b/interface-definitions/include/version/nat-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/nat-version.xml.i --> +<syntaxVersion component='nat' version='5'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/nat66-version.xml.i b/interface-definitions/include/version/nat66-version.xml.i new file mode 100644 index 000000000..7b7123dcc --- /dev/null +++ b/interface-definitions/include/version/nat66-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/nat66-version.xml.i --> +<syntaxVersion component='nat66' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/ntp-version.xml.i b/interface-definitions/include/version/ntp-version.xml.i new file mode 100644 index 000000000..cc4ff9a1c --- /dev/null +++ b/interface-definitions/include/version/ntp-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/ntp-version.xml.i --> +<syntaxVersion component='ntp' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/openconnect-version.xml.i b/interface-definitions/include/version/openconnect-version.xml.i new file mode 100644 index 000000000..654806278 --- /dev/null +++ b/interface-definitions/include/version/openconnect-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/openconnect-version.xml.i --> +<syntaxVersion component='openconnect' version='2'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/ospf-version.xml.i b/interface-definitions/include/version/ospf-version.xml.i new file mode 100644 index 000000000..755965daa --- /dev/null +++ b/interface-definitions/include/version/ospf-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/ospf-version.xml.i --> +<syntaxVersion component='ospf' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/policy-version.xml.i b/interface-definitions/include/version/policy-version.xml.i new file mode 100644 index 000000000..6d0c80518 --- /dev/null +++ b/interface-definitions/include/version/policy-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/policy-version.xml.i --> +<syntaxVersion component='policy' version='2'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/pppoe-server-version.xml.i b/interface-definitions/include/version/pppoe-server-version.xml.i new file mode 100644 index 000000000..ec81487f8 --- /dev/null +++ b/interface-definitions/include/version/pppoe-server-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/pppoe-server-version.xml.i --> +<syntaxVersion component='pppoe-server' version='5'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/pptp-version.xml.i b/interface-definitions/include/version/pptp-version.xml.i new file mode 100644 index 000000000..0296c44e9 --- /dev/null +++ b/interface-definitions/include/version/pptp-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/pptp-version.xml.i --> +<syntaxVersion component='pptp' version='2'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/qos-version.xml.i b/interface-definitions/include/version/qos-version.xml.i new file mode 100644 index 000000000..e4d139349 --- /dev/null +++ b/interface-definitions/include/version/qos-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/qos-version.xml.i --> +<syntaxVersion component='qos' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/quagga-version.xml.i b/interface-definitions/include/version/quagga-version.xml.i new file mode 100644 index 000000000..f9944acce --- /dev/null +++ b/interface-definitions/include/version/quagga-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/quagga-version.xml.i --> +<syntaxVersion component='quagga' version='10'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/rpki-version.xml.i b/interface-definitions/include/version/rpki-version.xml.i new file mode 100644 index 000000000..2fff259a8 --- /dev/null +++ b/interface-definitions/include/version/rpki-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/rpki-version.xml.i --> +<syntaxVersion component='rpki' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/salt-version.xml.i b/interface-definitions/include/version/salt-version.xml.i new file mode 100644 index 000000000..fe4684050 --- /dev/null +++ b/interface-definitions/include/version/salt-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/salt-version.xml.i --> +<syntaxVersion component='salt' version='1'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/snmp-version.xml.i b/interface-definitions/include/version/snmp-version.xml.i new file mode 100644 index 000000000..0416288f0 --- /dev/null +++ b/interface-definitions/include/version/snmp-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/snmp-version.xml.i --> +<syntaxVersion component='snmp' version='2'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/ssh-version.xml.i b/interface-definitions/include/version/ssh-version.xml.i new file mode 100644 index 000000000..0f25caf98 --- /dev/null +++ b/interface-definitions/include/version/ssh-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/ssh-version.xml.i --> +<syntaxVersion component='ssh' version='2'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/sstp-version.xml.i b/interface-definitions/include/version/sstp-version.xml.i new file mode 100644 index 000000000..79b43a3e7 --- /dev/null +++ b/interface-definitions/include/version/sstp-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/sstp-version.xml.i --> +<syntaxVersion component='sstp' version='4'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/system-version.xml.i b/interface-definitions/include/version/system-version.xml.i new file mode 100644 index 000000000..3cf92001c --- /dev/null +++ b/interface-definitions/include/version/system-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/system-version.xml.i --> +<syntaxVersion component='system' version='24'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/vrf-version.xml.i b/interface-definitions/include/version/vrf-version.xml.i new file mode 100644 index 000000000..9d7ff35fe --- /dev/null +++ b/interface-definitions/include/version/vrf-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/vrf-version.xml.i --> +<syntaxVersion component='vrf' version='3'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/vrrp-version.xml.i b/interface-definitions/include/version/vrrp-version.xml.i new file mode 100644 index 000000000..626dd6cbc --- /dev/null +++ b/interface-definitions/include/version/vrrp-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/vrrp-version.xml.i --> +<syntaxVersion component='vrrp' version='3'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/vyos-accel-ppp-version.xml.i b/interface-definitions/include/version/vyos-accel-ppp-version.xml.i new file mode 100644 index 000000000..e5a4e1613 --- /dev/null +++ b/interface-definitions/include/version/vyos-accel-ppp-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/vyos-accel-ppp-version.xml.i --> +<syntaxVersion component='vyos-accel-ppp' version='2'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/wanloadbalance-version.xml.i b/interface-definitions/include/version/wanloadbalance-version.xml.i new file mode 100644 index 000000000..59f8729cc --- /dev/null +++ b/interface-definitions/include/version/wanloadbalance-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/wanloadbalance-version.xml.i --> +<syntaxVersion component='wanloadbalance' version='3'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/version/webproxy-version.xml.i b/interface-definitions/include/version/webproxy-version.xml.i new file mode 100644 index 000000000..42dbf3f8b --- /dev/null +++ b/interface-definitions/include/version/webproxy-version.xml.i @@ -0,0 +1,3 @@ +<!-- include start from include/version/webproxy-version.xml.i --> +<syntaxVersion component='webproxy' version='2'></syntaxVersion> +<!-- include end --> diff --git a/interface-definitions/include/vpn-ipsec-encryption.xml.i b/interface-definitions/include/vpn-ipsec-encryption.xml.i index 9ef2f7c90..629e6a0b9 100644 --- a/interface-definitions/include/vpn-ipsec-encryption.xml.i +++ b/interface-definitions/include/vpn-ipsec-encryption.xml.i @@ -11,7 +11,7 @@      </valueHelp>      <valueHelp>        <format>aes128</format> -      <description>128 bit AES-CBC (default)</description> +      <description>128 bit AES-CBC</description>      </valueHelp>      <valueHelp>        <format>aes192</format> @@ -226,8 +226,9 @@        <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>  </leafNode>  <!-- include end --> diff --git a/interface-definitions/include/vpn-ipsec-hash.xml.i b/interface-definitions/include/vpn-ipsec-hash.xml.i index 5a06b290e..73d19c24b 100644 --- a/interface-definitions/include/vpn-ipsec-hash.xml.i +++ b/interface-definitions/include/vpn-ipsec-hash.xml.i @@ -15,7 +15,7 @@      </valueHelp>      <valueHelp>        <format>sha1</format> -      <description>SHA1 HMAC (default)</description> +      <description>SHA1 HMAC</description>      </valueHelp>      <valueHelp>        <format>sha1_160</format> @@ -58,8 +58,9 @@        <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>  </leafNode>  <!-- include end --> 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>  | 
