summaryrefslogtreecommitdiff
path: root/interface-definitions/include
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2026-10-14 18:16:45 +0100
committerGitHub <noreply@github.com>2026-10-14 18:16:45 +0100
commite96e646f030f4ee6835b1ebbdca0640f0440f0d0 (patch)
treecc2e505b83991ec6e2652e46d60adc200650d2b4 /interface-definitions/include
parentb75c60f0602723122f0f45a7da8d6b45c4765edf (diff)
parent0b43a668ac1fdbc5149616f5065279bbce9a02c8 (diff)
downloadvyos-1x-e96e646f030f4ee6835b1ebbdca0640f0440f0d0.tar.gz
vyos-1x-e96e646f030f4ee6835b1ebbdca0640f0440f0d0.zip
Merge pull request #5478 from jestabro/rdep-interface
T7886: add a general method for verifying interface reverse dependencies
Diffstat (limited to 'interface-definitions/include')
-rw-r--r--interface-definitions/include/constraint/dependent-error-interface-name.xml.i7
-rw-r--r--interface-definitions/include/constraint/dependent-warning-interface-name.xml.i7
-rw-r--r--interface-definitions/include/dependent-error-generic-interface-multi.xml.i19
-rw-r--r--interface-definitions/include/dependent-error-generic-interface.xml.i18
-rw-r--r--interface-definitions/include/dependent-error-source-interface.xml.i18
-rw-r--r--interface-definitions/include/dependent-warning-generic-interface-multi-broadcast.xml.i19
-rw-r--r--interface-definitions/include/dependent-warning-generic-interface-multi.xml.i19
-rw-r--r--interface-definitions/include/dependent-warning-source-interface.xml.i18
-rw-r--r--interface-definitions/include/interface/dependent-error-inbound-interface.xml.i11
-rw-r--r--interface-definitions/include/interface/vif-s.xml.i2
-rw-r--r--interface-definitions/include/interface/vif.xml.i1
-rw-r--r--interface-definitions/include/isis/protocol-common-config.xml.i1
-rw-r--r--interface-definitions/include/ospf/protocol-common-config.xml.i4
-rw-r--r--interface-definitions/include/ospfv3/protocol-common-config.xml.i4
14 files changed, 142 insertions, 6 deletions
diff --git a/interface-definitions/include/constraint/dependent-error-interface-name.xml.i b/interface-definitions/include/constraint/dependent-error-interface-name.xml.i
new file mode 100644
index 000000000..ec4d524f4
--- /dev/null
+++ b/interface-definitions/include/constraint/dependent-error-interface-name.xml.i
@@ -0,0 +1,7 @@
+<!-- include start from constraint/dependent-error-interface-name.xml.i -->
+<constraint>
+ <regex>(bond|br|dum|en|ersp|eth|gnv|ifb|ipoe|lan|l2tp|l2tpeth|macsec|peth|ppp|pppoe|pptp|sstp|sstpc|tun|veth|vpptap|vpptun|vti|vtun|vxlan|wg|wlan|wwan)[0-9]+(.\d+)?|pod-[-_a-zA-Z0-9]{1,11}|lo</regex>
+ <validator name="interface-exists"/>
+</constraint>
+<dependency kind="interface" alert="error"/>
+<!-- include end -->
diff --git a/interface-definitions/include/constraint/dependent-warning-interface-name.xml.i b/interface-definitions/include/constraint/dependent-warning-interface-name.xml.i
new file mode 100644
index 000000000..bc646c3c9
--- /dev/null
+++ b/interface-definitions/include/constraint/dependent-warning-interface-name.xml.i
@@ -0,0 +1,7 @@
+<!-- include start from constraint/dependent-warning-interface-name.xml.i -->
+<constraint>
+ <regex>(bond|br|dum|en|ersp|eth|gnv|ifb|ipoe|lan|l2tp|l2tpeth|macsec|peth|ppp|pppoe|pptp|sstp|sstpc|tun|veth|vpptap|vpptun|vti|vtun|vxlan|wg|wlan|wwan)[0-9]+(.\d+)?|pod-[-_a-zA-Z0-9]{1,11}|lo</regex>
+ <validator name="interface-exists"/>
+</constraint>
+<dependency kind="interface" alert="warning"/>
+<!-- include end -->
diff --git a/interface-definitions/include/dependent-error-generic-interface-multi.xml.i b/interface-definitions/include/dependent-error-generic-interface-multi.xml.i
new file mode 100644
index 000000000..c5dd26267
--- /dev/null
+++ b/interface-definitions/include/dependent-error-generic-interface-multi.xml.i
@@ -0,0 +1,19 @@
+<!-- include start from dependent-error-generic-interface-multi.xml.i -->
+<leafNode name="interface">
+ <properties>
+ <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/>
+ <dependency kind="interface" alert="error"/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/dependent-error-generic-interface.xml.i b/interface-definitions/include/dependent-error-generic-interface.xml.i
new file mode 100644
index 000000000..c48e728c8
--- /dev/null
+++ b/interface-definitions/include/dependent-error-generic-interface.xml.i
@@ -0,0 +1,18 @@
+<!-- include start from dependent-error-generic-interface.xml.i -->
+<leafNode name="interface">
+ <properties>
+ <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>
+ <dependency kind="interface" alert="error"/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/dependent-error-source-interface.xml.i b/interface-definitions/include/dependent-error-source-interface.xml.i
new file mode 100644
index 000000000..b3c23f64e
--- /dev/null
+++ b/interface-definitions/include/dependent-error-source-interface.xml.i
@@ -0,0 +1,18 @@
+<!-- include start from dependent-error-source-interface.xml.i -->
+<leafNode name="source-interface">
+ <properties>
+ <help>Interface used to establish connection</help>
+ <valueHelp>
+ <format>interface</format>
+ <description>Interface name</description>
+ </valueHelp>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces</script>
+ </completionHelp>
+ <constraint>
+ #include <include/constraint/interface-name.xml.i>
+ </constraint>
+ <dependency kind="interface" alert="error"/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/dependent-warning-generic-interface-multi-broadcast.xml.i b/interface-definitions/include/dependent-warning-generic-interface-multi-broadcast.xml.i
new file mode 100644
index 000000000..22f6b6552
--- /dev/null
+++ b/interface-definitions/include/dependent-warning-generic-interface-multi-broadcast.xml.i
@@ -0,0 +1,19 @@
+<!-- include start from dependent-warning-generic-interface-multi-broadcast.xml.i -->
+<leafNode name="interface">
+ <properties>
+ <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/>
+ <dependency kind="interface" alert="warning"/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/dependent-warning-generic-interface-multi.xml.i b/interface-definitions/include/dependent-warning-generic-interface-multi.xml.i
new file mode 100644
index 000000000..bd4b9ea93
--- /dev/null
+++ b/interface-definitions/include/dependent-warning-generic-interface-multi.xml.i
@@ -0,0 +1,19 @@
+<!-- include start from dependent-warning-generic-interface-multi.xml.i -->
+<leafNode name="interface">
+ <properties>
+ <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/>
+ <dependency kind="interface" alert="warning"/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/dependent-warning-source-interface.xml.i b/interface-definitions/include/dependent-warning-source-interface.xml.i
new file mode 100644
index 000000000..164135f2f
--- /dev/null
+++ b/interface-definitions/include/dependent-warning-source-interface.xml.i
@@ -0,0 +1,18 @@
+<!-- include start from dependent-warning-source-interface.xml.i -->
+<leafNode name="source-interface">
+ <properties>
+ <help>Interface used to establish connection</help>
+ <valueHelp>
+ <format>interface</format>
+ <description>Interface name</description>
+ </valueHelp>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces</script>
+ </completionHelp>
+ <constraint>
+ #include <include/constraint/interface-name.xml.i>
+ </constraint>
+ <dependency kind="interface" alert="warning"/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/dependent-error-inbound-interface.xml.i b/interface-definitions/include/interface/dependent-error-inbound-interface.xml.i
new file mode 100644
index 000000000..e1c79feb0
--- /dev/null
+++ b/interface-definitions/include/interface/dependent-error-inbound-interface.xml.i
@@ -0,0 +1,11 @@
+<!-- include start from interface/dependent-error-inbound-interface.xml.i -->
+<leafNode name="inbound-interface">
+ <properties>
+ <help>Inbound Interface</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces</script>
+ </completionHelp>
+ <dependency kind="interface" alert="error"/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/vif-s.xml.i b/interface-definitions/include/interface/vif-s.xml.i
index 65ca10207..e07a9bf8a 100644
--- a/interface-definitions/include/interface/vif-s.xml.i
+++ b/interface-definitions/include/interface/vif-s.xml.i
@@ -10,6 +10,7 @@
<validator name="numeric" argument="--range 0-4094"/>
</constraint>
<constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
+ <kind>interface</kind>
</properties>
<children>
#include <include/generic-description.xml.i>
@@ -32,6 +33,7 @@
<validator name="numeric" argument="--range 0-4094"/>
</constraint>
<constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
+ <kind>interface</kind>
</properties>
<children>
#include <include/generic-description.xml.i>
diff --git a/interface-definitions/include/interface/vif.xml.i b/interface-definitions/include/interface/vif.xml.i
index 87f91c5ce..e9b9385f1 100644
--- a/interface-definitions/include/interface/vif.xml.i
+++ b/interface-definitions/include/interface/vif.xml.i
@@ -10,6 +10,7 @@
<validator name="numeric" argument="--range 0-4094"/>
</constraint>
<constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
+ <kind>interface</kind>
</properties>
<children>
#include <include/generic-description.xml.i>
diff --git a/interface-definitions/include/isis/protocol-common-config.xml.i b/interface-definitions/include/isis/protocol-common-config.xml.i
index 6a7388c99..d0424ea4f 100644
--- a/interface-definitions/include/isis/protocol-common-config.xml.i
+++ b/interface-definitions/include/isis/protocol-common-config.xml.i
@@ -719,6 +719,7 @@
<completionHelp>
<script>${vyos_completion_dir}/list_interfaces</script>
</completionHelp>
+ <dependency kind="interface" alert="error"/>
</properties>
<children>
#include <include/bfd/bfd.xml.i>
diff --git a/interface-definitions/include/ospf/protocol-common-config.xml.i b/interface-definitions/include/ospf/protocol-common-config.xml.i
index 93d718ed4..caef8abb4 100644
--- a/interface-definitions/include/ospf/protocol-common-config.xml.i
+++ b/interface-definitions/include/ospf/protocol-common-config.xml.i
@@ -406,9 +406,7 @@
<format>txt</format>
<description>Interface name</description>
</valueHelp>
- <constraint>
- #include <include/constraint/interface-name.xml.i>
- </constraint>
+ #include <include/constraint/dependent-error-interface-name.xml.i>
</properties>
<children>
<leafNode name="area">
diff --git a/interface-definitions/include/ospfv3/protocol-common-config.xml.i b/interface-definitions/include/ospfv3/protocol-common-config.xml.i
index 72fb86d3d..e6d3b23b8 100644
--- a/interface-definitions/include/ospfv3/protocol-common-config.xml.i
+++ b/interface-definitions/include/ospfv3/protocol-common-config.xml.i
@@ -132,9 +132,7 @@
<format>txt</format>
<description>Interface used for routing information exchange</description>
</valueHelp>
- <constraint>
- #include <include/constraint/interface-name.xml.i>
- </constraint>
+ #include <include/constraint/dependent-error-interface-name.xml.i>
</properties>
<children>
<leafNode name="area">