diff options
| author | Daniil Baturin <daniil@vyos.io> | 2025-10-08 17:04:19 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-08 17:04:19 +0100 |
| commit | 1c181499a3af4b6c170d3fea2b96af58bb0a34a7 (patch) | |
| tree | 44498595ab266f4e569b50db786fc42e90a6b72b /interface-definitions | |
| parent | fc178aaf00f7a9dc4589567ae3e17cb9718d9ad3 (diff) | |
| parent | 931e5b5712b4fa8b13027291eb21881c40b8a051 (diff) | |
| download | vyos-1x-1c181499a3af4b6c170d3fea2b96af58bb0a34a7.tar.gz vyos-1x-1c181499a3af4b6c170d3fea2b96af58bb0a34a7.zip | |
Merge pull request #4749 from hedrok/T7803-failover-vrf
T7803: Make failover route vrf-aware
Diffstat (limited to 'interface-definitions')
| -rw-r--r-- | interface-definitions/include/failover/protocol-common-config.xml.i | 131 | ||||
| -rw-r--r-- | interface-definitions/protocols_failover.xml.in | 127 | ||||
| -rw-r--r-- | interface-definitions/vrf.xml.in | 9 |
3 files changed, 141 insertions, 126 deletions
diff --git a/interface-definitions/include/failover/protocol-common-config.xml.i b/interface-definitions/include/failover/protocol-common-config.xml.i new file mode 100644 index 000000000..a106fdc74 --- /dev/null +++ b/interface-definitions/include/failover/protocol-common-config.xml.i @@ -0,0 +1,131 @@ +<!-- include start from failover/protocol-common-config.xml.i --> +<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> + <tagNode name="target"> + <properties> + <help>Check target address</help> + <valueHelp> + <format>ipv4</format> + <description>Address to check</description> + </valueHelp> + <constraint> + <validator name="ipv4-address"/> + </constraint> + </properties> + <children> + #include <include/interface/vrf.xml.i> + #include <include/generic-interface.xml.i> + </children> + </tagNode> + <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/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> +<!-- include end --> diff --git a/interface-definitions/protocols_failover.xml.in b/interface-definitions/protocols_failover.xml.in index fae9be76a..0f8a3b2ad 100644 --- a/interface-definitions/protocols_failover.xml.in +++ b/interface-definitions/protocols_failover.xml.in @@ -8,132 +8,7 @@ <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/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> + #include <include/failover/protocol-common-config.xml.i> </children> </node> </children> diff --git a/interface-definitions/vrf.xml.in b/interface-definitions/vrf.xml.in index 3fa95076e..0adbeadd9 100644 --- a/interface-definitions/vrf.xml.in +++ b/interface-definitions/vrf.xml.in @@ -114,6 +114,15 @@ #include <include/static/static-route6.xml.i> </children> </node> + <node name="failover" owner="${vyos_conf_scripts_dir}/protocols_failover.py $VAR(../../@)"> + <properties> + <help>Failover Routing</help> + <priority>491</priority> + </properties> + <children> + #include <include/failover/protocol-common-config.xml.i> + </children> + </node> </children> </node> <node name="service"> |
