From df7c3fc0017fb27d2945ac2818ac2d5fc343ca37 Mon Sep 17 00:00:00 2001 From: John Estabrook Date: Tue, 15 Sep 2026 13:51:30 -0500 Subject: T7886: add basic cases of reverse interface dependency verification Add cases for which a config mode script calls verify_interface_exists, excluding those of dynamic_interface_pattern, to be handled separately. The dependency verification raises error, resp., gives a warning, when verify_interface_exists is called with warning_only=False, resp., True. These are the critical cases that motivated the original design, for if a removal of an interface is allowed, a subsequent reboot will raise ConfigError on config load and invalidate the config subtree for that component. --- .../constraint/dependent-error-interface-name.xml.i | 7 +++++++ .../constraint/dependent-warning-interface-name.xml.i | 7 +++++++ .../dependent-error-generic-interface-multi.xml.i | 19 +++++++++++++++++++ .../include/dependent-error-generic-interface.xml.i | 18 ++++++++++++++++++ .../include/dependent-error-source-interface.xml.i | 18 ++++++++++++++++++ ...nt-warning-generic-interface-multi-broadcast.xml.i | 19 +++++++++++++++++++ .../dependent-warning-generic-interface-multi.xml.i | 19 +++++++++++++++++++ .../include/dependent-warning-source-interface.xml.i | 18 ++++++++++++++++++ .../interface/dependent-error-inbound-interface.xml.i | 11 +++++++++++ .../include/isis/protocol-common-config.xml.i | 1 + .../include/ospf/protocol-common-config.xml.i | 4 +--- .../include/ospfv3/protocol-common-config.xml.i | 4 +--- 12 files changed, 139 insertions(+), 6 deletions(-) create mode 100644 interface-definitions/include/constraint/dependent-error-interface-name.xml.i create mode 100644 interface-definitions/include/constraint/dependent-warning-interface-name.xml.i create mode 100644 interface-definitions/include/dependent-error-generic-interface-multi.xml.i create mode 100644 interface-definitions/include/dependent-error-generic-interface.xml.i create mode 100644 interface-definitions/include/dependent-error-source-interface.xml.i create mode 100644 interface-definitions/include/dependent-warning-generic-interface-multi-broadcast.xml.i create mode 100644 interface-definitions/include/dependent-warning-generic-interface-multi.xml.i create mode 100644 interface-definitions/include/dependent-warning-source-interface.xml.i create mode 100644 interface-definitions/include/interface/dependent-error-inbound-interface.xml.i (limited to 'interface-definitions/include') 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 @@ + + + (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 + + + + 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 @@ + + + (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 + + + + 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 @@ + + + + Interface + + + + + txt + Interface name + + + #include + + + + + + 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 @@ + + + + Interface + + + + + txt + Interface name + + + #include + + + + + 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 @@ + + + + Interface used to establish connection + + interface + Interface name + + + + + + #include + + + + + 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 @@ + + + + Interface + + + + + txt + Interface name + + + #include + + + + + + 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 @@ + + + + Interface + + + + + txt + Interface name + + + #include + + + + + + 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 @@ + + + + Interface used to establish connection + + interface + Interface name + + + + + + #include + + + + + 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 @@ + + + + Inbound Interface + + + + + + + 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 @@ + #include 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 @@ txt Interface name - - #include - + #include 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 @@ txt Interface used for routing information exchange - - #include - + #include -- cgit v1.2.3