diff --git a/interface-definitions/high-availability.xml.in b/interface-definitions/high-availability.xml.in index 7108aa06c..6cf6237ca 100644 --- a/interface-definitions/high-availability.xml.in +++ b/interface-definitions/high-availability.xml.in @@ -1,568 +1,553 @@ <?xml version="1.0"?> <interfaceDefinition> <node name="high-availability" owner="${vyos_conf_scripts_dir}/high-availability.py"> <properties> <priority>800</priority> <!-- after all interfaces and conntrack-sync --> <help>High availability settings</help> </properties> <children> #include <include/generic-disable-node.xml.i> <node name="vrrp"> <properties> <help>Virtual Router Redundancy Protocol settings</help> </properties> <children> <leafNode name="snmp"> <properties> <valueless/> <help>Enable SNMP</help> </properties> </leafNode> <node name="global-parameters"> <properties> <help>VRRP global parameters</help> </properties> <children> #include <include/vrrp/garp.xml.i> <leafNode name="startup-delay"> <properties> <help>Time VRRP startup process (in seconds)</help> <valueHelp> <format>u32:1-600</format> <description>Interval in seconds</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-600"/> </constraint> </properties> </leafNode> <leafNode name="version"> <properties> <help>Default VRRP version to use, IPv6 always uses VRRP version 3</help> <valueHelp> <format>2</format> <description>VRRP version 2</description> </valueHelp> <valueHelp> <format>3</format> <description>VRRP version 3</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 2-3"/> </constraint> </properties> </leafNode> </children> </node> <tagNode name="group"> <properties> <help>VRRP group</help> </properties> <children> #include <include/generic-interface-broadcast.xml.i> #include <include/vrrp/garp.xml.i> <leafNode name="advertise-interval"> <properties> <help>Advertise interval</help> <valueHelp> <format>u32:1-255</format> <description>Advertise interval in seconds</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> <defaultValue>1</defaultValue> </leafNode> <node name="authentication"> <properties> <help>VRRP authentication</help> </properties> <children> <leafNode name="password"> <properties> <help>VRRP password</help> <valueHelp> <format>txt</format> <description>Password string (up to 8 characters)</description> </valueHelp> <constraint> <regex>.{1,8}</regex> </constraint> <constraintErrorMessage>Password must not be longer than 8 characters</constraintErrorMessage> </properties> </leafNode> <leafNode name="type"> <properties> <help>Authentication type</help> <completionHelp> <list>plaintext-password ah</list> </completionHelp> <valueHelp> <format>plaintext-password</format> <description>Simple password string</description> </valueHelp> <valueHelp> <format>ah</format> <description>AH - IPSEC (not recommended)</description> </valueHelp> <constraint> <regex>(plaintext-password|ah)</regex> </constraint> <constraintErrorMessage>Authentication type must be plaintext-password or ah</constraintErrorMessage> </properties> </leafNode> </children> </node> #include <include/generic-description.xml.i> #include <include/generic-disable-node.xml.i> <node name="health-check"> <properties> <help>Health check</help> </properties> <children> <leafNode name="failure-count"> <properties> <help>Health check failure count required for transition to fault</help> <constraint> <validator name="numeric" argument="--positive" /> </constraint> </properties> <defaultValue>3</defaultValue> </leafNode> <leafNode name="interval"> <properties> <help>Health check execution interval in seconds</help> <constraint> <validator name="numeric" argument="--positive"/> </constraint> </properties> <defaultValue>60</defaultValue> </leafNode> <leafNode name="ping"> <properties> <help>ICMP ping health check</help> <valueHelp> <format>ipv4</format> <description>IPv4 ping target address</description> </valueHelp> <valueHelp> <format>ipv6</format> <description>IPv6 ping target address</description> </valueHelp> <constraint> <validator name="ip-address"/> </constraint> </properties> </leafNode> <leafNode name="script"> <properties> <help>Health check script file</help> <constraint> <validator name="script"/> </constraint> </properties> </leafNode> </children> </node> <leafNode name="hello-source-address"> <properties> <help>VRRP hello source address</help> <valueHelp> <format>ipv4</format> <description>IPv4 hello source address</description> </valueHelp> <valueHelp> <format>ipv6</format> <description>IPv6 hello source address</description> </valueHelp> <constraint> <validator name="ip-address"/> </constraint> </properties> </leafNode> <leafNode name="peer-address"> <properties> <help>Unicast VRRP peer address</help> <valueHelp> <format>ipv4</format> <description>IPv4 unicast peer address</description> </valueHelp> <valueHelp> <format>ipv6</format> <description>IPv6 unicast peer address</description> </valueHelp> <constraint> <validator name="ip-address"/> </constraint> <multi/> </properties> </leafNode> <leafNode name="no-preempt"> <properties> <valueless/> <help>Disable master preemption</help> </properties> </leafNode> <leafNode name="preempt-delay"> <properties> <help>Preempt delay (in seconds)</help> <valueHelp> <format>u32:0-1000</format> <description>preempt delay</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 0-1000"/> </constraint> </properties> <defaultValue>0</defaultValue> </leafNode> <leafNode name="priority"> <properties> <help>Router priority</help> <valueHelp> <format>u32:1-255</format> <description>Router priority</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> <defaultValue>100</defaultValue> </leafNode> <leafNode name="rfc3768-compatibility"> <properties> <help>Use VRRP virtual MAC address as per RFC3768</help> <valueless/> </properties> </leafNode> <node name="track"> <properties> <help>Track settings</help> </properties> <children> <leafNode name="exclude-vrrp-interface"> <properties> <valueless/> <help>Disable track state of main interface</help> </properties> </leafNode> - <leafNode name="interface"> - <properties> - <help>Interface name state check</help> - <completionHelp> - <script>${vyos_completion_dir}/list_interfaces --broadcast</script> - </completionHelp> - <valueHelp> - <format>txt</format> - <description>Interface name</description> - </valueHelp> - <constraint> - #include <include/constraint/interface-name.xml.i> - </constraint> - <multi/> - </properties> - </leafNode> + #include <include/generic-interface-multi-broadcast.xml.i> </children> </node> #include <include/vrrp-transition-script.xml.i> <tagNode name="address"> <properties> <help>Virtual IP address</help> <valueHelp> <format>ipv4net</format> <description>IPv4 address and prefix length</description> </valueHelp> <valueHelp> <format>ipv6net</format> <description>IPv6 address and prefix length</description> </valueHelp> <valueHelp> <format>ipv4</format> <description>IPv4 address</description> </valueHelp> <valueHelp> <format>ipv6</format> <description>IPv6 address</description> </valueHelp> <constraint> <validator name="ip-host"/> <validator name="ip-address"/> </constraint> </properties> <children> #include <include/generic-interface-broadcast.xml.i> </children> </tagNode> <tagNode name="excluded-address"> <properties> <help>Virtual address (If you need additional IPv4 and IPv6 in same group)</help> <valueHelp> <format>ipv4net</format> <description>IPv4 address and prefix length</description> </valueHelp> <valueHelp> <format>ipv6net</format> <description>IPv6 address and prefix length</description> </valueHelp> <valueHelp> <format>ipv4</format> <description>IPv4 address</description> </valueHelp> <valueHelp> <format>ipv6</format> <description>IPv6 address</description> </valueHelp> <constraint> <validator name="ip-host"/> <validator name="ip-address"/> </constraint> </properties> <children> #include <include/generic-interface-broadcast.xml.i> </children> </tagNode> <leafNode name="vrid"> <properties> <help>Virtual router identifier</help> <valueHelp> <format>u32:1-255</format> <description>Virtual router identifier</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> </children> </tagNode> <tagNode name="sync-group"> <properties> <help>VRRP sync group</help> </properties> <children> <leafNode name="member"> <properties> <multi/> <help>Sync group member</help> <valueHelp> <format>txt</format> <description>VRRP group name</description> </valueHelp> <completionHelp> <path>high-availability vrrp group</path> </completionHelp> </properties> </leafNode> <node name="health-check"> <properties> <help>Health check</help> </properties> <children> <leafNode name="failure-count"> <properties> <help>Health check failure count required for transition to fault</help> <constraint> <validator name="numeric" argument="--positive" /> </constraint> </properties> <defaultValue>3</defaultValue> </leafNode> <leafNode name="interval"> <properties> <help>Health check execution interval in seconds</help> <constraint> <validator name="numeric" argument="--positive"/> </constraint> </properties> <defaultValue>60</defaultValue> </leafNode> <leafNode name="ping"> <properties> <help>ICMP ping health check</help> <valueHelp> <format>ipv4</format> <description>IPv4 ping target address</description> </valueHelp> <valueHelp> <format>ipv6</format> <description>IPv6 ping target address</description> </valueHelp> <constraint> <validator name="ip-address"/> </constraint> </properties> </leafNode> <leafNode name="script"> <properties> <help>Health check script file</help> <constraint> <validator name="script"/> </constraint> </properties> </leafNode> </children> </node> #include <include/vrrp-transition-script.xml.i> </children> </tagNode> </children> </node> <tagNode name="virtual-server"> <properties> <help>Load-balancing virtual server alias</help> </properties> <children> #include <include/address-ipv4-ipv6-single.xml.i> <leafNode name="algorithm"> <properties> <help>Schedule algorithm (default - least-connection)</help> <completionHelp> <list>round-robin weighted-round-robin least-connection weighted-least-connection source-hashing destination-hashing locality-based-least-connection</list> </completionHelp> <valueHelp> <format>round-robin</format> <description>Round robin</description> </valueHelp> <valueHelp> <format>weighted-round-robin</format> <description>Weighted round robin</description> </valueHelp> <valueHelp> <format>least-connection</format> <description>Least connection</description> </valueHelp> <valueHelp> <format>weighted-least-connection</format> <description>Weighted least connection</description> </valueHelp> <valueHelp> <format>source-hashing</format> <description>Source hashing</description> </valueHelp> <valueHelp> <format>destination-hashing</format> <description>Destination hashing</description> </valueHelp> <valueHelp> <format>locality-based-least-connection</format> <description>Locality-Based least connection</description> </valueHelp> <constraint> <regex>(round-robin|weighted-round-robin|least-connection|weighted-least-connection|source-hashing|destination-hashing|locality-based-least-connection)</regex> </constraint> </properties> <defaultValue>least-connection</defaultValue> </leafNode> <leafNode name="delay-loop"> <properties> <help>Interval between health-checks (in seconds)</help> <valueHelp> <format>u32:1-600</format> <description>Interval in seconds</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-3600"/> </constraint> </properties> <defaultValue>10</defaultValue> </leafNode> <leafNode name="forward-method"> <properties> <help>Forwarding method</help> <completionHelp> <list>direct nat tunnel</list> </completionHelp> <valueHelp> <format>direct</format> <description>Direct routing</description> </valueHelp> <valueHelp> <format>nat</format> <description>NAT</description> </valueHelp> <valueHelp> <format>tunnel</format> <description>Tunneling</description> </valueHelp> <constraint> <regex>(direct|nat|tunnel)</regex> </constraint> </properties> <defaultValue>nat</defaultValue> </leafNode> #include <include/firewall/fwmark.xml.i> #include <include/port-number-start-zero.xml.i> <leafNode name="persistence-timeout"> <properties> <help>Timeout for persistent connections</help> <valueHelp> <format>u32:1-86400</format> <description>Timeout for persistent connections</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-86400"/> </constraint> </properties> <defaultValue>300</defaultValue> </leafNode> <leafNode name="protocol"> <properties> <help>Protocol for port checks</help> <completionHelp> <list>tcp udp</list> </completionHelp> <valueHelp> <format>tcp</format> <description>TCP</description> </valueHelp> <valueHelp> <format>udp</format> <description>UDP</description> </valueHelp> <constraint> <regex>(tcp|udp)</regex> </constraint> </properties> <defaultValue>tcp</defaultValue> </leafNode> <tagNode name="real-server"> <properties> <help>Real server address</help> </properties> <children> #include <include/port-number-start-zero.xml.i> <leafNode name="connection-timeout"> <properties> <help>Server connection timeout</help> <valueHelp> <format>u32:1-86400</format> <description>Connection timeout to remote server</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-86400"/> </constraint> </properties> </leafNode> <node name="health-check"> <properties> <help>Health check script</help> </properties> <children> <leafNode name="script"> <properties> <help>Health check script file</help> <constraint> <validator name="script"/> </constraint> </properties> </leafNode> </children> </node> </children> </tagNode> </children> </tagNode> </children> </node> </interfaceDefinition> diff --git a/interface-definitions/include/bgp/protocol-common-config.xml.i b/interface-definitions/include/bgp/protocol-common-config.xml.i index 0f05625a7..4953251c5 100644 --- a/interface-definitions/include/bgp/protocol-common-config.xml.i +++ b/interface-definitions/include/bgp/protocol-common-config.xml.i @@ -1,1868 +1,1860 @@ <!-- include start from bgp/protocol-common-config.xml.i --> <node name="address-family"> <properties> <help>BGP address-family parameters</help> </properties> <children> <node name="ipv4-unicast"> <properties> <help>IPv4 BGP settings</help> </properties> <children> <tagNode name="aggregate-address"> <properties> <help>BGP aggregate network</help> <valueHelp> <format>ipv4net</format> <description>BGP aggregate network</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> </constraint> </properties> <children> #include <include/bgp/afi-aggregate-address.xml.i> </children> </tagNode> <node name="distance"> <properties> <help>Administrative distances for BGP routes</help> </properties> <children> <leafNode name="external"> <properties> <help>eBGP routes administrative distance</help> <valueHelp> <format>u32:1-255</format> <description>eBGP routes administrative distance</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <leafNode name="internal"> <properties> <help>iBGP routes administrative distance</help> <valueHelp> <format>u32:1-255</format> <description>iBGP routes administrative distance</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <leafNode name="local"> <properties> <help>Locally originated BGP routes administrative distance</help> <valueHelp> <format>u32:1-255</format> <description>Locally originated BGP routes administrative distance</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <tagNode name="prefix"> <properties> <help>Administrative distance for a specific BGP prefix</help> <valueHelp> <format>ipv4net</format> <description>Administrative distance for a specific BGP prefix</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> </constraint> </properties> <children> <leafNode name="distance"> <properties> <help>Administrative distance for prefix</help> <valueHelp> <format>u32:1-255</format> <description>Administrative distance for external BGP routes</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> </children> </tagNode> </children> </node> #include <include/bgp/afi-export-import.xml.i> #include <include/bgp/afi-label.xml.i> #include <include/bgp/afi-maximum-paths.xml.i> <tagNode name="network"> <properties> <help>BGP network</help> <valueHelp> <format>ipv4net</format> <description>BGP network</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> </constraint> </properties> <children> <leafNode name="backdoor"> <properties> <help>Network as a backdoor route</help> <valueless/> </properties> </leafNode> #include <include/route-map.xml.i> </children> </tagNode> #include <include/bgp/afi-rd.xml.i> #include <include/bgp/afi-route-map-vpn.xml.i> #include <include/bgp/afi-route-target-vpn.xml.i> #include <include/bgp/afi-nexthop-vpn-export.xml.i> <node name="redistribute"> <properties> <help>Redistribute routes from other protocols into BGP</help> </properties> <children> <node name="connected"> <properties> <help>Redistribute connected routes into BGP</help> </properties> <children> #include <include/bgp/afi-redistribute-metric-route-map.xml.i> </children> </node> <node name="isis"> <properties> <help>Redistribute IS-IS routes into BGP</help> </properties> <children> #include <include/bgp/afi-redistribute-metric-route-map.xml.i> </children> </node> <node name="kernel"> <properties> <help>Redistribute kernel routes into BGP</help> </properties> <children> #include <include/bgp/afi-redistribute-metric-route-map.xml.i> </children> </node> <node name="ospf"> <properties> <help>Redistribute OSPF routes into BGP</help> </properties> <children> #include <include/bgp/afi-redistribute-metric-route-map.xml.i> </children> </node> <node name="rip"> <properties> <help>Redistribute RIP routes into BGP</help> </properties> <children> #include <include/bgp/afi-redistribute-metric-route-map.xml.i> </children> </node> <node name="babel"> <properties> <help>Redistribute Babel routes into BGP</help> </properties> <children> #include <include/bgp/afi-redistribute-metric-route-map.xml.i> </children> </node> <node name="static"> <properties> <help>Redistribute static routes into BGP</help> </properties> <children> #include <include/bgp/afi-redistribute-metric-route-map.xml.i> </children> </node> <leafNode name="table"> <properties> <help>Redistribute non-main Kernel Routing Table</help> </properties> </leafNode> </children> </node> #include <include/bgp/afi-sid.xml.i> </children> </node> <node name="ipv4-multicast"> <properties> <help>Multicast IPv4 BGP settings</help> </properties> <children> <tagNode name="aggregate-address"> <properties> <help>BGP aggregate network/prefix</help> <valueHelp> <format>ipv4net</format> <description>BGP aggregate network/prefix</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> </constraint> </properties> <children> #include <include/bgp/afi-aggregate-address.xml.i> </children> </tagNode> <node name="distance"> <properties> <help>Administrative distances for BGP routes</help> </properties> <children> <leafNode name="external"> <properties> <help>eBGP routes administrative distance</help> <valueHelp> <format>u32:1-255</format> <description>eBGP routes administrative distance</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <leafNode name="internal"> <properties> <help>iBGP routes administrative distance</help> <valueHelp> <format>u32:1-255</format> <description>iBGP routes administrative distance</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <leafNode name="local"> <properties> <help>Locally originated BGP routes administrative distance</help> <valueHelp> <format>u32:1-255</format> <description>Locally originated BGP routes administrative distance</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <tagNode name="prefix"> <properties> <help>Administrative distance for a specific BGP prefix</help> <valueHelp> <format>ipv4net</format> <description>Administrative distance for a specific BGP prefix</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> </constraint> </properties> <children> <leafNode name="distance"> <properties> <help>Administrative distance for prefix</help> <valueHelp> <format>u32:1-255</format> <description>Administrative distance for external BGP routes</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> </children> </tagNode> </children> </node> <tagNode name="network"> <properties> <help>Import BGP network/prefix into multicast IPv4 RIB</help> <valueHelp> <format>ipv4net</format> <description>Multicast IPv4 BGP network/prefix</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> </constraint> </properties> <children> <leafNode name="backdoor"> <properties> <help>Use BGP network/prefix as a backdoor route</help> <valueless/> </properties> </leafNode> #include <include/route-map.xml.i> </children> </tagNode> </children> </node> <node name="ipv4-labeled-unicast"> <properties> <help>Labeled Unicast IPv4 BGP settings</help> </properties> <children> <tagNode name="aggregate-address"> <properties> <help>BGP aggregate network/prefix</help> <valueHelp> <format>ipv4net</format> <description>BGP aggregate network/prefix</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> </constraint> </properties> <children> #include <include/bgp/afi-aggregate-address.xml.i> </children> </tagNode> <tagNode name="network"> <properties> <help>Import BGP network/prefix into labeled unicast IPv4 RIB</help> <valueHelp> <format>ipv4net</format> <description>Labeled Unicast IPv4 BGP network/prefix</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> </constraint> </properties> <children> <leafNode name="backdoor"> <properties> <help>Use BGP network/prefix as a backdoor route</help> <valueless/> </properties> </leafNode> #include <include/route-map.xml.i> </children> </tagNode> #include <include/bgp/afi-maximum-paths.xml.i> </children> </node> <node name="ipv4-flowspec"> <properties> <help>Flowspec IPv4 BGP settings</help> </properties> <children> <node name="local-install"> <properties> <help>Apply local policy routing to interface</help> </properties> <children> #include <include/generic-interface-multi.xml.i> </children> </node> </children> </node> <node name="ipv4-vpn"> <properties> <help>Unicast VPN IPv4 BGP settings</help> </properties> <children> <tagNode name="network"> <properties> <help>Import BGP network/prefix into unicast VPN IPv4 RIB</help> <valueHelp> <format>ipv4net</format> <description>Unicast VPN IPv4 BGP network/prefix</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> </constraint> </properties> <children> #include <include/bgp/route-distinguisher.xml.i> #include <include/bgp/afi-vpn-label.xml.i> </children> </tagNode> </children> </node> <node name="ipv6-unicast"> <properties> <help>IPv6 BGP settings</help> </properties> <children> <tagNode name="aggregate-address"> <properties> <help>BGP aggregate network</help> <valueHelp> <format>ipv6net</format> <description>Aggregate network</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> <children> #include <include/bgp/afi-aggregate-address.xml.i> </children> </tagNode> <node name="distance"> <properties> <help>Administrative distances for BGP routes</help> </properties> <children> <leafNode name="external"> <properties> <help>eBGP routes administrative distance</help> <valueHelp> <format>u32:1-255</format> <description>eBGP routes administrative distance</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <leafNode name="internal"> <properties> <help>iBGP routes administrative distance</help> <valueHelp> <format>u32:1-255</format> <description>iBGP routes administrative distance</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <leafNode name="local"> <properties> <help>Locally originated BGP routes administrative distance</help> <valueHelp> <format>u32:1-255</format> <description>Locally originated BGP routes administrative distance</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <tagNode name="prefix"> <properties> <help>Administrative distance for a specific BGP prefix</help> <valueHelp> <format>ipv6net</format> <description>Administrative distance for a specific BGP prefix</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> <children> <leafNode name="distance"> <properties> <help>Administrative distance for prefix</help> <valueHelp> <format>u32:1-255</format> <description>Administrative distance for external BGP routes</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> </children> </tagNode> </children> </node> #include <include/bgp/afi-export-import.xml.i> #include <include/bgp/afi-label.xml.i> #include <include/bgp/afi-maximum-paths.xml.i> <tagNode name="network"> <properties> <help>BGP network</help> <valueHelp> <format>ipv6net</format> <description>Aggregate network</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> <children> #include <include/bgp/afi-path-limit.xml.i> #include <include/route-map.xml.i> </children> </tagNode> #include <include/bgp/afi-rd.xml.i> #include <include/bgp/afi-route-map-vpn.xml.i> #include <include/bgp/afi-route-target-vpn.xml.i> #include <include/bgp/afi-nexthop-vpn-export.xml.i> <node name="redistribute"> <properties> <help>Redistribute routes from other protocols into BGP</help> </properties> <children> <node name="connected"> <properties> <help>Redistribute connected routes into BGP</help> </properties> <children> #include <include/bgp/afi-redistribute-metric-route-map.xml.i> </children> </node> <node name="kernel"> <properties> <help>Redistribute kernel routes into BGP</help> </properties> <children> #include <include/bgp/afi-redistribute-metric-route-map.xml.i> </children> </node> <node name="ospfv3"> <properties> <help>Redistribute OSPFv3 routes into BGP</help> </properties> <children> #include <include/bgp/afi-redistribute-metric-route-map.xml.i> </children> </node> <node name="ripng"> <properties> <help>Redistribute RIPng routes into BGP</help> </properties> <children> #include <include/bgp/afi-redistribute-metric-route-map.xml.i> </children> </node> <node name="babel"> <properties> <help>Redistribute Babel routes into BGP</help> </properties> <children> #include <include/bgp/afi-redistribute-metric-route-map.xml.i> </children> </node> <node name="static"> <properties> <help>Redistribute static routes into BGP</help> </properties> <children> #include <include/bgp/afi-redistribute-metric-route-map.xml.i> </children> </node> <leafNode name="table"> <properties> <help>Redistribute non-main Kernel Routing Table</help> </properties> </leafNode> </children> </node> #include <include/bgp/afi-sid.xml.i> </children> </node> <node name="ipv6-multicast"> <properties> <help>Multicast IPv6 BGP settings</help> </properties> <children> <tagNode name="aggregate-address"> <properties> <help>BGP aggregate network/prefix</help> <valueHelp> <format>ipv6net</format> <description>BGP aggregate network/prefix</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> <children> #include <include/bgp/afi-aggregate-address.xml.i> </children> </tagNode> <node name="distance"> <properties> <help>Administrative distances for BGP routes</help> </properties> <children> <leafNode name="external"> <properties> <help>eBGP routes administrative distance</help> <valueHelp> <format>u32:1-255</format> <description>eBGP routes administrative distance</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <leafNode name="internal"> <properties> <help>iBGP routes administrative distance</help> <valueHelp> <format>u32:1-255</format> <description>iBGP routes administrative distance</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <leafNode name="local"> <properties> <help>Locally originated BGP routes administrative distance</help> <valueHelp> <format>u32:1-255</format> <description>Locally originated BGP routes administrative distance</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <tagNode name="prefix"> <properties> <help>Administrative distance for a specific BGP prefix</help> <valueHelp> <format>ipv6net</format> <description>Administrative distance for a specific BGP prefix</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> <children> <leafNode name="distance"> <properties> <help>Administrative distance for prefix</help> <valueHelp> <format>u32:1-255</format> <description>Administrative distance for external BGP routes</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> </children> </tagNode> </children> </node> <tagNode name="network"> <properties> <help>Import BGP network/prefix into multicast IPv6 RIB</help> <valueHelp> <format>ipv6net</format> <description>Multicast IPv6 BGP network/prefix</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> <children> #include <include/bgp/afi-path-limit.xml.i> #include <include/route-map.xml.i> </children> </tagNode> </children> </node> <node name="ipv6-labeled-unicast"> <properties> <help>Labeled Unicast IPv6 BGP settings</help> </properties> <children> <tagNode name="aggregate-address"> <properties> <help>BGP aggregate network/prefix</help> <valueHelp> <format>ipv6net</format> <description>BGP aggregate network/prefix</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> <children> #include <include/bgp/afi-aggregate-address.xml.i> </children> </tagNode> <tagNode name="network"> <properties> <help>Import BGP network/prefix into labeled unicast IPv6 RIB</help> <valueHelp> <format>ipv6net</format> <description>Labeled Unicast IPv6 BGP network/prefix</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> <children> <leafNode name="backdoor"> <properties> <help>Use BGP network/prefix as a backdoor route</help> <valueless/> </properties> </leafNode> #include <include/route-map.xml.i> </children> </tagNode> </children> </node> <node name="ipv6-flowspec"> <properties> <help>Flowspec IPv6 BGP settings</help> </properties> <children> <node name="local-install"> <properties> <help>Apply local policy routing to interface</help> </properties> <children> - <leafNode name="interface"> - <properties> - <help>Interface</help> - <completionHelp> - <script>${vyos_completion_dir}/list_interfaces</script> - </completionHelp> - <multi/> - </properties> - </leafNode> + #include <include/generic-interface-multi.xml.i> </children> </node> </children> </node> <node name="ipv6-vpn"> <properties> <help>Unicast VPN IPv6 BGP settings</help> </properties> <children> <tagNode name="network"> <properties> <help>Import BGP network/prefix into unicast VPN IPv6 RIB</help> <valueHelp> <format>ipv6net</format> <description>Unicast VPN IPv6 BGP network/prefix</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> <children> #include <include/bgp/route-distinguisher.xml.i> #include <include/bgp/afi-vpn-label.xml.i> </children> </tagNode> </children> </node> <node name="l2vpn-evpn"> <properties> <help>L2VPN EVPN BGP settings</help> </properties> <children> <node name="advertise"> <properties> <help>Advertise prefix routes</help> </properties> <children> <node name="ipv4"> <properties> <help>IPv4 address family</help> </properties> <children> #include <include/bgp/afi-l2vpn-advertise.xml.i> </children> </node> <node name="ipv6"> <properties> <help>IPv6 address family</help> </properties> <children> #include <include/bgp/afi-l2vpn-advertise.xml.i> </children> </node> </children> </node> <leafNode name="advertise-all-vni"> <properties> <help>Advertise All local VNIs</help> <valueless/> </properties> </leafNode> #include <include/bgp/afi-l2vpn-common.xml.i> <leafNode name="advertise-pip"> <properties> <help>EVPN system primary IP</help> <valueHelp> <format>ipv4</format> <description>IP address</description> </valueHelp> <constraint> <validator name="ipv4-address"/> </constraint> </properties> </leafNode> <leafNode name="rt-auto-derive"> <properties> <help>Auto derivation of Route Target (RFC8365)</help> <valueless/> </properties> </leafNode> <node name="default-originate"> <properties> <help>Originate a default route</help> </properties> <children> <leafNode name="ipv4"> <properties> <help>IPv4 address family</help> <valueless/> </properties> </leafNode> <leafNode name="ipv6"> <properties> <help>IPv6 address family</help> <valueless/> </properties> </leafNode> </children> </node> <leafNode name="disable-ead-evi-rx"> <properties> <help>Activate PE on EAD-ES even if EAD-EVI is not received</help> <valueless/> </properties> </leafNode> <leafNode name="disable-ead-evi-tx"> <properties> <help>Do not advertise EAD-EVI for local ESs</help> <valueless/> </properties> </leafNode> <node name="ead-es-frag"> <properties> <help>EAD ES fragment config</help> </properties> <children> <leafNode name="evi-limit"> <properties> <help>EVIs per-fragment</help> <valueHelp> <format>u32:1-1000</format> <description>limit</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-1000"/> </constraint> </properties> </leafNode> </children> </node> <node name="ead-es-route-target"> <properties> <help>EAD ES Route Target</help> </properties> <children> <leafNode name="export"> <properties> <help>Route Target export</help> <valueHelp> <format>txt</format> <description>Route target (A.B.C.D:MN|EF:OPQR|GHJK:MN)</description> </valueHelp> <constraint> <validator name="bgp-rd-rt" argument="--route-target-multi"/> </constraint> <multi/> </properties> </leafNode> </children> </node> <node name="flooding"> <properties> <help>Specify handling for BUM packets</help> </properties> <children> #include <include/generic-disable-node.xml.i> <leafNode name="head-end-replication"> <properties> <help>Flood BUM packets using head-end replication</help> <valueless/> </properties> </leafNode> </children> </node> <node name="mac-vrf"> <properties> <help>EVPN MAC-VRF</help> </properties> <children> <leafNode name="soo"> <properties> <help>Site-of-Origin extended community</help> <valueHelp> <format>ASN:NN</format> <description>based on autonomous system number in format <0-65535:0-4294967295></description> </valueHelp> <valueHelp> <format>IP:NN</format> <description>Based on a router-id IP address in format <IP:0-65535></description> </valueHelp> <constraint> <validator name="bgp-extended-community"/> </constraint> <constraintErrorMessage>Should be in form: ASN:NN or IPADDR:NN where ASN is autonomous system number</constraintErrorMessage> </properties> </leafNode> </children> </node> <tagNode name="vni"> <properties> <help>VXLAN Network Identifier</help> <valueHelp> <format>u32:1-16777215</format> <description>VNI number</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-16777215"/> </constraint> </properties> <children> #include <include/bgp/afi-l2vpn-common.xml.i> </children> </tagNode> </children> </node> </children> </node> <node name="bmp"> <properties> <help>BGP Monitoring Protocol (BMP)</help> </properties> <children> <leafNode name="mirror-buffer-limit"> <properties> <help>Maximum memory used for buffered mirroring messages (in bytes)</help> <valueHelp> <format>u32:0-4294967294</format> <description>Limit in bytes</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 0-4294967294"/> </constraint> </properties> </leafNode> <tagNode name="target"> <properties> <help>BMP target</help> </properties> <children> #include <include/address-ipv4-ipv6-single.xml.i> #include <include/port-number.xml.i> <leafNode name="port"> <defaultValue>5000</defaultValue> </leafNode> <leafNode name="min-retry"> <properties> <help>Minimum connection retry interval (in milliseconds)</help> <valueHelp> <format>u32:100-86400000</format> <description>Minimum connection retry interval</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 100-86400000"/> </constraint> </properties> <defaultValue>1000</defaultValue> </leafNode> <leafNode name="max-retry"> <properties> <help>Maximum connection retry interval</help> <valueHelp> <format>u32:100-4294967295</format> <description>Maximum connection retry interval</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 100-86400000"/> </constraint> </properties> <defaultValue>2000</defaultValue> </leafNode> <leafNode name="mirror"> <properties> <help>Send BMP route mirroring messages</help> <valueless/> </properties> </leafNode> <node name="monitor"> <properties> <help>Send BMP route monitoring messages</help> </properties> <children> <node name="ipv4-unicast"> <properties> <help>Address family IPv4 unicast</help> </properties> <children> #include <include/bgp/bmp-monitor-afi-policy.xml.i> </children> </node> <node name="ipv6-unicast"> <properties> <help>Address family IPv6 unicast</help> </properties> <children> #include <include/bgp/bmp-monitor-afi-policy.xml.i> </children> </node> </children> </node> </children> </tagNode> </children> </node> <tagNode name="interface"> <properties> <help>Configure interface related parameters, e.g. MPLS</help> <completionHelp> <script>${vyos_completion_dir}/list_interfaces</script> </completionHelp> <valueHelp> <format>txt</format> <description>Interface name</description> </valueHelp> <constraint> #include <include/constraint/interface-name.xml.i> </constraint> </properties> <children> <node name="mpls"> <properties> <help>MPLS options</help> </properties> <children> <leafNode name="forwarding"> <properties> <help>Enable MPLS forwarding for eBGP directly connected peers</help> <valueless/> </properties> </leafNode> </children> </node> </children> </tagNode> <node name="listen"> <properties> <help>Listen for and accept BGP dynamic neighbors from range</help> </properties> <children> <leafNode name="limit"> <properties> <help>Maximum number of dynamic neighbors that can be created</help> <valueHelp> <format>u32:1-5000</format> <description>BGP neighbor limit</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-5000"/> </constraint> </properties> </leafNode> <tagNode name="range"> <properties> <help>BGP dynamic neighbors listen range</help> <valueHelp> <format>ipv4net</format> <description>IPv4 dynamic neighbors listen range</description> </valueHelp> <valueHelp> <format>ipv6net</format> <description>IPv6 dynamic neighbors listen range</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> <validator name="ipv6-prefix"/> </constraint> </properties> <children> #include <include/bgp/peer-group.xml.i> </children> </tagNode> </children> </node> <leafNode name="system-as"> <properties> <help>Autonomous System Number (ASN)</help> <valueHelp> <format>u32:1-4294967294</format> <description>Autonomous System Number</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-4294967294"/> </constraint> </properties> </leafNode> <tagNode name="neighbor"> <properties> <help>BGP neighbor</help> <valueHelp> <format>ipv4</format> <description>BGP neighbor IP address</description> </valueHelp> <valueHelp> <format>ipv6</format> <description>BGP neighbor IPv6 address</description> </valueHelp> <valueHelp> <format>txt</format> <description>Interface name</description> </valueHelp> <constraint> <validator name="ip-address"/> #include <include/constraint/interface-name.xml.i> </constraint> </properties> <children> <node name="address-family"> <properties> <help>Address-family parameters</help> </properties> <children> #include <include/bgp/neighbor-afi-ipv4-unicast.xml.i> #include <include/bgp/neighbor-afi-ipv6-unicast.xml.i> #include <include/bgp/neighbor-afi-ipv4-labeled-unicast.xml.i> #include <include/bgp/neighbor-afi-ipv6-labeled-unicast.xml.i> #include <include/bgp/neighbor-afi-ipv4-vpn.xml.i> #include <include/bgp/neighbor-afi-ipv6-vpn.xml.i> #include <include/bgp/neighbor-afi-ipv4-flowspec.xml.i> #include <include/bgp/neighbor-afi-ipv6-flowspec.xml.i> #include <include/bgp/neighbor-afi-ipv4-multicast.xml.i> #include <include/bgp/neighbor-afi-ipv6-multicast.xml.i> #include <include/bgp/neighbor-afi-l2vpn-evpn.xml.i> </children> </node> <leafNode name="advertisement-interval"> <properties> <help>Minimum interval for sending routing updates</help> <valueHelp> <format>u32:0-600</format> <description>Advertisement interval in seconds</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 0-600"/> </constraint> </properties> </leafNode> #include <include/generic-description.xml.i> #include <include/bgp/neighbor-bfd.xml.i> #include <include/bgp/neighbor-capability.xml.i> #include <include/bgp/neighbor-disable-capability-negotiation.xml.i> #include <include/bgp/neighbor-disable-connected-check.xml.i> #include <include/bgp/neighbor-ebgp-multihop.xml.i> #include <include/bgp/neighbor-graceful-restart.xml.i> <node name="interface"> <properties> <help>Interface parameters</help> </properties> <children> #include <include/bgp/peer-group.xml.i> #include <include/bgp/remote-as.xml.i> #include <include/source-interface.xml.i> <node name="v6only"> <properties> <help>Enable BGP with v6 link-local only</help> </properties> <children> #include <include/bgp/peer-group.xml.i> #include <include/bgp/remote-as.xml.i> </children> </node> </children> </node> #include <include/bgp/neighbor-local-as.xml.i> #include <include/bgp/neighbor-local-role.xml.i> #include <include/bgp/neighbor-override-capability.xml.i> #include <include/bgp/neighbor-path-attribute.xml.i> #include <include/bgp/neighbor-passive.xml.i> #include <include/bgp/neighbor-password.xml.i> #include <include/bgp/peer-group.xml.i> #include <include/bgp/remote-as.xml.i> #include <include/bgp/neighbor-shutdown.xml.i> <leafNode name="solo"> <properties> <help>Do not send back prefixes learned from the neighbor</help> <valueless/> </properties> </leafNode> <leafNode name="enforce-first-as"> <properties> <help>Ensure the first AS in the AS path matches the peer AS</help> <valueless/> </properties> </leafNode> <leafNode name="strict-capability-match"> <properties> <help>Enable strict capability negotiation</help> <valueless/> </properties> </leafNode> <node name="timers"> <properties> <help>Neighbor timers</help> </properties> <children> <leafNode name="connect"> <properties> <help>BGP connect timer for this neighbor</help> <valueHelp> <format>u32:1-65535</format> <description>Connect timer in seconds</description> </valueHelp> <valueHelp> <format>0</format> <description>Disable connect timer</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 0-65535"/> </constraint> </properties> </leafNode> #include <include/bgp/timers-holdtime.xml.i> #include <include/bgp/timers-keepalive.xml.i> </children> </node> #include <include/bgp/neighbor-ttl-security.xml.i> #include <include/bgp/neighbor-update-source.xml.i> #include <include/port-number.xml.i> </children> </tagNode> <node name="parameters"> <properties> <help>BGP parameters</help> </properties> <children> <leafNode name="allow-martian-nexthop"> <properties> <help>Allow Martian nexthops to be received in the NLRI from a peer</help> <valueless/> </properties> </leafNode> <leafNode name="disable-ebgp-connected-route-check"> <properties> <help>Disable checking if nexthop is connected on eBGP session</help> <valueless/> </properties> </leafNode> <leafNode name="always-compare-med"> <properties> <help>Always compare MEDs from different neighbors</help> <valueless/> </properties> </leafNode> <node name="bestpath"> <properties> <help>Default bestpath selection mechanism</help> </properties> <children> <node name="as-path"> <properties> <help>AS-path attribute comparison parameters</help> </properties> <children> <leafNode name="confed"> <properties> <help>Compare AS-path lengths including confederation sets and sequences</help> <valueless/> </properties> </leafNode> <leafNode name="ignore"> <properties> <help>Ignore AS-path length in selecting a route</help> <valueless/> </properties> </leafNode> <leafNode name="multipath-relax"> <properties> <help>Allow load sharing across routes that have different AS paths (but same length)</help> <valueless/> </properties> </leafNode> </children> </node> <leafNode name="bandwidth"> <properties> <help>Link Bandwidth attribute</help> <completionHelp> <list>default-weight-for-missing ignore skip-missing</list> </completionHelp> <valueHelp> <format>default-weight-for-missing</format> <description>Assign low default weight (1) to paths not having link bandwidth</description> </valueHelp> <valueHelp> <format>ignore</format> <description>Ignore link bandwidth (do regular ECMP, not weighted)</description> </valueHelp> <valueHelp> <format>skip-missing</format> <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> </constraint> </properties> </leafNode> <leafNode name="compare-routerid"> <properties> <help>Compare the router-id for identical EBGP paths</help> <valueless/> </properties> </leafNode> <leafNode name="med"> <properties> <help>MED attribute comparison parameters</help> <completionHelp> <list>confed missing-as-worst</list> </completionHelp> <valueHelp> <format>confed</format> <description>Compare MEDs among confederation paths</description> </valueHelp> <valueHelp> <format>missing-as-worst</format> <description>Treat missing route as a MED as the least preferred one</description> </valueHelp> <constraint> <regex>(confed|missing-as-worst)</regex> </constraint> <multi/> </properties> </leafNode> <node name="peer-type"> <properties> <help>Peer type</help> </properties> <children> <leafNode name="multipath-relax"> <properties> <help>Allow load sharing across routes learned from different peer types</help> <valueless/> </properties> </leafNode> </children> </node> </children> </node> <leafNode name="cluster-id"> <properties> <help>Route-reflector cluster-id</help> <valueHelp> <format>ipv4</format> <description>Route-reflector cluster-id</description> </valueHelp> <constraint> <validator name="ipv4-address"/> </constraint> </properties> </leafNode> <node name="confederation"> <properties> <help>AS confederation parameters</help> </properties> <children> <leafNode name="identifier"> <properties> <help>Confederation AS identifier</help> <valueHelp> <format>u32:1-4294967294</format> <description>Confederation AS id</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-4294967294"/> </constraint> </properties> </leafNode> <leafNode name="peers"> <properties> <help>Peer ASs in the BGP confederation</help> <valueHelp> <format>u32:1-4294967294</format> <description>Peer AS number</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-4294967294"/> </constraint> <multi/> </properties> </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> </properties> <children> <leafNode name="half-life"> <properties> <help>Half-life time for dampening</help> <valueHelp> <format>u32:1-45</format> <description>Half-life penalty in minutes</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-45"/> </constraint> </properties> </leafNode> <leafNode name="max-suppress-time"> <properties> <help>Maximum duration to suppress a stable route</help> <valueHelp> <format>u32:1-255</format> <description>Maximum suppress duration in minutes</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <leafNode name="re-use"> <properties> <help>Threshold to start reusing a route</help> <valueHelp> <format>u32:1-20000</format> <description>Re-use penalty points</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-20000"/> </constraint> </properties> </leafNode> <leafNode name="start-suppress-time"> <properties> <help>When to start suppressing a route</help> <valueHelp> <format>u32:1-20000</format> <description>Start-suppress penalty points</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-20000"/> </constraint> </properties> </leafNode> </children> </node> <node name="default"> <properties> <help>BGP defaults</help> </properties> <children> <leafNode name="local-pref"> <properties> <help>Default local preference</help> <valueHelp> <format>u32</format> <description>Local preference</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 0-4294967295"/> </constraint> </properties> </leafNode> </children> </node> <leafNode name="deterministic-med"> <properties> <help>Compare MEDs between different peers in the same AS</help> <valueless/> </properties> </leafNode> <node name="distance"> <properties> <help>Administratives distances for BGP routes</help> </properties> <children> <node name="global"> <properties> <help>Global administratives distances for BGP routes</help> </properties> <children> <leafNode name="external"> <properties> <help>Administrative distance for external BGP routes</help> <valueHelp> <format>u32:1-255</format> <description>Administrative distance for external BGP routes</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <leafNode name="internal"> <properties> <help>Administrative distance for internal BGP routes</help> <valueHelp> <format>u32:1-255</format> <description>Administrative distance for internal BGP routes</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> <leafNode name="local"> <properties> <help>Administrative distance for local BGP routes</help> <valueHelp> <format>u32:1-255</format> <description>Administrative distance for internal BGP routes</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> </children> </node> <tagNode name="prefix"> <properties> <help>Administrative distance for a specific BGP prefix</help> <valueHelp> <format>ipv4net</format> <description>Administrative distance for a specific BGP prefix</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> </constraint> </properties> <children> <leafNode name="distance"> <properties> <help>Administrative distance for prefix</help> <valueHelp> <format>u32:1-255</format> <description>Administrative distance for external BGP routes</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> </leafNode> </children> </tagNode> </children> </node> <leafNode name="ebgp-requires-policy"> <properties> <help>Require in and out policy for eBGP peers (RFC8212)</help> <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> </properties> <children> <leafNode name="stalepath-time"> <properties> <help>Maximum time to hold onto restarting neighbors stale paths</help> <valueHelp> <format>u32:1-3600</format> <description>Hold time in seconds</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-3600"/> </constraint> </properties> </leafNode> </children> </node> <leafNode name="graceful-shutdown"> <properties> <help>Graceful shutdown</help> <valueless/> </properties> </leafNode> <leafNode name="no-hard-administrative-reset"> <properties> <help>Do not send hard reset CEASE Notification for 'Administrative Reset'</help> <valueless/> </properties> </leafNode> <leafNode name="labeled-unicast"> <properties> <help>BGP Labeled-unicast options</help> <completionHelp> <list>explicit-null ipv4-explicit-null ipv6-explicit-null</list> </completionHelp> <valueHelp> <format>explicit-null</format> <description>Use explicit-null label values for all local prefixes</description> </valueHelp> <valueHelp> <format>ipv4-explicit-null</format> <description>Use IPv4 explicit-null label value for IPv4 local prefixes</description> </valueHelp> <valueHelp> <format>ipv6-explicit-null</format> <description>Use IPv6 explicit-null label value for IPv4 local prefixes</description> </valueHelp> <constraint> <regex>(explicit-null|ipv4-explicit-null|ipv6-explicit-null)</regex> </constraint> </properties> </leafNode> <leafNode name="log-neighbor-changes"> <properties> <help>Log neighbor up/down changes and reset reason</help> <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> <valueless/> </properties> </leafNode> <leafNode name="route-reflector-allow-outbound-policy"> <properties> <help>Route reflector client allow policy outbound</help> <valueless/> </properties> </leafNode> <leafNode name="no-client-to-client-reflection"> <properties> <help>Disable client to client route reflection</help> <valueless/> </properties> </leafNode> <leafNode name="no-fast-external-failover"> <properties> <help>Disable immediate session reset on peer link down event</help> <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> <node name="tcp-keepalive"> <properties> <help>TCP keepalive parameters</help> </properties> <children> <leafNode name="idle"> <properties> <help>TCP keepalive idle time</help> <valueHelp> <format>u32:1-65535</format> <description>Idle time in seconds</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-65535"/> </constraint> </properties> </leafNode> <leafNode name="interval"> <properties> <help>TCP keepalive interval</help> <valueHelp> <format>u32:1-65535</format> <description>Interval in seconds</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-65535"/> </constraint> </properties> </leafNode> <leafNode name="probes"> <properties> <help>TCP keepalive maximum probes</help> <valueHelp> <format>u32:1-30</format> <description>Maximum probes</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-30"/> </constraint> </properties> </leafNode> </children> </node> </children> </node> <tagNode name="peer-group"> <properties> <help>Name of peer-group</help> <constraint> #include <include/constraint/alpha-numeric-hyphen-underscore.xml.i> </constraint> </properties> <children> <node name="address-family"> <properties> <help>Address-family parameters</help> </properties> <children> #include <include/bgp/neighbor-afi-ipv4-unicast.xml.i> #include <include/bgp/neighbor-afi-ipv4-labeled-unicast.xml.i> #include <include/bgp/neighbor-afi-ipv4-vpn.xml.i> #include <include/bgp/neighbor-afi-ipv6-unicast.xml.i> #include <include/bgp/neighbor-afi-ipv6-labeled-unicast.xml.i> #include <include/bgp/neighbor-afi-ipv6-vpn.xml.i> #include <include/bgp/neighbor-afi-l2vpn-evpn.xml.i> </children> </node> #include <include/generic-description.xml.i> #include <include/bgp/neighbor-bfd.xml.i> #include <include/bgp/neighbor-capability.xml.i> #include <include/bgp/neighbor-disable-capability-negotiation.xml.i> #include <include/bgp/neighbor-disable-connected-check.xml.i> #include <include/bgp/neighbor-ebgp-multihop.xml.i> #include <include/bgp/neighbor-graceful-restart.xml.i> #include <include/bgp/neighbor-graceful-restart.xml.i> #include <include/bgp/neighbor-local-as.xml.i> #include <include/bgp/neighbor-local-role.xml.i> #include <include/bgp/neighbor-override-capability.xml.i> #include <include/bgp/neighbor-path-attribute.xml.i> #include <include/bgp/neighbor-passive.xml.i> #include <include/bgp/neighbor-password.xml.i> #include <include/bgp/neighbor-shutdown.xml.i> #include <include/bgp/neighbor-ttl-security.xml.i> #include <include/bgp/neighbor-update-source.xml.i> #include <include/bgp/remote-as.xml.i> #include <include/port-number.xml.i> </children> </tagNode> <node name="srv6"> <properties> <help>Segment-Routing SRv6 configuration</help> </properties> <children> <leafNode name="locator"> <properties> <help>Specify SRv6 locator</help> <valueHelp> <format>txt</format> <description>SRv6 locator name</description> </valueHelp> <constraint> #include <include/constraint/alpha-numeric-hyphen-underscore.xml.i> </constraint> </properties> </leafNode> </children> </node> <node name="sid"> <properties> <help>SID value for VRF</help> </properties> <children> <node name="vpn"> <properties> <help>Between current VRF and VPN</help> </properties> <children> <node name="per-vrf"> <properties> <help>SID per-VRF (both IPv4 and IPv6 address families)</help> </properties> <children> <leafNode name="export"> <properties> <help>For routes leaked from current VRF to VPN</help> <completionHelp> <list>auto</list> </completionHelp> <valueHelp> <format>u32:1-1048575</format> <description>SID allocation index</description> </valueHelp> <valueHelp> <format>auto</format> <description>Automatically assign a label</description> </valueHelp> <constraint> <regex>auto</regex> <validator name="numeric" argument="--range 1-1048575"/> </constraint> </properties> </leafNode> </children> </node> </children> </node> </children> </node> <node name="timers"> <properties> <help>BGP protocol timers</help> </properties> <children> #include <include/bgp/timers-holdtime.xml.i> #include <include/bgp/timers-keepalive.xml.i> </children> </node> <!-- include end --> diff --git a/interface-definitions/include/generic-interface-broadcast.xml.i b/interface-definitions/include/generic-interface-broadcast.xml.i index e37e75012..52a4a2717 100644 --- a/interface-definitions/include/generic-interface-broadcast.xml.i +++ b/interface-definitions/include/generic-interface-broadcast.xml.i @@ -1,17 +1,17 @@ <!-- include start from generic-interface-broadcast.xml.i --> <leafNode name="interface"> <properties> - <help>Interface to use</help> + <help>Interface</help> <completionHelp> <script>${vyos_completion_dir}/list_interfaces --broadcast</script> </completionHelp> <valueHelp> <format>txt</format> <description>Interface name</description> </valueHelp> <constraint> #include <include/constraint/interface-name.xml.i> </constraint> </properties> </leafNode> <!-- include end --> diff --git a/interface-definitions/include/generic-interface-multi-broadcast.xml.i b/interface-definitions/include/generic-interface-multi-broadcast.xml.i index ed13cf2cf..65ca1ffab 100644 --- a/interface-definitions/include/generic-interface-multi-broadcast.xml.i +++ b/interface-definitions/include/generic-interface-multi-broadcast.xml.i @@ -1,18 +1,18 @@ <!-- include start from generic-interface-multi-broadcast.xml.i --> <leafNode name="interface"> <properties> - <help>Interface to use</help> + <help>Interface</help> <completionHelp> <script>${vyos_completion_dir}/list_interfaces --broadcast</script> </completionHelp> <valueHelp> <format>txt</format> <description>Interface name</description> </valueHelp> <constraint> #include <include/constraint/interface-name.xml.i> </constraint> <multi/> </properties> </leafNode> <!-- include end --> diff --git a/interface-definitions/include/generic-interface-multi-wildcard.xml.i b/interface-definitions/include/generic-interface-multi-wildcard.xml.i index 6c846a795..cd65028ac 100644 --- a/interface-definitions/include/generic-interface-multi-wildcard.xml.i +++ b/interface-definitions/include/generic-interface-multi-wildcard.xml.i @@ -1,18 +1,18 @@ <!-- include start from generic-interface-multi-wildcard.xml.i --> <leafNode name="interface"> <properties> - <help>Interface to use</help> + <help>Interface</help> <completionHelp> <script>${vyos_completion_dir}/list_interfaces</script> </completionHelp> <valueHelp> <format>txt</format> <description>Interface name, wildcard (*) supported</description> </valueHelp> <constraint> #include <include/constraint/interface-name-with-wildcard.xml.i> </constraint> <multi/> </properties> </leafNode> <!-- include end --> diff --git a/interface-definitions/include/generic-interface-multi.xml.i b/interface-definitions/include/generic-interface-multi.xml.i index cfc77af3a..a4329cba7 100644 --- a/interface-definitions/include/generic-interface-multi.xml.i +++ b/interface-definitions/include/generic-interface-multi.xml.i @@ -1,18 +1,18 @@ <!-- include start from generic-interface-multi.xml.i --> <leafNode name="interface"> <properties> - <help>Interface to use</help> + <help>Interface</help> <completionHelp> <script>${vyos_completion_dir}/list_interfaces</script> </completionHelp> <valueHelp> <format>txt</format> <description>Interface name</description> </valueHelp> <constraint> #include <include/constraint/interface-name.xml.i> </constraint> <multi/> </properties> </leafNode> <!-- include end --> diff --git a/interface-definitions/include/generic-interface.xml.i b/interface-definitions/include/generic-interface.xml.i index 65f5bfbb8..cf6fb9151 100644 --- a/interface-definitions/include/generic-interface.xml.i +++ b/interface-definitions/include/generic-interface.xml.i @@ -1,17 +1,17 @@ <!-- include start from generic-interface.xml.i --> <leafNode name="interface"> <properties> - <help>Interface to use</help> + <help>Interface</help> <completionHelp> <script>${vyos_completion_dir}/list_interfaces</script> </completionHelp> <valueHelp> <format>txt</format> <description>Interface name</description> </valueHelp> <constraint> #include <include/constraint/interface-name.xml.i> </constraint> </properties> </leafNode> <!-- include end --> diff --git a/interface-definitions/include/static/static-route-interface.xml.i b/interface-definitions/include/static/static-route-interface.xml.i deleted file mode 100644 index cb5436847..000000000 --- a/interface-definitions/include/static/static-route-interface.xml.i +++ /dev/null @@ -1,17 +0,0 @@ -<!-- include start from static/static-route-interface.xml.i --> -<leafNode name="interface"> - <properties> - <help>Gateway interface name</help> - <completionHelp> - <script>${vyos_completion_dir}/list_interfaces</script> - </completionHelp> - <valueHelp> - <format>txt</format> - <description>Gateway interface name</description> - </valueHelp> - <constraint> - #include <include/constraint/interface-name.xml.i> - </constraint> - </properties> -</leafNode> -<!-- include end --> diff --git a/interface-definitions/include/static/static-route.xml.i b/interface-definitions/include/static/static-route.xml.i index fd7366286..c261874f5 100644 --- a/interface-definitions/include/static/static-route.xml.i +++ b/interface-definitions/include/static/static-route.xml.i @@ -1,74 +1,74 @@ <!-- include start from static/static-route.xml.i --> <tagNode name="route"> <properties> <help>Static IPv4 route</help> <valueHelp> <format>ipv4net</format> <description>IPv4 static route</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> </constraint> </properties> <children> #include <include/static/static-route-blackhole.xml.i> #include <include/static/static-route-reject.xml.i> #include <include/dhcp-interface-multi.xml.i> #include <include/generic-description.xml.i> <tagNode name="interface"> <properties> <help>Next-hop IPv4 router interface</help> <completionHelp> <script>${vyos_completion_dir}/list_interfaces</script> </completionHelp> <valueHelp> <format>txt</format> <description>Gateway interface name</description> </valueHelp> <constraint> #include <include/constraint/interface-name.xml.i> </constraint> </properties> <children> #include <include/generic-disable-node.xml.i> #include <include/static/static-route-distance.xml.i> #include <include/static/static-route-vrf.xml.i> </children> </tagNode> <tagNode name="next-hop"> <properties> <help>Next-hop IPv4 router address</help> <valueHelp> <format>ipv4</format> <description>Next-hop router address</description> </valueHelp> <constraint> <validator name="ipv4-address"/> </constraint> </properties> <children> #include <include/generic-disable-node.xml.i> #include <include/static/static-route-distance.xml.i> - #include <include/static/static-route-interface.xml.i> + #include <include/generic-interface.xml.i> #include <include/static/static-route-vrf.xml.i> <node name="bfd"> <properties> <help>BFD monitoring</help> </properties> <children> #include <include/bfd/profile.xml.i> <node name="multi-hop"> <properties> <help>Configure BFD multi-hop session</help> </properties> <children> #include <include/source-address-ipv4.xml.i> </children> </node> </children> </node> </children> </tagNode> </children> </tagNode> <!-- include end --> diff --git a/interface-definitions/include/static/static-route6.xml.i b/interface-definitions/include/static/static-route6.xml.i index 6fcc18b8a..a3d972d39 100644 --- a/interface-definitions/include/static/static-route6.xml.i +++ b/interface-definitions/include/static/static-route6.xml.i @@ -1,75 +1,75 @@ <!-- include start from static/static-route6.xml.i --> <tagNode name="route6"> <properties> <help>Static IPv6 route</help> <valueHelp> <format>ipv6net</format> <description>IPv6 static route</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> <children> #include <include/static/static-route-blackhole.xml.i> #include <include/static/static-route-reject.xml.i> #include <include/generic-description.xml.i> <tagNode name="interface"> <properties> <help>IPv6 gateway interface name</help> <completionHelp> <script>${vyos_completion_dir}/list_interfaces</script> </completionHelp> <valueHelp> <format>txt</format> <description>Gateway interface name</description> </valueHelp> <constraint> #include <include/constraint/interface-name.xml.i> </constraint> </properties> <children> #include <include/generic-disable-node.xml.i> #include <include/static/static-route-distance.xml.i> #include <include/static/static-route-segments.xml.i> #include <include/static/static-route-vrf.xml.i> </children> </tagNode> <tagNode name="next-hop"> <properties> <help>IPv6 gateway address</help> <valueHelp> <format>ipv6</format> <description>Next-hop IPv6 router</description> </valueHelp> <constraint> <validator name="ipv6-address"/> </constraint> </properties> <children> #include <include/generic-disable-node.xml.i> #include <include/static/static-route-distance.xml.i> - #include <include/static/static-route-interface.xml.i> + #include <include/generic-interface.xml.i> #include <include/static/static-route-segments.xml.i> #include <include/static/static-route-vrf.xml.i> <node name="bfd"> <properties> <help>BFD monitoring</help> </properties> <children> #include <include/bfd/profile.xml.i> <node name="multi-hop"> <properties> <help>Configure BFD multi-hop session</help> </properties> <children> #include <include/source-address-ipv6.xml.i> </children> </node> </children> </node> </children> </tagNode> </children> </tagNode> <!-- include end --> diff --git a/interface-definitions/protocols_failover.xml.in b/interface-definitions/protocols_failover.xml.in index f70975949..fae9be76a 100644 --- a/interface-definitions/protocols_failover.xml.in +++ b/interface-definitions/protocols_failover.xml.in @@ -1,141 +1,141 @@ <?xml version="1.0"?> <interfaceDefinition> <node name="protocols"> <children> <node name="failover" owner="${vyos_conf_scripts_dir}/protocols_failover.py"> <properties> <help>Failover Routing</help> <priority>490</priority> </properties> <children> <tagNode name="route"> <properties> <help>Failover IPv4 route</help> <valueHelp> <format>ipv4net</format> <description>IPv4 failover route</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> </constraint> </properties> <children> <tagNode name="next-hop"> <properties> <help>Next-hop IPv4 router address</help> <valueHelp> <format>ipv4</format> <description>Next-hop router address</description> </valueHelp> <constraint> <validator name="ipv4-address"/> </constraint> </properties> <children> <node name="check"> <properties> <help>Check target options</help> </properties> <children> <leafNode name="policy"> <properties> <help>Policy for check targets</help> <completionHelp> <list>any-available all-available</list> </completionHelp> <valueHelp> <format>all-available</format> <description>All targets must be alive</description> </valueHelp> <valueHelp> <format>any-available</format> <description>Any target must be alive</description> </valueHelp> <constraint> <regex>(all-available|any-available)</regex> </constraint> </properties> <defaultValue>any-available</defaultValue> </leafNode> #include <include/port-number.xml.i> <leafNode name="target"> <properties> <help>Check target address</help> <valueHelp> <format>ipv4</format> <description>Address to check</description> </valueHelp> <constraint> <validator name="ipv4-address"/> </constraint> <multi/> </properties> </leafNode> <leafNode name="timeout"> <properties> <help>Timeout between checks</help> <valueHelp> <format>u32:1-300</format> <description>Timeout in seconds between checks</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> <defaultValue>10</defaultValue> </leafNode> <leafNode name="type"> <properties> <help>Check type</help> <completionHelp> <list>arp icmp tcp</list> </completionHelp> <valueHelp> <format>arp</format> <description>Check target by ARP</description> </valueHelp> <valueHelp> <format>icmp</format> <description>Check target by ICMP</description> </valueHelp> <valueHelp> <format>tcp</format> <description>Check target by TCP</description> </valueHelp> <constraint> <regex>(arp|icmp|tcp)</regex> </constraint> </properties> <defaultValue>icmp</defaultValue> </leafNode> </children> </node> - #include <include/static/static-route-interface.xml.i> + #include <include/generic-interface.xml.i> <leafNode name="metric"> <properties> <help>Route metric for this gateway</help> <valueHelp> <format>u32:1-255</format> <description>Route metric</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-255"/> </constraint> </properties> <defaultValue>1</defaultValue> </leafNode> <leafNode name="onlink"> <properties> <help>The next hop is directly connected to the interface, even if it does not match interface prefix</help> <valueless/> </properties> </leafNode> </children> </tagNode> </children> </tagNode> </children> </node> </children> </node> </interfaceDefinition> diff --git a/interface-definitions/service_dhcpv6-server.xml.in b/interface-definitions/service_dhcpv6-server.xml.in index cf14388e8..a6763a345 100644 --- a/interface-definitions/service_dhcpv6-server.xml.in +++ b/interface-definitions/service_dhcpv6-server.xml.in @@ -1,317 +1,289 @@ <?xml version="1.0"?> <interfaceDefinition> <node name="service"> <children> <node name="dhcpv6-server" owner="${vyos_conf_scripts_dir}/service_dhcpv6-server.py"> <properties> <help>DHCP for IPv6 (DHCPv6) server</help> <priority>900</priority> </properties> <children> #include <include/generic-disable-node.xml.i> #include <include/listen-interface-multi-broadcast.xml.i> <leafNode name="disable-route-autoinstall"> <properties> <help>Do not install routes for delegated prefixes</help> <valueless/> </properties> </leafNode> <node name="global-parameters"> <properties> <help>Additional global parameters for DHCPv6 server</help> </properties> <children> #include <include/name-server-ipv6.xml.i> </children> </node> <leafNode name="preference"> <properties> <help>Preference of this DHCPv6 server compared with others</help> <valueHelp> <format>u32:0-255</format> <description>DHCPv6 server preference (0-255)</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 0-255"/> </constraint> <constraintErrorMessage>Preference must be between 0 and 255</constraintErrorMessage> </properties> </leafNode> <tagNode name="shared-network-name"> <properties> <help>DHCPv6 shared network name</help> <constraint> #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i> </constraint> <constraintErrorMessage>Invalid DHCPv6 shared network name. May only contain letters, numbers and .-_</constraintErrorMessage> </properties> <children> #include <include/generic-disable-node.xml.i> #include <include/generic-description.xml.i> - <leafNode name="interface"> - <properties> - <help>Optional interface for this shared network to accept requests from</help> - <completionHelp> - <script>${vyos_completion_dir}/list_interfaces</script> - </completionHelp> - <valueHelp> - <format>txt</format> - <description>Interface name</description> - </valueHelp> - <constraint> - #include <include/constraint/interface-name.xml.i> - </constraint> - </properties> - </leafNode> + #include <include/generic-interface.xml.i> #include <include/dhcp/option-v6.xml.i> <tagNode name="subnet"> <properties> <help>IPv6 DHCP subnet for this shared network</help> <valueHelp> <format>ipv6net</format> <description>IPv6 address and prefix length</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> <children> #include <include/dhcp/option-v6.xml.i> - <leafNode name="interface"> - <properties> - <help>Optional interface for this subnet to accept requests from</help> - <completionHelp> - <script>${vyos_completion_dir}/list_interfaces</script> - </completionHelp> - <valueHelp> - <format>txt</format> - <description>Interface name</description> - </valueHelp> - <constraint> - #include <include/constraint/interface-name.xml.i> - </constraint> - </properties> - </leafNode> + #include <include/generic-interface.xml.i> <tagNode name="range"> <properties> <help>Parameters setting ranges for assigning IPv6 addresses</help> <constraint> #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i> </constraint> <constraintErrorMessage>Invalid range name, may only be alphanumeric, dot and hyphen</constraintErrorMessage> </properties> <children> #include <include/dhcp/option-v6.xml.i> <leafNode name="prefix"> <properties> <help>IPv6 prefix defining range of addresses to assign</help> <valueHelp> <format>ipv6net</format> <description>IPv6 address and prefix length</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> </leafNode> <leafNode name="start"> <properties> <help>First in range of consecutive IPv6 addresses to assign</help> <valueHelp> <format>ipv6</format> <description>IPv6 address</description> </valueHelp> <constraint> <validator name="ipv6-address"/> </constraint> </properties> </leafNode> <leafNode name="stop"> <properties> <help>Last in range of consecutive IPv6 addresses</help> <valueHelp> <format>ipv6</format> <description>IPv6 address</description> </valueHelp> <constraint> <validator name="ipv6-address"/> </constraint> </properties> </leafNode> </children> </tagNode> <node name="lease-time"> <properties> <help>Parameters relating to the lease time</help> </properties> <children> <leafNode name="default"> <properties> <help>Default time (in seconds) that will be assigned to a lease</help> <valueHelp> <format>u32:1-4294967295</format> <description>DHCPv6 valid lifetime</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-4294967295"/> </constraint> </properties> </leafNode> <leafNode name="maximum"> <properties> <help>Maximum time (in seconds) that will be assigned to a lease</help> <valueHelp> <format>u32:1-4294967295</format> <description>Maximum lease time in seconds</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-4294967295"/> </constraint> </properties> </leafNode> <leafNode name="minimum"> <properties> <help>Minimum time (in seconds) that will be assigned to a lease</help> <valueHelp> <format>u32:1-4294967295</format> <description>Minimum lease time in seconds</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-4294967295"/> </constraint> </properties> </leafNode> </children> </node> <node name="prefix-delegation"> <properties> <help>Parameters relating to IPv6 prefix delegation</help> </properties> <children> <tagNode name="prefix"> <properties> <help>IPv6 prefix to be used in prefix delegation</help> <valueHelp> <format>ipv6</format> <description>IPv6 prefix used in prefix delegation</description> </valueHelp> <constraint> <validator name="ipv6-address"/> </constraint> </properties> <children> <leafNode name="prefix-length"> <properties> <help>Length in bits of prefix</help> <valueHelp> <format>u32:32-64</format> <description>Prefix length (32-64)</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 32-64"/> </constraint> <constraintErrorMessage>Prefix length must be between 32 and 64</constraintErrorMessage> </properties> </leafNode> <leafNode name="delegated-length"> <properties> <help>Length in bits of prefixes to be delegated</help> <valueHelp> <format>u32:32-64</format> <description>Delegated prefix length (32-64)</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 32-96"/> </constraint> <constraintErrorMessage>Delegated prefix length must be between 32 and 96</constraintErrorMessage> </properties> </leafNode> <leafNode name="excluded-prefix"> <properties> <help>IPv6 prefix to be excluded from prefix delegation</help> <valueHelp> <format>ipv6</format> <description>IPv6 prefix excluded from prefix delegation</description> </valueHelp> <constraint> <validator name="ipv6-address"/> </constraint> </properties> </leafNode> <leafNode name="excluded-prefix-length"> <properties> <help>Length in bits of excluded prefix</help> <valueHelp> <format>u32:33-64</format> <description>Excluded prefix length (33-128)</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 33-128"/> </constraint> <constraintErrorMessage>Prefix length must be between 33 and 128</constraintErrorMessage> </properties> </leafNode> </children> </tagNode> </children> </node> <tagNode name="static-mapping"> <properties> <help>Hostname for static mapping reservation</help> <constraint> <validator name="fqdn"/> </constraint> <constraintErrorMessage>Invalid static mapping hostname</constraintErrorMessage> </properties> <children> #include <include/dhcp/option-v6.xml.i> #include <include/generic-disable-node.xml.i> #include <include/interface/mac.xml.i> #include <include/interface/duid.xml.i> <leafNode name="ipv6-address"> <properties> <help>Client IPv6 address for this static mapping</help> <valueHelp> <format>ipv6</format> <description>IPv6 address for this static mapping</description> </valueHelp> <constraint> <validator name="ipv6-address"/> </constraint> </properties> </leafNode> <leafNode name="ipv6-prefix"> <properties> <help>Client IPv6 prefix for this static mapping</help> <valueHelp> <format>ipv6net</format> <description>IPv6 prefix for this static mapping</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> </leafNode> </children> </tagNode> <leafNode name="subnet-id"> <properties> <help>Unique ID mapped to leases in the lease file</help> <valueHelp> <format>u32</format> <description>Unique subnet ID</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 1-4294967295"/> </constraint> </properties> </leafNode> </children> </tagNode> </children> </tagNode> </children> </node> </children> </node> </interfaceDefinition> diff --git a/interface-definitions/service_ndp-proxy.xml.in b/interface-definitions/service_ndp-proxy.xml.in index aabba3f4e..327ce89d5 100644 --- a/interface-definitions/service_ndp-proxy.xml.in +++ b/interface-definitions/service_ndp-proxy.xml.in @@ -1,133 +1,123 @@ <?xml version="1.0"?> <interfaceDefinition> <node name="service"> <children> <node name="ndp-proxy" owner="${vyos_conf_scripts_dir}/service_ndp-proxy.py"> <properties> <help>Neighbor Discovery Protocol (NDP) Proxy</help> <priority>600</priority> </properties> <children> <leafNode name="route-refresh"> <properties> <help>Refresh interval for IPv6 routes</help> <valueHelp> <format>u32:10000-120000</format> <description>Time in milliseconds</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 10000-120000"/> </constraint> <constraintErrorMessage>Route-refresh must be between 10000 and 120000 milliseconds</constraintErrorMessage> </properties> <defaultValue>30000</defaultValue> </leafNode> <tagNode name="interface"> <properties> <help>NDP proxy listener interface</help> <completionHelp> <script>${vyos_completion_dir}/list_interfaces</script> </completionHelp> <constraint> #include <include/constraint/interface-name.xml.i> </constraint> </properties> <children> #include <include/generic-disable-node.xml.i> <leafNode name="enable-router-bit"> <properties> <help>Enable router bit in Neighbor Advertisement messages</help> <valueless/> </properties> </leafNode> <leafNode name="timeout"> <properties> <help>Timeout for Neighbor Advertisement after Neighbor Solicitation message</help> <valueHelp> <format>u32:500-120000</format> <description>Timeout in milliseconds</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 500-120000"/> </constraint> <constraintErrorMessage>Timeout must be between 500 and 120000 milliseconds</constraintErrorMessage> </properties> <defaultValue>500</defaultValue> </leafNode> <leafNode name="ttl"> <properties> <help>Proxy entry cache Time-To-Live</help> <valueHelp> <format>u32:10000-120000</format> <description>Time in milliseconds</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 10000-120000"/> </constraint> <constraintErrorMessage>TTL must be between 10000 and 120000 milliseconds</constraintErrorMessage> </properties> <defaultValue>30000</defaultValue> </leafNode> <tagNode name="prefix"> <properties> <help>Prefix target addresses are matched against</help> <valueHelp> <format>ipv6net</format> <description>IPv6 network prefix</description> </valueHelp> <valueHelp> <format>ipv6</format> <description>IPv6 address</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> <validator name="ipv6-address"/> </constraint> </properties> <children> #include <include/generic-disable-node.xml.i> <leafNode name="mode"> <properties> <help>Specify the running mode of the rule</help> <completionHelp> <list>static auto interface</list> </completionHelp> <valueHelp> <format>static</format> <description>Immediately answer any Neighbor Solicitation Messages</description> </valueHelp> <valueHelp> <format>auto</format> <description>Check for a matching route in /proc/net/ipv6_route</description> </valueHelp> <valueHelp> <format>interface</format> <description>Forward Neighbor Solicitation message through specified interface</description> </valueHelp> <constraint> <regex>(static|auto|interface)</regex> </constraint> <constraintErrorMessage>Mode must be either one of: static, auto or interface</constraintErrorMessage> </properties> <defaultValue>static</defaultValue> </leafNode> - <leafNode name="interface"> - <properties> - <help>Interface to forward Neighbor Solicitation message through. Required for "iface" mode</help> - <completionHelp> - <script>${vyos_completion_dir}/list_interfaces</script> - </completionHelp> - <constraint> - #include <include/constraint/interface-name.xml.i> - </constraint> - </properties> - </leafNode> + #include <include/generic-interface.xml.i> </children> </tagNode> </children> </tagNode> </children> </node> </children> </node> </interfaceDefinition>