From 6325d1576b923f0abce19de49f940f5981411cf9 Mon Sep 17 00:00:00 2001
From: Christian Poessinger <christian@poessinger.com>
Date: Fri, 12 Mar 2021 20:41:46 +0100
Subject: xml: ospf: consolidate router-id and distance settings in common
 include files

---
 .../include/ospf/ospf-common-config.xml.i          | 63 ++--------------------
 .../include/ospf/ospf-distance-global.xml.i        | 14 +++++
 .../include/ospf/ospf-distance-per-protocol.xml.i  | 38 +++++++++++++
 .../include/ospf/ospf-router-id.xml.i              | 14 +++++
 interface-definitions/protocols-ospfv3.xml.in      | 63 ++--------------------
 5 files changed, 72 insertions(+), 120 deletions(-)
 create mode 100644 interface-definitions/include/ospf/ospf-distance-global.xml.i
 create mode 100644 interface-definitions/include/ospf/ospf-distance-per-protocol.xml.i
 create mode 100644 interface-definitions/include/ospf/ospf-router-id.xml.i

diff --git a/interface-definitions/include/ospf/ospf-common-config.xml.i b/interface-definitions/include/ospf/ospf-common-config.xml.i
index 96793913b..a9b2f0a2b 100644
--- a/interface-definitions/include/ospf/ospf-common-config.xml.i
+++ b/interface-definitions/include/ospf/ospf-common-config.xml.i
@@ -335,59 +335,13 @@
     <help>Administrative distance</help>
   </properties>
   <children>
-    <leafNode name="global">
-      <properties>
-        <help>OSPF administrative distance</help>
-        <valueHelp>
-          <format>u32:1-255</format>
-          <description>Administrative distance</description>
-        </valueHelp>
-        <constraint>
-          <validator name="numeric" argument="--range 1-255"/>
-        </constraint>
-      </properties>
-    </leafNode>
+    #include <include/ospf/ospf-distance-global.xml.i>
     <node name="ospf">
       <properties>
         <help>OSPF administrative distance</help>
       </properties>
       <children>
-        <leafNode name="external">
-          <properties>
-            <help>Distance for external routes</help>
-            <valueHelp>
-              <format>u32:1-255</format>
-              <description>Distance for external routes</description>
-            </valueHelp>
-            <constraint>
-              <validator name="numeric" argument="--range 1-255"/>
-            </constraint>
-          </properties>
-        </leafNode>
-        <leafNode name="inter-area">
-          <properties>
-            <help>Distance for inter-area routes</help>
-            <valueHelp>
-              <format>u32:1-255</format>
-              <description>Distance for inter-area routes</description>
-            </valueHelp>
-            <constraint>
-              <validator name="numeric" argument="--range 1-255"/>
-            </constraint>
-          </properties>
-        </leafNode>
-        <leafNode name="intra-area">
-          <properties>
-            <help>Distance for intra-area routes</help>
-            <valueHelp>
-              <format>u32:1-255</format>
-              <description>Distance for intra-area routes</description>
-            </valueHelp>
-            <constraint>
-              <validator name="numeric" argument="--range 1-255"/>
-            </constraint>
-          </properties>
-        </leafNode>
+        #include <include/ospf/ospf-distance-per-protocol.xml.i>
       </children>
     </node>
   </children>
@@ -632,18 +586,7 @@
         <valueless/>
       </properties>
     </leafNode>
-    <leafNode name="router-id">
-      <properties>
-        <help>Override the default router identifier</help>
-        <valueHelp>
-          <format>ipv4</format>
-          <description>Override the default router identifier</description>
-        </valueHelp>
-        <constraint>
-          <validator name="ipv4-address"/>
-        </constraint>
-      </properties>
-    </leafNode>
+    #include <include/ospf/ospf-router-id.xml.i>
   </children>
 </node>
 #include <include/routing-passive-interface-xml.i>
