diff options
Diffstat (limited to 'interface-definitions/include')
39 files changed, 704 insertions, 38 deletions
| diff --git a/interface-definitions/include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i b/interface-definitions/include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i index 75221a348..9ec513da9 100644 --- a/interface-definitions/include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i +++ b/interface-definitions/include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i @@ -1,4 +1,5 @@  <!-- 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> @@ -156,12 +157,19 @@    </properties>  </leafNode>  #include <include/bgp/afi-nexthop-self.xml.i> -<leafNode name="remove-private-as"> +<node name="remove-private-as">    <properties>      <help>Remove private AS numbers from AS path in outbound route updates</help> -    <valueless/>    </properties> -</leafNode> +  <children> +    <leafNode name="all"> +      <properties> +        <help>Remove private AS numbers to all AS numbers in outbound route updates</help> +        <valueless/> +      </properties> +    </leafNode> +  </children> +</node>  #include <include/bgp/afi-route-map.xml.i>  #include <include/bgp/afi-route-reflector-client.xml.i>  #include <include/bgp/afi-route-server-client.xml.i> diff --git a/interface-definitions/include/bgp/neighbor-capability.xml.i b/interface-definitions/include/bgp/neighbor-capability.xml.i index 2bbfadf1f..c5ed3c840 100644 --- a/interface-definitions/include/bgp/neighbor-capability.xml.i +++ b/interface-definitions/include/bgp/neighbor-capability.xml.i @@ -16,6 +16,12 @@          <valueless/>        </properties>      </leafNode> +    <leafNode name="software-version"> +      <properties> +        <help>Advertise Software Version capability to the peer</help> +        <valueless/> +      </properties> +    </leafNode>    </children>  </node>  <!-- include end --> diff --git a/interface-definitions/include/bgp/neighbor-path-attribute.xml.i b/interface-definitions/include/bgp/neighbor-path-attribute.xml.i index f4f2fcfa9..30568d8c6 100644 --- a/interface-definitions/include/bgp/neighbor-path-attribute.xml.i +++ b/interface-definitions/include/bgp/neighbor-path-attribute.xml.i @@ -16,6 +16,18 @@          </constraint>        </properties>      </leafNode> +    <leafNode name="treat-as-withdraw"> +      <properties> +        <help>Treat-as-withdraw any incoming BGP UPDATE messages that contain the specified attribute</help> +        <valueHelp> +          <format>u32:1-255</format> +          <description>Attribute number</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-255"/> +        </constraint> +      </properties> +    </leafNode>    </children>  </node>  <!-- include end --> diff --git a/interface-definitions/include/constraint/interface-name-with-wildcard-and-inverted.xml.i b/interface-definitions/include/constraint/interface-name-with-wildcard-and-inverted.xml.i deleted file mode 100644 index 6a39041a3..000000000 --- a/interface-definitions/include/constraint/interface-name-with-wildcard-and-inverted.xml.i +++ /dev/null @@ -1,4 +0,0 @@ -<!-- include start from constraint/interface-name-with-wildcard-and-inverted.xml.i --> -<regex>(\!?)(bond|br|dum|en|ersp|eth|gnv|ifb|lan|l2tp|l2tpeth|macsec|peth|ppp|pppoe|pptp|sstp|tun|veth|vti|vtun|vxlan|wg|wlan|wwan)([0-9]?)(\*?)(.+)?|(\!?)lo</regex> -<validator name="file-path --lookup-path /sys/class/net --directory"/> -<!-- include end -->
\ No newline at end of file diff --git a/interface-definitions/include/dns/dynamic-service-host-name-server.xml.i b/interface-definitions/include/dns/dynamic-service-host-name-server.xml.i index ee1af2a36..9dd14f97c 100644 --- a/interface-definitions/include/dns/dynamic-service-host-name-server.xml.i +++ b/interface-definitions/include/dns/dynamic-service-host-name-server.xml.i @@ -4,8 +4,9 @@      <help>Hostname to register with Dynamic DNS service</help>      <constraint>          #include <include/constraint/host-name.xml.i> +        <regex>(\@|\*)[-.A-Za-z0-9]*</regex>      </constraint> -    <constraintErrorMessage>Host-name must be alphanumeric and can contain hyphens</constraintErrorMessage> +    <constraintErrorMessage>Host-name must be alphanumeric, can contain hyphens and can be prefixed with '@' or '*'</constraintErrorMessage>      <multi/>    </properties>  </leafNode> diff --git a/interface-definitions/include/dns/dynamic-service-wait-expiry-time.xml.i b/interface-definitions/include/dns/dynamic-service-wait-expiry-time.xml.i new file mode 100644 index 000000000..866690cbe --- /dev/null +++ b/interface-definitions/include/dns/dynamic-service-wait-expiry-time.xml.i @@ -0,0 +1,28 @@ +<!-- include start from dns/dynamic-service-wait-expiry-time.xml.i --> +<leafNode name="wait-time"> +  <properties> +    <help>Time in seconds to wait between update attempts</help> +    <valueHelp> +      <format>u32:60-86400</format> +      <description>Time in seconds</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 60-86400"/> +    </constraint> +    <constraintErrorMessage>Wait time must be between 60 and 86400 seconds</constraintErrorMessage> +  </properties> +</leafNode> +<leafNode name="expiry-time"> +  <properties> +    <help>Time in seconds for the hostname to be marked expired in cache</help> +    <valueHelp> +      <format>u32:300-2160000</format> +      <description>Time in seconds</description> +    </valueHelp> +    <constraint> +      <validator name="numeric" argument="--range 300-2160000"/> +    </constraint> +    <constraintErrorMessage>Expiry time must be between 300 and 2160000 seconds</constraintErrorMessage> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/dns/dynamic-service-zone.xml.i b/interface-definitions/include/dns/dynamic-service-zone.xml.i new file mode 100644 index 000000000..0cc00468f --- /dev/null +++ b/interface-definitions/include/dns/dynamic-service-zone.xml.i @@ -0,0 +1,14 @@ +<!-- include start from dns/dynamic-service-zone.xml.i --> +<leafNode name="zone"> +  <properties> +    <help>DNS zone to be updated</help> +    <valueHelp> +      <format>txt</format> +      <description>Name of DNS zone</description> +    </valueHelp> +    <constraint> +      <validator name="fqdn"/> +    </constraint> +  </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 index 5c1a1472d..000eea108 100644 --- a/interface-definitions/include/dns/time-to-live.xml.i +++ b/interface-definitions/include/dns/time-to-live.xml.i @@ -10,6 +10,5 @@        <validator name="numeric" argument="--range 0-2147483647"/>      </constraint>    </properties> -  <defaultValue>300</defaultValue>  </leafNode>  <!-- include end --> diff --git a/interface-definitions/include/firewall/action-forward.xml.i b/interface-definitions/include/firewall/action-forward.xml.i new file mode 100644 index 000000000..4e59f3c6f --- /dev/null +++ b/interface-definitions/include/firewall/action-forward.xml.i @@ -0,0 +1,49 @@ +<!-- include start from firewall/action-forward.xml.i --> +<leafNode name="action"> +  <properties> +    <help>Rule action</help> +    <completionHelp> +      <list>accept continue jump reject return drop queue offload synproxy</list> +    </completionHelp> +    <valueHelp> +      <format>accept</format> +      <description>Accept matching entries</description> +    </valueHelp> +    <valueHelp> +      <format>continue</format> +      <description>Continue parsing next rule</description> +    </valueHelp> +    <valueHelp> +      <format>jump</format> +      <description>Jump to another chain</description> +    </valueHelp> +    <valueHelp> +      <format>reject</format> +      <description>Reject matching entries</description> +    </valueHelp> +    <valueHelp> +      <format>return</format> +      <description>Return from the current chain and continue at the next rule of the last chain</description> +    </valueHelp> +    <valueHelp> +      <format>drop</format> +      <description>Drop matching entries</description> +    </valueHelp> +    <valueHelp> +      <format>queue</format> +      <description>Enqueue packet to userspace</description> +    </valueHelp> +    <valueHelp> +      <format>offload</format> +      <description>Offload packet via flowtable</description> +    </valueHelp> +    <valueHelp> +      <format>synproxy</format> +      <description>Synproxy connections</description> +    </valueHelp> +    <constraint> +      <regex>(accept|continue|jump|reject|return|drop|queue|offload|synproxy)</regex> +    </constraint> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/firewall/action-l2.xml.i b/interface-definitions/include/firewall/action-l2.xml.i new file mode 100644 index 000000000..84af576c8 --- /dev/null +++ b/interface-definitions/include/firewall/action-l2.xml.i @@ -0,0 +1,37 @@ +<!-- include start from firewall/action.xml.i --> +<leafNode name="action"> +  <properties> +    <help>Rule action</help> +    <completionHelp> +      <list>accept continue jump return drop queue</list> +    </completionHelp> +    <valueHelp> +      <format>accept</format> +      <description>Accept matching entries</description> +    </valueHelp> +    <valueHelp> +      <format>continue</format> +      <description>Continue parsing next rule</description> +    </valueHelp> +    <valueHelp> +      <format>jump</format> +      <description>Jump to another chain</description> +    </valueHelp> +    <valueHelp> +      <format>return</format> +      <description>Return from the current chain and continue at the next rule of the last chain</description> +    </valueHelp> +    <valueHelp> +      <format>drop</format> +      <description>Drop matching entries</description> +    </valueHelp> +    <valueHelp> +      <format>queue</format> +      <description>Enqueue packet to userspace</description> +    </valueHelp> +    <constraint> +      <regex>(accept|continue|jump|return|drop|queue)</regex> +    </constraint> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/firewall/action.xml.i b/interface-definitions/include/firewall/action.xml.i index 7c6e33839..954e4f23e 100644 --- a/interface-definitions/include/firewall/action.xml.i +++ b/interface-definitions/include/firewall/action.xml.i @@ -3,13 +3,17 @@    <properties>      <help>Rule action</help>      <completionHelp> -      <list>accept jump reject return drop queue</list> +      <list>accept continue jump reject return drop queue synproxy</list>      </completionHelp>      <valueHelp>        <format>accept</format>        <description>Accept matching entries</description>      </valueHelp>      <valueHelp> +      <format>continue</format> +      <description>Continue parsing next rule</description> +    </valueHelp> +    <valueHelp>        <format>jump</format>        <description>Jump to another chain</description>      </valueHelp> @@ -29,8 +33,12 @@        <format>queue</format>        <description>Enqueue packet to userspace</description>      </valueHelp> +    <valueHelp> +      <format>synproxy</format> +      <description>Synproxy connections</description> +    </valueHelp>      <constraint> -      <regex>(accept|jump|reject|return|drop|queue)</regex> +      <regex>(accept|continue|jump|reject|return|drop|queue|synproxy)</regex>      </constraint>    </properties>  </leafNode> diff --git a/interface-definitions/include/firewall/bridge-custom-name.xml.i b/interface-definitions/include/firewall/bridge-custom-name.xml.i new file mode 100644 index 000000000..a85fd5a19 --- /dev/null +++ b/interface-definitions/include/firewall/bridge-custom-name.xml.i @@ -0,0 +1,39 @@ +<!-- include start from firewall/bridge-custom-name.xml.i --> +<tagNode name="name"> +  <properties> +    <help>Bridge custom firewall</help> +    <constraint> +      <regex>[a-zA-Z0-9][\w\-\.]*</regex> +    </constraint> +  </properties> +  <children> +    #include <include/firewall/default-action.xml.i> +    #include <include/firewall/enable-default-log.xml.i> +    #include <include/generic-description.xml.i> +    <leafNode name="default-jump-target"> +      <properties> +        <help>Set jump target. Action jump must be defined in default-action to use this setting</help> +        <completionHelp> +          <path>firewall bridge name</path> +        </completionHelp> +      </properties> +    </leafNode> +    <tagNode name="rule"> +      <properties> +        <help>Bridge Firewall forward filter rule number</help> +        <valueHelp> +          <format>u32:1-999999</format> +          <description>Number for this firewall rule</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--range 1-999999"/> +        </constraint> +        <constraintErrorMessage>Firewall rule number must be between 1 and 999999</constraintErrorMessage> +      </properties> +      <children> +        #include <include/firewall/common-rule-bridge.xml.i> +      </children> +    </tagNode> +  </children> +</tagNode> +<!-- include end -->
\ No newline at end of file diff --git a/interface-definitions/include/firewall/bridge-hook-forward.xml.i b/interface-definitions/include/firewall/bridge-hook-forward.xml.i new file mode 100644 index 000000000..23d757070 --- /dev/null +++ b/interface-definitions/include/firewall/bridge-hook-forward.xml.i @@ -0,0 +1,34 @@ +<!-- include start from firewall/bridge-hook-forward.xml.i --> +<node name="forward"> +  <properties> +    <help>Bridge forward firewall</help> +  </properties> +  <children> +    <node name="filter"> +      <properties> +        <help>Bridge firewall forward filter</help> +      </properties> +      <children> +        #include <include/firewall/default-action-base-chains.xml.i> +        #include <include/generic-description.xml.i> +        <tagNode name="rule"> +          <properties> +            <help>Bridge Firewall forward filter rule number</help> +            <valueHelp> +              <format>u32:1-999999</format> +              <description>Number for this firewall rule</description> +            </valueHelp> +            <constraint> +              <validator name="numeric" argument="--range 1-999999"/> +            </constraint> +            <constraintErrorMessage>Firewall rule number must be between 1 and 999999</constraintErrorMessage> +          </properties> +          <children> +            #include <include/firewall/common-rule-bridge.xml.i> +          </children> +        </tagNode> +      </children> +    </node> +  </children> +</node> +<!-- include end -->
\ No newline at end of file diff --git a/interface-definitions/include/firewall/common-rule-bridge.xml.i b/interface-definitions/include/firewall/common-rule-bridge.xml.i new file mode 100644 index 000000000..381e04b1e --- /dev/null +++ b/interface-definitions/include/firewall/common-rule-bridge.xml.i @@ -0,0 +1,57 @@ +<!-- include start from firewall/common-rule-bridge.xml.i --> +#include <include/firewall/action-l2.xml.i> +#include <include/firewall/nft-queue.xml.i> +<node name="destination"> +  <properties> +    <help>Destination parameters</help> +  </properties> +  <children> +    #include <include/firewall/mac-address.xml.i> +  </children> +</node> +<leafNode name="disable"> +  <properties> +    <help>Option to disable firewall rule</help> +    <valueless/> +  </properties> +</leafNode> +<leafNode name="jump-target"> +  <properties> +    <help>Set jump target. Action jump must be defined to use this setting</help> +    <completionHelp> +      <path>firewall bridge name</path> +    </completionHelp> +  </properties> +</leafNode> +<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> +#include <include/firewall/rule-log-options.xml.i> +<node name="source"> +  <properties> +    <help>Source parameters</help> +  </properties> +  <children> +    #include <include/firewall/mac-address.xml.i> +  </children> +</node> +#include <include/firewall/inbound-interface.xml.i> +#include <include/firewall/outbound-interface.xml.i> +#include <include/firewall/match-vlan.xml.i> +<!-- include end -->
\ No newline at end of file diff --git a/interface-definitions/include/firewall/common-rule-inet.xml.i b/interface-definitions/include/firewall/common-rule-inet.xml.i index 7a2eb86d4..a55a1a551 100644 --- a/interface-definitions/include/firewall/common-rule-inet.xml.i +++ b/interface-definitions/include/firewall/common-rule-inet.xml.i @@ -3,7 +3,9 @@  #include <include/generic-description.xml.i>  #include <include/firewall/dscp.xml.i>  #include <include/firewall/packet-options.xml.i> +#include <include/firewall/firewall-mark.xml.i>  #include <include/firewall/connection-mark.xml.i> +#include <include/firewall/conntrack-helper.xml.i>  #include <include/firewall/nft-queue.xml.i>  <leafNode name="disable">    <properties> @@ -219,6 +221,7 @@      </leafNode>    </children>  </node> +#include <include/firewall/synproxy.xml.i>  <node name="state">    <properties>      <help>Session state</help> @@ -303,6 +306,7 @@    </children>  </node>  #include <include/firewall/tcp-flags.xml.i> +#include <include/firewall/tcp-mss.xml.i>  <node name="time">    <properties>      <help>Time to match rule</help> @@ -371,4 +375,4 @@      </leafNode>    </children>  </node> -<!-- include end -->
\ No newline at end of file +<!-- include end --> diff --git a/interface-definitions/include/firewall/common-rule-ipv4-raw.xml.i b/interface-definitions/include/firewall/common-rule-ipv4-raw.xml.i index a1071a09a..e040c9b13 100644 --- a/interface-definitions/include/firewall/common-rule-ipv4-raw.xml.i +++ b/interface-definitions/include/firewall/common-rule-ipv4-raw.xml.i @@ -260,6 +260,7 @@    </children>  </node>  #include <include/firewall/tcp-flags.xml.i> +#include <include/firewall/tcp-mss.xml.i>  <node name="time">    <properties>      <help>Time to match rule</help> diff --git a/interface-definitions/include/firewall/common-rule.xml.i b/interface-definitions/include/firewall/common-rule.xml.i index 7417a3c58..c62bf2c5f 100644 --- a/interface-definitions/include/firewall/common-rule.xml.i +++ b/interface-definitions/include/firewall/common-rule.xml.i @@ -315,6 +315,7 @@    </children>  </node>  #include <include/firewall/tcp-flags.xml.i> +#include <include/firewall/tcp-mss.xml.i>  <node name="time">    <properties>      <help>Time to match rule</help> diff --git a/interface-definitions/include/firewall/conntrack-helper.xml.i b/interface-definitions/include/firewall/conntrack-helper.xml.i new file mode 100644 index 000000000..ee17f2c61 --- /dev/null +++ b/interface-definitions/include/firewall/conntrack-helper.xml.i @@ -0,0 +1,42 @@ +<!-- include start from firewall/conntrack-helper.xml.i --> +<leafNode name="conntrack-helper"> +  <properties> +    <help>Match related traffic from conntrack helpers</help> +    <completionHelp> +      <list>ftp h323 pptp nfs sip tftp sqlnet</list> +    </completionHelp> +    <valueHelp> +      <format>ftp</format> +      <description>Related traffic from FTP helper</description> +    </valueHelp> +    <valueHelp> +      <format>h323</format> +      <description>Related traffic from H.323 helper</description> +    </valueHelp> +    <valueHelp> +      <format>pptp</format> +      <description>Related traffic from PPTP helper</description> +    </valueHelp> +    <valueHelp> +      <format>nfs</format> +      <description>Related traffic from NFS helper</description> +    </valueHelp> +    <valueHelp> +      <format>sip</format> +      <description>Related traffic from SIP helper</description> +    </valueHelp> +    <valueHelp> +      <format>tftp</format> +      <description>Related traffic from TFTP helper</description> +    </valueHelp> +    <valueHelp> +      <format>sqlnet</format> +      <description>Related traffic from SQLNet helper</description> +    </valueHelp> +    <constraint> +      <regex>(ftp|h323|pptp|nfs|sip|tftp|sqlnet)</regex> +    </constraint> +    <multi/> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/firewall/default-action-bridge.xml.i b/interface-definitions/include/firewall/default-action-bridge.xml.i new file mode 100644 index 000000000..858c7aeeb --- /dev/null +++ b/interface-definitions/include/firewall/default-action-bridge.xml.i @@ -0,0 +1,34 @@ +<!-- include start from firewall/default-action.xml.i --> +<leafNode name="default-action"> +  <properties> +    <help>Default-action for rule-set</help> +    <completionHelp> +      <list>drop jump return accept continue</list> +    </completionHelp> +    <valueHelp> +      <format>drop</format> +      <description>Drop if no prior rules are hit</description> +    </valueHelp> +    <valueHelp> +      <format>jump</format> +      <description>Jump to another chain if no prior rules are hit</description> +    </valueHelp> +    <valueHelp> +      <format>return</format> +      <description>Return from the current chain and continue at the next rule of the last chain</description> +    </valueHelp> +    <valueHelp> +      <format>accept</format> +      <description>Accept if no prior rules are hit</description> +    </valueHelp> +    <valueHelp> +      <format>continue</format> +      <description>Continue parsing next rule</description> +    </valueHelp> +    <constraint> +      <regex>(drop|jump|return|accept|continue)</regex> +    </constraint> +  </properties> +  <defaultValue>drop</defaultValue> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/firewall/default-action.xml.i b/interface-definitions/include/firewall/default-action.xml.i index 80efaf335..53a161495 100644 --- a/interface-definitions/include/firewall/default-action.xml.i +++ b/interface-definitions/include/firewall/default-action.xml.i @@ -3,7 +3,7 @@    <properties>      <help>Default-action for rule-set</help>      <completionHelp> -      <list>drop jump reject return accept</list> +      <list>drop jump reject return accept continue</list>      </completionHelp>      <valueHelp>        <format>drop</format> @@ -25,8 +25,12 @@        <format>accept</format>        <description>Accept if no prior rules are hit</description>      </valueHelp> +    <valueHelp> +      <format>continue</format> +      <description>Continue parsing next rule</description> +    </valueHelp>      <constraint> -      <regex>(drop|jump|reject|return|accept)</regex> +      <regex>(drop|jump|reject|return|accept|continue)</regex>      </constraint>    </properties>    <defaultValue>drop</defaultValue> diff --git a/interface-definitions/include/firewall/firewall-mark.xml.i b/interface-definitions/include/firewall/firewall-mark.xml.i new file mode 100644 index 000000000..36a939ba3 --- /dev/null +++ b/interface-definitions/include/firewall/firewall-mark.xml.i @@ -0,0 +1,26 @@ +<!-- include start from firewall/firewall-mark.xml.i --> +<leafNode name="mark"> +  <properties> +    <help>Firewall mark</help> +    <valueHelp> +      <format>u32:0-2147483647</format> +      <description>Firewall mark to match</description> +    </valueHelp> +    <valueHelp> +      <format>!u32:0-2147483647</format> +      <description>Inverted Firewall mark to match</description> +    </valueHelp> +    <valueHelp> +      <format><start-end></format> +      <description>Firewall mark range to match</description> +    </valueHelp> +    <valueHelp> +      <format>!<start-end></format> +      <description>Firewall mark inverted range to match</description> +    </valueHelp> +    <constraint> +      <validator name="numeric-exclude" argument="--allow-range --range 0-2147483647"/> +    </constraint> +  </properties> +</leafNode> +<!-- include end -->
\ No newline at end of file diff --git a/interface-definitions/include/firewall/global-options.xml.i b/interface-definitions/include/firewall/global-options.xml.i index a63874cb0..e655cd6ac 100644 --- a/interface-definitions/include/firewall/global-options.xml.i +++ b/interface-definitions/include/firewall/global-options.xml.i @@ -145,21 +145,21 @@      </leafNode>      <leafNode name="source-validation">        <properties> -        <help>Policy for source validation by reversed path, as specified in RFC3704</help> +        <help>Policy for IPv4 source validation by reversed path, as specified in RFC3704</help>          <completionHelp>            <list>strict loose disable</list>          </completionHelp>          <valueHelp>            <format>strict</format> -          <description>Enable Strict Reverse Path Forwarding as defined in RFC3704</description> +          <description>Enable IPv4 Strict Reverse Path Forwarding as defined in RFC3704</description>          </valueHelp>          <valueHelp>            <format>loose</format> -          <description>Enable Loose Reverse Path Forwarding as defined in RFC3704</description> +          <description>Enable IPv4 Loose Reverse Path Forwarding as defined in RFC3704</description>          </valueHelp>          <valueHelp>            <format>disable</format> -          <description>No source validation</description> +          <description>No IPv4 source validation</description>          </valueHelp>          <constraint>            <regex>(strict|loose|disable)</regex> @@ -227,6 +227,30 @@        </properties>        <defaultValue>disable</defaultValue>      </leafNode> +    <leafNode name="ipv6-source-validation"> +      <properties> +        <help>Policy for IPv6 source validation by reversed path, as specified in RFC3704</help> +        <completionHelp> +          <list>strict loose disable</list> +        </completionHelp> +        <valueHelp> +          <format>strict</format> +          <description>Enable IPv6 Strict Reverse Path Forwarding as defined in RFC3704</description> +        </valueHelp> +        <valueHelp> +          <format>loose</format> +          <description>Enable IPv6 Loose Reverse Path Forwarding as defined in RFC3704</description> +        </valueHelp> +        <valueHelp> +          <format>disable</format> +          <description>No IPv6 source validation</description> +        </valueHelp> +        <constraint> +          <regex>(strict|loose|disable)</regex> +        </constraint> +      </properties> +      <defaultValue>disable</defaultValue> +    </leafNode>      <leafNode name="ipv6-src-route">        <properties>          <help>Policy for handling IPv6 packets with routing extension header</help> diff --git a/interface-definitions/include/firewall/ipv4-hook-forward.xml.i b/interface-definitions/include/firewall/ipv4-hook-forward.xml.i index 08ee96419..70c0adb77 100644 --- a/interface-definitions/include/firewall/ipv4-hook-forward.xml.i +++ b/interface-definitions/include/firewall/ipv4-hook-forward.xml.i @@ -24,8 +24,10 @@              <constraintErrorMessage>Firewall rule number must be between 1 and 999999</constraintErrorMessage>            </properties>            <children> +            #include <include/firewall/action-forward.xml.i>              #include <include/firewall/common-rule-ipv4.xml.i>              #include <include/firewall/inbound-interface.xml.i> +            #include <include/firewall/offload-target.xml.i>              #include <include/firewall/outbound-interface.xml.i>            </children>          </tagNode> diff --git a/interface-definitions/include/firewall/ipv6-hook-forward.xml.i b/interface-definitions/include/firewall/ipv6-hook-forward.xml.i index 20ab8dbe8..d83827161 100644 --- a/interface-definitions/include/firewall/ipv6-hook-forward.xml.i +++ b/interface-definitions/include/firewall/ipv6-hook-forward.xml.i @@ -24,8 +24,10 @@              <constraintErrorMessage>Firewall rule number must be between 1 and 999999</constraintErrorMessage>            </properties>            <children> +            #include <include/firewall/action-forward.xml.i>              #include <include/firewall/common-rule-ipv6.xml.i>              #include <include/firewall/inbound-interface.xml.i> +            #include <include/firewall/offload-target.xml.i>              #include <include/firewall/outbound-interface.xml.i>            </children>          </tagNode> diff --git a/interface-definitions/include/firewall/match-interface.xml.i b/interface-definitions/include/firewall/match-interface.xml.i index 7810f88ab..1cd9f8c4a 100644 --- a/interface-definitions/include/firewall/match-interface.xml.i +++ b/interface-definitions/include/firewall/match-interface.xml.i @@ -4,6 +4,7 @@      <help>Match interface</help>      <completionHelp>        <script>${vyos_completion_dir}/list_interfaces</script> +      <path>vrf name</path>      </completionHelp>      <valueHelp>        <format>txt</format> @@ -18,7 +19,8 @@        <description>Inverted interface name to match</description>      </valueHelp>      <constraint> -      #include <include/constraint/interface-name-with-wildcard-and-inverted.xml.i> +      <regex>(\!?)(bond|br|dum|en|ersp|eth|gnv|ifb|lan|l2tp|l2tpeth|macsec|peth|ppp|pppoe|pptp|sstp|tun|veth|vti|vtun|vxlan|wg|wlan|wwan)([0-9]?)(\*?)(.+)?|(\!?)lo</regex> +      <validator name="vrf-name"/>      </constraint>    </properties>  </leafNode> diff --git a/interface-definitions/include/firewall/match-vlan.xml.i b/interface-definitions/include/firewall/match-vlan.xml.i new file mode 100644 index 000000000..44ad02c99 --- /dev/null +++ b/interface-definitions/include/firewall/match-vlan.xml.i @@ -0,0 +1,41 @@ +<!-- include start from firewall/match-vlan.xml.i --> +<node name="vlan"> +  <properties> +    <help>VLAN parameters</help> +  </properties> +  <children> +    <leafNode name="id"> +      <properties> +        <help>Vlan id</help> +        <valueHelp> +          <format>u32:0-4096</format> +          <description>Vlan id</description> +        </valueHelp> +        <valueHelp> +          <format><start-end></format> +          <description>Vlan id range to match</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--allow-range --range 0-4095"/> +        </constraint> +      </properties> +    </leafNode> +    <leafNode name="priority"> +      <properties> +        <help>Vlan priority(pcp)</help> +        <valueHelp> +          <format>u32:0-7</format> +          <description>Vlan priority</description> +        </valueHelp> +        <valueHelp> +          <format><start-end></format> +          <description>Vlan priority range to match</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--allow-range --range 0-7"/> +        </constraint> +      </properties> +    </leafNode> +  </children> +</node> +<!-- include end -->
\ No newline at end of file diff --git a/interface-definitions/include/firewall/offload-target.xml.i b/interface-definitions/include/firewall/offload-target.xml.i new file mode 100644 index 000000000..940ed8091 --- /dev/null +++ b/interface-definitions/include/firewall/offload-target.xml.i @@ -0,0 +1,10 @@ +<!-- include start from firewall/offload-target.xml.i --> +<leafNode name="offload-target"> +  <properties> +    <help>Set flowtable offload target. Action offload must be defined to use this setting</help> +    <completionHelp> +      <path>firewall flowtable</path> +    </completionHelp> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/firewall/source-destination-group-ipv4.xml.i b/interface-definitions/include/firewall/source-destination-group-ipv4.xml.i new file mode 100644 index 000000000..8c34fb933 --- /dev/null +++ b/interface-definitions/include/firewall/source-destination-group-ipv4.xml.i @@ -0,0 +1,41 @@ +<!-- include start from firewall/source-destination-group-ipv4.xml.i --> +<node name="group"> +  <properties> +    <help>Group</help> +  </properties> +  <children> +    <leafNode name="address-group"> +      <properties> +        <help>Group of addresses</help> +        <completionHelp> +          <path>firewall group address-group</path> +        </completionHelp> +      </properties> +    </leafNode> +    <leafNode name="domain-group"> +      <properties> +        <help>Group of domains</help> +        <completionHelp> +          <path>firewall group domain-group</path> +        </completionHelp> +      </properties> +    </leafNode> +    <leafNode name="network-group"> +      <properties> +        <help>Group of networks</help> +        <completionHelp> +          <path>firewall group network-group</path> +        </completionHelp> +      </properties> +    </leafNode> +    <leafNode name="port-group"> +      <properties> +        <help>Group of ports</help> +        <completionHelp> +          <path>firewall group port-group</path> +        </completionHelp> +      </properties> +    </leafNode> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/firewall/synproxy.xml.i b/interface-definitions/include/firewall/synproxy.xml.i new file mode 100644 index 000000000..a65126ea9 --- /dev/null +++ b/interface-definitions/include/firewall/synproxy.xml.i @@ -0,0 +1,40 @@ +<!-- include start from firewall/synproxy.xml.i --> +<node name="synproxy"> +  <properties> +    <help>Synproxy options</help> +  </properties> +  <children> +    <node name="tcp"> +      <properties> +        <help>TCP synproxy options</help> +      </properties> +      <children> +        <leafNode name="mss"> +          <properties> +            <help>TCP Maximum segment size</help> +            <valueHelp> +              <format>u32:501-65535</format> +              <description>Maximum segment size for synproxy connections</description> +            </valueHelp> +            <constraint> +              <validator name="numeric" argument="--range 501-65535"/> +            </constraint> +          </properties> +        </leafNode> +        <leafNode name="window-scale"> +          <properties> +            <help>TCP window scale for synproxy connections</help> +            <valueHelp> +              <format>u32:1-14</format> +              <description>TCP window scale</description> +            </valueHelp> +            <constraint> +              <validator name="numeric" argument="--range 1-14"/> +            </constraint> +          </properties> +        </leafNode> +      </children> +    </node> +  </children> +</node> +<!-- include end --> diff --git a/interface-definitions/include/firewall/tcp-flags.xml.i b/interface-definitions/include/firewall/tcp-flags.xml.i index e2ce7b9fd..36546c2e4 100644 --- a/interface-definitions/include/firewall/tcp-flags.xml.i +++ b/interface-definitions/include/firewall/tcp-flags.xml.i @@ -1,7 +1,7 @@  <!-- include start from firewall/tcp-flags.xml.i -->  <node name="tcp">    <properties> -    <help>TCP flags to match</help> +    <help>TCP options to match</help>    </properties>    <children>      <node name="flags"> @@ -114,22 +114,6 @@          </node>        </children>      </node> -    <leafNode name="mss"> -      <properties> -        <help>Maximum segment size (MSS)</help> -        <valueHelp> -          <format>u32:1-16384</format> -          <description>Maximum segment size</description> -        </valueHelp> -        <valueHelp> -          <format><min>-<max></format> -          <description>TCP MSS range (use '-' as delimiter)</description> -        </valueHelp> -        <constraint> -          <validator name="numeric" argument="--allow-range --range 1-16384"/> -        </constraint> -      </properties> -    </leafNode>    </children>  </node>  <!-- include end --> diff --git a/interface-definitions/include/firewall/tcp-mss.xml.i b/interface-definitions/include/firewall/tcp-mss.xml.i new file mode 100644 index 000000000..dc49b4272 --- /dev/null +++ b/interface-definitions/include/firewall/tcp-mss.xml.i @@ -0,0 +1,25 @@ +<!-- include start from firewall/tcp-mss.xml.i --> +<node name="tcp"> +  <properties> +    <help>TCP options to match</help> +  </properties> +  <children> +    <leafNode name="mss"> +      <properties> +        <help>Maximum segment size (MSS)</help> +        <valueHelp> +          <format>u32:1-16384</format> +          <description>Maximum segment size</description> +        </valueHelp> +        <valueHelp> +          <format><min>-<max></format> +          <description>TCP MSS range (use '-' as delimiter)</description> +        </valueHelp> +        <constraint> +          <validator name="numeric" argument="--allow-range --range 1-16384"/> +        </constraint> +      </properties> +    </leafNode> +  </children> +</node> +<!-- 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 87b9d552f..404f03cb5 100644 --- a/interface-definitions/include/isis/protocol-common-config.xml.i +++ b/interface-definitions/include/isis/protocol-common-config.xml.i @@ -1,4 +1,16 @@  <!-- include start from isis/protocol-common-config.xml.i --> +<leafNode name="advertise-high-metrics"> +  <properties> +    <help>Advertise high metric value on all interfaces</help> +    <valueless/> +  </properties> +</leafNode> +<leafNode name="advertise-passive-only"> +  <properties> +    <help>Advertise prefixes of passive interfaces only</help> +    <valueless/> +  </properties> +</leafNode>  <node name="area-password">    <properties>      <help>Configure the authentication password for an area</help> diff --git a/interface-definitions/include/policy/local-route_rule_ipv4_address.xml.i b/interface-definitions/include/policy/local-route_rule_ipv4_address.xml.i new file mode 100644 index 000000000..ffe73ee32 --- /dev/null +++ b/interface-definitions/include/policy/local-route_rule_ipv4_address.xml.i @@ -0,0 +1,20 @@ +<!-- include start from policy/local-route_rule_ipv4_address.xml.i --> +<leafNode name="address"> +  <properties> +    <help>IPv4 address or prefix</help> +    <valueHelp> +      <format>ipv4</format> +      <description>Address to match against</description> +    </valueHelp> +    <valueHelp> +      <format>ipv4net</format> +      <description>Prefix to match against</description> +    </valueHelp> +    <constraint> +      <validator name="ipv4-address"/> +      <validator name="ip-prefix"/> +    </constraint> +    <multi/> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/policy/local-route_rule_ipv6_address.xml.i b/interface-definitions/include/policy/local-route_rule_ipv6_address.xml.i new file mode 100644 index 000000000..d8fb6c074 --- /dev/null +++ b/interface-definitions/include/policy/local-route_rule_ipv6_address.xml.i @@ -0,0 +1,20 @@ +<!-- include start from policy/local-route_rule_ipv6_address.xml.i --> +<leafNode name="address"> +  <properties> +    <help>IPv6 address or prefix</help> +    <valueHelp> +      <format>ipv6</format> +      <description>Address to match against</description> +    </valueHelp> +    <valueHelp> +      <format>ipv6net</format> +      <description>Prefix to match against</description> +    </valueHelp> +    <constraint> +      <validator name="ipv6-address"/> +      <validator name="ipv6-prefix"/> +    </constraint> +    <multi/> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/policy/local-route_rule_protocol.xml.i b/interface-definitions/include/policy/local-route_rule_protocol.xml.i new file mode 100644 index 000000000..57582eb37 --- /dev/null +++ b/interface-definitions/include/policy/local-route_rule_protocol.xml.i @@ -0,0 +1,21 @@ +<!-- include start from policy/local-route_rule_protocol.xml.i --> +<leafNode name="protocol"> +  <properties> +    <help>Protocol to match (protocol name or number)</help> +    <completionHelp> +      <script>${vyos_completion_dir}/list_protocols.sh</script> +    </completionHelp> +    <valueHelp> +      <format>u32:0-255</format> +      <description>IP protocol number</description> +    </valueHelp> +    <valueHelp> +      <format><protocol></format> +      <description>IP protocol name</description> +    </valueHelp> +    <constraint> +      <validator name="ip-protocol"/> +    </constraint> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/include/policy/route-common.xml.i b/interface-definitions/include/policy/route-common.xml.i index 216ec9bea..8eab04d4a 100644 --- a/interface-definitions/include/policy/route-common.xml.i +++ b/interface-definitions/include/policy/route-common.xml.i @@ -1,6 +1,7 @@  <!-- include start from policy/route-common.xml.i -->
  #include <include/policy/route-rule-action.xml.i>
  #include <include/generic-description.xml.i>
 +#include <include/firewall/firewall-mark.xml.i>
  <leafNode name="disable">
    <properties>
      <help>Option to disable firewall rule</help>
 @@ -314,6 +315,7 @@    </children>
  </node>
  #include <include/firewall/tcp-flags.xml.i>
 +#include <include/firewall/tcp-mss.xml.i>
  <node name="time">
    <properties>
      <help>Time to match rule</help>
 diff --git a/interface-definitions/include/radius-server-ipv4-ipv6.xml.i b/interface-definitions/include/radius-server-ipv4-ipv6.xml.i index efd418bb2..a0cdcd7c3 100644 --- a/interface-definitions/include/radius-server-ipv4-ipv6.xml.i +++ b/interface-definitions/include/radius-server-ipv4-ipv6.xml.i @@ -46,6 +46,26 @@          <multi/>        </properties>      </leafNode> +    <leafNode name="security-mode"> +      <properties> +        <help>Security mode for RADIUS authentication</help> +        <completionHelp> +          <list>mandatory optional</list> +        </completionHelp> +        <valueHelp> +          <format>mandatory</format> +          <description>Deny access immediately if RADIUS answers with Access-Reject</description> +        </valueHelp> +        <valueHelp> +          <format>optional</format> +          <description>Pass to the next authentication method if RADIUS answers with Access-Reject</description> +        </valueHelp> +        <constraint> +          <regex>(mandatory|optional)</regex> +        </constraint> +      </properties> +      <defaultValue>optional</defaultValue> +    </leafNode>    </children>  </node>  <!-- include end --> diff --git a/interface-definitions/include/version/conntrack-version.xml.i b/interface-definitions/include/version/conntrack-version.xml.i index 696f76362..c0f632c70 100644 --- a/interface-definitions/include/version/conntrack-version.xml.i +++ b/interface-definitions/include/version/conntrack-version.xml.i @@ -1,3 +1,3 @@  <!-- include start from include/version/conntrack-version.xml.i --> -<syntaxVersion component='conntrack' version='3'></syntaxVersion> +<syntaxVersion component='conntrack' version='4'></syntaxVersion>  <!-- include end --> diff --git a/interface-definitions/include/version/policy-version.xml.i b/interface-definitions/include/version/policy-version.xml.i index f1494eaa3..2c96e0f15 100644 --- a/interface-definitions/include/version/policy-version.xml.i +++ b/interface-definitions/include/version/policy-version.xml.i @@ -1,3 +1,3 @@  <!-- include start from include/version/policy-version.xml.i --> -<syntaxVersion component='policy' version='5'></syntaxVersion> +<syntaxVersion component='policy' version='6'></syntaxVersion>  <!-- include end --> | 
