diff --git a/interface-definitions/include/policy/route-common.xml.i b/interface-definitions/include/policy/route-common.xml.i
index 4405f9c26..b8581b03e 100644
--- a/interface-definitions/include/policy/route-common.xml.i
+++ b/interface-definitions/include/policy/route-common.xml.i
@@ -1,262 +1,257 @@
 <!-- include start from policy/route-common.xml.i -->
 #include <include/policy/route-rule-action.xml.i>
 #include <include/generic-description.xml.i>
 #include <include/firewall/firewall-mark.xml.i>
-<leafNode name="disable">
-  <properties>
-    <help>Option to disable firewall rule</help>
-    <valueless/>
-  </properties>
-</leafNode>
+#include <include/generic-disable-node.xml.i>
 <node name="fragment">
   <properties>
     <help>IP fragment match</help>
   </properties>
   <children>
     <leafNode name="match-frag">
       <properties>
         <help>Second and further fragments of fragmented packets</help>
         <valueless/>
       </properties>
     </leafNode>
     <leafNode name="match-non-frag">
       <properties>
         <help>Head fragments or unfragmented packets</help>
         <valueless/>
       </properties>
     </leafNode>
   </children>
 </node>
 <node name="ipsec">
   <properties>
     <help>Inbound IPsec packets</help>
   </properties>
   <children>
     <leafNode name="match-ipsec">
       <properties>
         <help>Inbound IPsec packets</help>
         <valueless/>
       </properties>
     </leafNode>
     <leafNode name="match-none">
       <properties>
         <help>Inbound non-IPsec packets</help>
         <valueless/>
       </properties>
     </leafNode>
   </children>
 </node>
 <node name="limit">
   <properties>
     <help>Rate limit using a token bucket filter</help>
   </properties>
   <children>
     <leafNode name="burst">
       <properties>
         <help>Maximum number of packets to allow in excess of rate</help>
         <valueHelp>
           <format>u32:0-4294967295</format>
           <description>Maximum number of packets to allow in excess of rate</description>
         </valueHelp>
         <constraint>
           <validator name="numeric" argument="--range 0-4294967295"/>
         </constraint>
       </properties>
     </leafNode>
     <leafNode name="rate">
       <properties>
         <help>Maximum average matching rate</help>
         <valueHelp>
           <format>u32:0-4294967295</format>
           <description>Maximum average matching rate</description>
         </valueHelp>
         <constraint>
           <validator name="numeric" argument="--range 0-4294967295"/>
         </constraint>
       </properties>
     </leafNode>
   </children>
 </node>
 #include <include/firewall/log.xml.i>
 <leafNode name="protocol">
   <properties>
     <help>Protocol to match (protocol name, number, or "all")</help>
     <completionHelp>
       <script>cat /etc/protocols | sed -e '/^#.*/d' | awk '{ print $1 }'</script>
     </completionHelp>
     <valueHelp>
       <format>all</format>
       <description>All IP protocols</description>
     </valueHelp>
     <valueHelp>
       <format>tcp_udp</format>
       <description>Both TCP and UDP</description>
     </valueHelp>
     <valueHelp>
       <format>0-255</format>
       <description>IP protocol number</description>
     </valueHelp>
     <valueHelp>
       <format>!&lt;protocol&gt;</format>
       <description>IP protocol number</description>
     </valueHelp>
     <constraint>
       <validator name="ip-protocol"/>
     </constraint>
   </properties>
   <defaultValue>all</defaultValue>
 </leafNode>
 <node name="recent">
   <properties>
     <help>Parameters for matching recently seen sources</help>
   </properties>
   <children>
     <leafNode name="count">
       <properties>
         <help>Source addresses seen more than N times</help>
         <valueHelp>
           <format>u32:1-255</format>
           <description>Source addresses seen more than N times</description>
         </valueHelp>
         <constraint>
           <validator name="numeric" argument="--range 1-255"/>
         </constraint>
       </properties>
     </leafNode>
     <leafNode name="time">
       <properties>
         <help>Source addresses seen in the last N seconds</help>
         <valueHelp>
           <format>u32:0-4294967295</format>
           <description>Source addresses seen in the last N seconds</description>
         </valueHelp>
         <constraint>
           <validator name="numeric" argument="--range 0-4294967295"/>
         </constraint>
       </properties>
     </leafNode>
   </children>
 </node>
 <node name="set">
   <properties>
     <help>Packet modifications</help>
   </properties>
   <children>
     <leafNode name="connection-mark">
       <properties>
         <help>Connection marking</help>
         <valueHelp>
           <format>u32:0-2147483647</format>
           <description>Connection marking</description>
         </valueHelp>
         <constraint>
           <validator name="numeric" argument="--range 0-2147483647"/>
         </constraint>
       </properties>
     </leafNode>
     <leafNode name="dscp">
       <properties>
         <help>Packet Differentiated Services Codepoint (DSCP)</help>
         <valueHelp>
           <format>u32:0-63</format>
           <description>DSCP number</description>
         </valueHelp>
         <constraint>
           <validator name="numeric" argument="--range 0-63"/>
         </constraint>
       </properties>
     </leafNode>
     <leafNode name="mark">
       <properties>
         <help>Packet marking</help>
         <valueHelp>
           <format>u32:1-2147483647</format>
           <description>Packet marking</description>
         </valueHelp>
         <constraint>
           <validator name="numeric" argument="--range 1-2147483647"/>
         </constraint>
       </properties>
     </leafNode>
     <leafNode name="table">
       <properties>
         <help>Routing table to forward packet with</help>
         <valueHelp>
           <format>u32:1-200</format>
           <description>Table number</description>
         </valueHelp>
         <valueHelp>
           <format>main</format>
           <description>Main table</description>
         </valueHelp>
         <constraint>
           <validator name="numeric" argument="--range 1-200"/>
           <regex>(main)</regex>
         </constraint>
         <completionHelp>
           <list>main</list>
           <path>protocols static table</path>
         </completionHelp>
       </properties>
     </leafNode>
     <leafNode name="tcp-mss">
       <properties>
         <help>TCP Maximum Segment Size</help>
         <valueHelp>
           <format>u32:500-1460</format>
           <description>Explicitly set TCP MSS value</description>
         </valueHelp>
         <constraint>
           <validator name="numeric" argument="--range 500-1460"/>
         </constraint>
       </properties>
     </leafNode>
   </children>
 </node>
 #include <include/firewall/state.xml.i>
 #include <include/firewall/tcp-flags.xml.i>
 #include <include/firewall/tcp-mss.xml.i>
 <node name="time">
   <properties>
     <help>Time to match rule</help>
   </properties>
   <children>
     <leafNode name="monthdays">
       <properties>
         <help>Monthdays to match rule on</help>
       </properties>
     </leafNode>
     <leafNode name="startdate">
       <properties>
         <help>Date to start matching rule</help>
       </properties>
     </leafNode>
     <leafNode name="starttime">
       <properties>
         <help>Time of day to start matching rule</help>
       </properties>
     </leafNode>
     <leafNode name="stopdate">
       <properties>
         <help>Date to stop matching rule</help>
       </properties>
     </leafNode>
     <leafNode name="stoptime">
       <properties>
         <help>Time of day to stop matching rule</help>
       </properties>
     </leafNode>
     <leafNode name="utc">
       <properties>
         <help>Interpret times for startdate, stopdate, starttime and stoptime to be UTC</help>
         <valueless/>
       </properties>
     </leafNode>
     <leafNode name="weekdays">
       <properties>
         <help>Weekdays to match rule on</help>
       </properties>
     </leafNode>
   </children>
 </node>
 <!-- include end -->