diff --git a/interface-definitions/include/ospf/ospf-distance-global.xml.i b/interface-definitions/include/ospf/ospf-distance-global.xml.i
new file mode 100644
index 000000000..930bd9640
--- /dev/null
+++ b/interface-definitions/include/ospf/ospf-distance-global.xml.i
@@ -0,0 +1,14 @@
+<!-- include start from ospf/ospf-distance-global.xml.i -->
+<leafNode name="global">
+  <properties>
+    <help>Administrative distance</help>
+    <valueHelp>
+      <format>u32:1-255</format>
+      <description>Administrative distance</description>
+    </valueHelp>
+    <constraint>
+      <validator name="numeric" argument="--range 1-255"/>
+    </constraint>
+  </properties>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/ospf/ospf-distance-per-protocol.xml.i b/interface-definitions/include/ospf/ospf-distance-per-protocol.xml.i
new file mode 100644
index 000000000..19debdea2
--- /dev/null
+++ b/interface-definitions/include/ospf/ospf-distance-per-protocol.xml.i
@@ -0,0 +1,38 @@
+<!-- include start from ospf/ospf-distance-per-protocol.xml.i -->
+<leafNode name="external">
+  <properties>
+    <help>Distance for external routes</help>
+    <valueHelp>
+      <format>u32:1-255</format>
+      <description>Distance for external routes</description>
+    </valueHelp>
+    <constraint>
+      <validator name="numeric" argument="--range 1-255"/>
+    </constraint>
+  </properties>
+</leafNode>
+<leafNode name="inter-area">
+  <properties>
+    <help>Distance for inter-area routes</help>
+    <valueHelp>
+      <format>u32:1-255</format>
+      <description>Distance for inter-area routes</description>
+    </valueHelp>
+    <constraint>
+      <validator name="numeric" argument="--range 1-255"/>
+    </constraint>
+  </properties>
+</leafNode>
+<leafNode name="intra-area">
+  <properties>
+    <help>Distance for intra-area routes</help>
+    <valueHelp>
+      <format>u32:1-255</format>
+      <description>Distance for intra-area routes</description>
+    </valueHelp>
+    <constraint>
+      <validator name="numeric" argument="--range 1-255"/>
+    </constraint>
+  </properties>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/include/ospf/ospf-router-id.xml.i b/interface-definitions/include/ospf/ospf-router-id.xml.i
new file mode 100644
index 000000000..a719f40dc
--- /dev/null
+++ b/interface-definitions/include/ospf/ospf-router-id.xml.i
@@ -0,0 +1,14 @@
+<!-- include start from ospf/ospf-router-id.xml.i -->
+<leafNode name="router-id">
+  <properties>
+    <help>Override the default router identifier</help>
+    <valueHelp>
+      <format>ipv4</format>
+      <description>Override the default router identifier</description>
+    </valueHelp>
+    <constraint>
+      <validator name="ipv4-address"/>
+    </constraint>
+  </properties>
+</leafNode>
+<!-- included end -->
diff --git a/interface-definitions/protocols-ospfv3.xml.in b/interface-definitions/protocols-ospfv3.xml.in
index 8c21ba3cd..06787b604 100644
--- a/interface-definitions/protocols-ospfv3.xml.in
+++ b/interface-definitions/protocols-ospfv3.xml.in
@@ -90,59 +90,13 @@
               <help>Administrative distance</help>
             </properties>
             <children>
-              <leafNode name="global">
-                <properties>
-                  <help>OSPFv3 administrative distance</help>
-                  <valueHelp>
-                    <format>u32:1-255</format>
-                    <description>Administrative distance</description>
-                  </valueHelp>
-                  <constraint>
-                    <validator name="numeric" argument="--range 1-255"/>
-                  </constraint>
-                </properties>
-              </leafNode>
+              #include <include/ospf/ospf-distance-global.xml.i>
               <node name="ospfv3">
                 <properties>
                   <help>OSPFv3 administrative distance</help>
                 </properties>
                 <children>
-                  <leafNode name="external">
-                    <properties>
-                      <help>Distance for external routes</help>
-                      <valueHelp>
-                        <format>u32:1-255</format>
-                        <description>Distance for external routes</description>
-                      </valueHelp>
-                      <constraint>
-                        <validator name="numeric" argument="--range 1-255"/>
-                      </constraint>
-                    </properties>
-                  </leafNode>
-                  <leafNode name="inter-area">
-                    <properties>
-                      <help>Distance for inter-area routes</help>
-                      <valueHelp>
-                        <format>u32:1-255</format>
-                        <description>Distance for inter-area routes</description>
-                      </valueHelp>
-                      <constraint>
-                        <validator name="numeric" argument="--range 1-255"/>
-                      </constraint>
-                    </properties>
-                  </leafNode>
-                  <leafNode name="intra-area">
-                    <properties>
-                      <help>Distance for intra-area routes</help>
-                      <valueHelp>
-                        <format>u32:1-255</format>
-                        <description>Distance for intra-area routes</description>
-                      </valueHelp>
-                      <constraint>
-                        <validator name="numeric" argument="--range 1-255"/>
-                      </constraint>
-                    </properties>
-                  </leafNode>
+                  #include <include/ospf/ospf-distance-per-protocol.xml.i>
                 </children>
               </node>
             </children>
@@ -222,18 +176,7 @@
               <help>OSPFv3 specific parameters</help>
             </properties>
             <children>
-              <leafNode name="router-id">
-                <properties>
-                  <help>Override the default router identifier</help>
-                  <valueHelp>
-                    <format>ipv4</format>
-                    <description>Override the default router identifier</description>
-                  </valueHelp>
-                  <constraint>
-                    <validator name="ipv4-address"/>
-                  </constraint>
-                </properties>
-              </leafNode>
+              #include <include/ospf/ospf-router-id.xml.i>
             </children>
           </node>
           <node name="redistribute">
-- 
cgit v1.2.3