diff --git a/interface-definitions/include/rip/interface.xml.i b/interface-definitions/include/rip/interface.xml.i
index 8007f0208..7c64d0708 100644
--- a/interface-definitions/include/rip/interface.xml.i
+++ b/interface-definitions/include/rip/interface.xml.i
@@ -1,38 +1,33 @@
 <!-- include start from rip/interface.xml.i -->
 <tagNode name="interface">
   <properties>
     <help>Interface name</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="split-horizon">
       <properties>
         <help>Split horizon parameters</help>
       </properties>
       <children>
-        <leafNode name="disable">
-          <properties>
-            <help>Disable split horizon on specified interface</help>
-            <valueless/>
-          </properties>
-        </leafNode>
+        #include <include/generic-disable-node.xml.i>
         <leafNode name="poison-reverse">
           <properties>
             <help>Disable split horizon on specified interface</help>
             <valueless/>
           </properties>
         </leafNode>
       </children>
     </node>
   </children>
 </tagNode>
 <!-- include end -->
diff --git a/interface-definitions/nat66.xml.in b/interface-definitions/nat66.xml.in
index 2fd95e03a..1518de8bd 100644
--- a/interface-definitions/nat66.xml.in
+++ b/interface-definitions/nat66.xml.in
@@ -1,260 +1,250 @@
 <?xml version="1.0"?>
 <interfaceDefinition>
   <node name="nat66" owner="${vyos_conf_scripts_dir}/nat66.py">
     <properties>
       <help>IPv6-to-IPv6 Network Prefix Translation (NAT66/NPT) Settings</help>
       <priority>500</priority>
     </properties>
     <children>
       <node name="source">
         <properties>
           <help>Prefix mapping of IPv6 source address translation</help>
         </properties>
         <children>
           <tagNode name="rule">
             <properties>
               <help>Source NAT66 rule number</help>
               <valueHelp>
                 <format>u32:1-999999</format>
                 <description>Number for this rule</description>
               </valueHelp>
               <constraint>
                 <validator name="numeric" argument="--range 1-999999"/>
               </constraint>
               <constraintErrorMessage>NAT66 rule number must be between 1 and 999999</constraintErrorMessage>
             </properties>
             <children>
               #include <include/generic-description.xml.i>
-              <leafNode name="disable">
-                <properties>
-                  <help>Disable NAT66 rule</help>
-                  <valueless/>
-                </properties>
-              </leafNode>
+              #include <include/generic-disable-node.xml.i>
               #include <include/nat-exclude.xml.i>
               #include <include/firewall/log.xml.i>
               #include <include/firewall/outbound-interface-no-group.xml.i>
               #include <include/nat/protocol.xml.i>
               <node name="destination">
                 <properties>
                   <help>IPv6 destination prefix options</help>
                 </properties>
                 <children>
                   <leafNode name="prefix">
                     <properties>
                       <help>IPv6 prefix to be translated</help>
                       <valueHelp>
                         <format>ipv6net</format>
                         <description>IPv6 prefix</description>
                       </valueHelp>
                       <valueHelp>
                         <format>!ipv6net</format>
                         <description>Match everything except the specified IPv6 prefix</description>
                       </valueHelp>
                       <constraint>
                         <validator name="ipv6-prefix"/>
                         <validator name="ipv6-prefix-exclude"/>
                       </constraint>
                     </properties>
                   </leafNode>
                   #include <include/nat-port.xml.i>
                 </children>
               </node>
               <node name="source">
                 <properties>
                   <help>IPv6 source prefix options</help>
                 </properties>
                 <children>
                   <leafNode name="prefix">
                     <properties>
                       <help>IPv6 prefix to be translated</help>
                       <valueHelp>
                         <format>ipv6net</format>
                         <description>IPv6 prefix</description>
                       </valueHelp>
                       <valueHelp>
                         <format>!ipv6net</format>
                         <description>Match everything except the specified IPv6 prefix</description>
                       </valueHelp>
                       <constraint>
                         <validator name="ipv6-prefix"/>
                         <validator name="ipv6-prefix-exclude"/>
                       </constraint>
                     </properties>
                   </leafNode>
                   #include <include/nat-port.xml.i>
                 </children>
               </node>
               <node name="translation">
                 <properties>
                   <help>Translated IPv6 address options</help>
                 </properties>
                 <children>
                   <leafNode name="address">
                     <properties>
                       <help>IPv6 address to translate to</help>
                       <completionHelp>
                         <list>masquerade</list>
                       </completionHelp>
                       <valueHelp>
                         <format>ipv6</format>
                         <description>IPv6 address</description>
                       </valueHelp>
                       <valueHelp>
                         <format>ipv6net</format>
                         <description>IPv6 prefix</description>
                       </valueHelp>
                       <valueHelp>
                         <format>masquerade</format>
                         <description>NAT to the primary address of outbound-interface</description>
                       </valueHelp>
                       <constraint>
                         <validator name="ipv6-address"/>
                         <validator name="ipv6-prefix"/>
                         <regex>(masquerade)</regex>
                       </constraint>
                     </properties>
                   </leafNode>
                   #include <include/nat-translation-port.xml.i>
                 </children>
               </node>
             </children>
           </tagNode>
         </children>
       </node>
       <node name="destination">
         <properties>
           <help>Prefix mapping for IPv6 destination address translation</help>
         </properties>
         <children>
           <tagNode name="rule">
             <properties>
               <help>Destination NAT66 rule number</help>
               <valueHelp>
                 <format>u32:1-999999</format>
                 <description>Number for this rule</description>
               </valueHelp>
               <constraint>
                 <validator name="numeric" argument="--range 1-999999"/>
               </constraint>
               <constraintErrorMessage>NAT66 rule number must be between 1 and 999999</constraintErrorMessage>
             </properties>
             <children>
               #include <include/generic-description.xml.i>
-              <leafNode name="disable">
-                <properties>
-                  <help>Disable NAT66 rule</help>
-                  <valueless/>
-                </properties>
-              </leafNode>
+              #include <include/generic-disable-node.xml.i>
               #include <include/nat-exclude.xml.i>
               <leafNode name="log">
                 <properties>
                   <help>NAT66 rule logging</help>
                   <valueless/>
                 </properties>
               </leafNode>
               #include <include/firewall/inbound-interface-no-group.xml.i>
               #include <include/nat/protocol.xml.i>
               <node name="destination">
                 <properties>
                   <help>IPv6 destination prefix options</help>
                 </properties>
                 <children>
                   <leafNode name="address">
                     <properties>
                       <help>IPv6 address or prefix to be translated</help>
                       <valueHelp>
                         <format>ipv6</format>
                         <description>IPv6 address</description>
                       </valueHelp>
                       <valueHelp>
                         <format>ipv6net</format>
                         <description>IPv6 prefix</description>
                       </valueHelp>
                       <valueHelp>
                         <format>!ipv6</format>
                         <description>Match everything except the specified IPv6 address</description>
                       </valueHelp>
                       <valueHelp>
                         <format>!ipv6net</format>
                         <description>Match everything except the specified IPv6 prefix</description>
                       </valueHelp>
                       <constraint>
                         <validator name="ipv6-address"/>
                         <validator name="ipv6-prefix"/>
                         <validator name="ipv6-address-exclude"/>
                         <validator name="ipv6-prefix-exclude"/>
                       </constraint>
                     </properties>
                   </leafNode>
                   #include <include/nat-port.xml.i>
                 </children>
               </node>
               <node name="source">
                 <properties>
                   <help>IPv6 source prefix options</help>
                 </properties>
                 <children>
                   <leafNode name="address">
                     <properties>
                       <help>IPv6 address or prefix to be translated</help>
                       <valueHelp>
                         <format>ipv6</format>
                         <description>IPv6 address</description>
                       </valueHelp>
                       <valueHelp>
                         <format>ipv6net</format>
                         <description>IPv6 prefix</description>
                       </valueHelp>
                       <valueHelp>
                         <format>!ipv6</format>
                         <description>Match everything except the specified IPv6 address</description>
                       </valueHelp>
                       <valueHelp>
                         <format>!ipv6net</format>
                         <description>Match everything except the specified IPv6 prefix</description>
                       </valueHelp>
                       <constraint>
                         <validator name="ipv6-address"/>
                         <validator name="ipv6-prefix"/>
                         <validator name="ipv6-address-exclude"/>
                         <validator name="ipv6-prefix-exclude"/>
                       </constraint>
                     </properties>
                   </leafNode>
                 #include <include/nat-port.xml.i>
                 </children>
               </node>
               <node name="translation">
                 <properties>
                   <help>Translated IPv6 address options</help>
                 </properties>
                 <children>
                   <leafNode name="address">
                     <properties>
                       <help>IPv6 address or prefix to translate to</help>
                       <valueHelp>
                         <format>ipv6</format>
                         <description>IPv6 address</description>
                       </valueHelp>
                       <valueHelp>
                         <format>ipv6net</format>
                         <description>IPv6 prefix</description>
                       </valueHelp>
                       <constraint>
                         <validator name="ipv6-address"/>
                         <validator name="ipv6-prefix"/>
                       </constraint>
                     </properties>
                   </leafNode>
                   #include <include/nat-translation-port.xml.i>
                 </children>
               </node>
             </children>
           </tagNode>
         </children>
       </node>
     </children>
   </node>
 </interfaceDefinition>