diff --git a/Makefile b/Makefile
index 25f2c96d2..fe17ce994 100644
--- a/Makefile
+++ b/Makefile
@@ -1,133 +1,130 @@
 TMPL_DIR := templates-cfg
 OP_TMPL_DIR := templates-op
 BUILD_DIR := build
 DATA_DIR := data
 SHIM_DIR := src/shim
 LIBS := -lzmq
 CFLAGS :=
 BUILD_ARCH := $(shell dpkg-architecture -q DEB_BUILD_ARCH)
 
 J2LINT := $(shell command -v j2lint 2> /dev/null)
 
 config_xml_src = $(wildcard interface-definitions/*.xml.in)
 config_xml_obj = $(config_xml_src:.xml.in=.xml)
 op_xml_src = $(wildcard op-mode-definitions/*.xml.in)
 op_xml_obj = $(op_xml_src:.xml.in=.xml)
 
 %.xml: %.xml.in
 	@echo Generating $(BUILD_DIR)/$@ from $<
 	mkdir -p $(BUILD_DIR)/$(dir $@)
 	$(CURDIR)/scripts/transclude-template $< > $(BUILD_DIR)/$@
 
 .PHONY: interface_definitions
 .ONESHELL:
 interface_definitions: $(config_xml_obj)
 	mkdir -p $(TMPL_DIR)
 
 	$(CURDIR)/scripts/override-default $(BUILD_DIR)/interface-definitions
 
 	$(CURDIR)/python/vyos/xml_ref/generate_cache.py --xml-dir $(BUILD_DIR)/interface-definitions
 
 	find $(BUILD_DIR)/interface-definitions -type f -name "*.xml" | xargs -I {} $(CURDIR)/scripts/build-command-templates {} $(CURDIR)/schema/interface_definition.rng $(TMPL_DIR) || exit 1
 
 	# XXX: delete top level node.def's that now live in other packages
 	# IPSec VPN EAP-RADIUS does not support source-address
 	rm -rf $(TMPL_DIR)/vpn/ipsec/remote-access/radius/source-address
 
 	# T2472 - EIGRP support
 	rm -rf $(TMPL_DIR)/protocols/eigrp
 	# T2773 - EIGRP support for VRF
 	rm -rf $(TMPL_DIR)/vrf/name/node.tag/protocols/eigrp
 
 	# XXX: test if there are empty node.def files - this is not allowed as these
 	# could mask help strings or mandatory priority statements
 	find $(TMPL_DIR) -name node.def -type f -empty -exec false {} + || sh -c 'echo "There are empty node.def files! Check your interface definitions." && exit 1'
 
 ifeq ($(BUILD_ARCH),arm64)
 	# There is currently no telegraf support in VyOS for ARM64, remove CLI definitions
 	rm -rf $(TMPL_DIR)/service/monitoring/telegraf
 endif
 
 .PHONY: op_mode_definitions
 .ONESHELL:
 op_mode_definitions: $(op_xml_obj)
 	mkdir -p $(OP_TMPL_DIR)
 
 	find $(BUILD_DIR)/op-mode-definitions/ -type f -name "*.xml" | xargs -I {} $(CURDIR)/scripts/build-command-op-templates {} $(CURDIR)/schema/op-mode-definition.rng $(OP_TMPL_DIR) || exit 1
 
 	# XXX: delete top level op mode node.def's that now live in other packages
 	rm -f $(OP_TMPL_DIR)/add/node.def
 	rm -f $(OP_TMPL_DIR)/clear/interfaces/node.def
 	rm -f $(OP_TMPL_DIR)/clear/node.def
 	rm -f $(OP_TMPL_DIR)/delete/node.def
 	rm -f $(OP_TMPL_DIR)/generate/node.def
-	rm -f $(OP_TMPL_DIR)/monitor/node.def
 	rm -f $(OP_TMPL_DIR)/set/node.def
-	rm -f $(OP_TMPL_DIR)/show/node.def
-	rm -f $(OP_TMPL_DIR)/show/system/node.def
 	rm -f $(OP_TMPL_DIR)/show/tech-support/node.def
 
 	# XXX: ping and traceroute must be able to recursivly call itself as the
 	# options are provided from the script itself
 	ln -s ../node.tag $(OP_TMPL_DIR)/ping/node.tag/node.tag/
 	ln -s ../node.tag $(OP_TMPL_DIR)/traceroute/node.tag/node.tag/
 
 	# XXX: test if there are empty node.def files - this is not allowed as these
 	# could mask help strings or mandatory priority statements
 	find $(OP_TMPL_DIR) -name node.def -type f -empty -exec false {} + || sh -c 'echo "There are empty node.def files! Check your interface definitions." && exit 1'
 
 .PHONY: vyshim
 vyshim:
 	$(MAKE) -C $(SHIM_DIR)
 
 .PHONY: all
 all: clean interface_definitions op_mode_definitions check test j2lint vyshim
 
 .PHONY: check
 .ONESHELL:
 check:
 	@echo "Checking which CLI scripts are not enabled to work with vyos-configd..."
 	@for file in `ls src/conf_mode -I__pycache__`
 	do
 		if ! grep -q $$file data/configd-include.json; then
 			echo "* $$file"
 		fi
 	done
 
 .PHONY: clean
 clean:
 	rm -rf $(BUILD_DIR)
 	rm -rf $(TMPL_DIR)
 	rm -rf $(OP_TMPL_DIR)
 	$(MAKE) -C $(SHIM_DIR) clean
 
 .PHONY: test
 test:
 	set -e; python3 -m compileall -q -x '/vmware-tools/scripts/, /ppp/' .
 	PYTHONPATH=python/ python3 -m "nose" --with-xunit src --with-coverage --cover-erase --cover-xml --cover-package src/conf_mode,src/op_mode,src/completion,src/helpers,src/validators,src/tests --verbose
 
 .PHONY: j2lint
 j2lint:
 ifndef J2LINT
 	$(error "j2lint binary not found, consider installing: pip install git+https://github.com/aristanetworks/j2lint.git@341b5d5db86")
 endif
 	$(J2LINT) data/
 
 .PHONY: sonar
 sonar:
 	sonar-scanner -X -Dsonar.login=${SONAR_TOKEN}
 
 .PHONY: docs
 .ONESHELL:
 docs:
 	sphinx-apidoc -o sphinx/source/  python/
 	cd sphinx/
 	PYTHONPATH=../python make html
 
 deb:
 	dpkg-buildpackage -uc -us -tc -b
 
 .PHONY: schema
 schema:
 	trang -I rnc -O rng schema/interface_definition.rnc schema/interface_definition.rng
 	trang -I rnc -O rng schema/op-mode-definition.rnc schema/op-mode-definition.rng
diff --git a/op-mode-definitions/monitor-bridge.xml.in b/op-mode-definitions/monitor-bridge.xml.in
index 712a924f1..a43fa6dd9 100644
--- a/op-mode-definitions/monitor-bridge.xml.in
+++ b/op-mode-definitions/monitor-bridge.xml.in
@@ -1,33 +1,33 @@
 <?xml version="1.0"?>
 <interfaceDefinition>
   <node name="monitor">
     <children>
       <node name="bridge">
         <properties>
-          <help>Monitoring bridge database generated objects and address changes</help>
+          <help>Monitor bridge database changes</help>
         </properties>
         <command>sudo bridge monitor all</command>
         <children>
           <node name="link">
             <command>sudo bridge monitor link</command>
             <properties>
-              <help>Monitoring bridge database generated connection interface changes</help>
+              <help>Monitor bridge database generated connection interface changes</help>
             </properties>
           </node>
           <node name="fdb">
             <command>sudo bridge monitor fdb</command>
             <properties>
               <help>Monitor the forwarding database changes generated by the bridge database</help>
             </properties>
           </node>
           <node name="mdb">
             <command>sudo bridge monitor mdb</command>
             <properties>
               <help>Monitor the multicast database changes generated by the bridge database</help>
             </properties>
           </node>
         </children>
       </node>
     </children>
   </node>
 </interfaceDefinition>
diff --git a/op-mode-definitions/monitor-log.xml.in b/op-mode-definitions/monitor-log.xml.in
index 8f3f73478..c7be07aa8 100644
--- a/op-mode-definitions/monitor-log.xml.in
+++ b/op-mode-definitions/monitor-log.xml.in
@@ -1,333 +1,352 @@
 <?xml version="1.0"?>
 <interfaceDefinition>
   <node name="monitor">
+    <properties>
+      <help>Monitor system information</help>
+    </properties>
     <children>
       <node name="log">
         <properties>
           <help>Monitor last lines of messages file</help>
         </properties>
         <command>SYSTEMD_LOG_COLOR=false journalctl --no-hostname --follow --boot</command>
         <children>
           <node name="color">
             <properties>
               <help>Output log in a colored fashion</help>
             </properties>
             <command>SYSTEMD_LOG_COLOR=false grc journalctl --no-hostname --follow --boot</command>
           </node>
           <node name="ids">
             <properties>
               <help>Monitor Intrusion Detection System log</help>
             </properties>
             <children>
               <leafNode name="ddos-protection">
                 <properties>
                   <help>Monitor last lines of DDOS protection</help>
                 </properties>
                 <command>journalctl --no-hostname --follow --boot --unit fastnetmon.service</command>
               </leafNode>
             </children>
           </node>
+          <leafNode name="conntrack-sync">
+            <properties>
+              <help>Monitor last lines of conntrack-sync log</help>
+            </properties>
+            <command>journalctl --no-hostname --follow --boot --unit conntrackd.service</command>
+          </leafNode>
           <node name="dhcp">
             <properties>
               <help>Monitor last lines of Dynamic Host Control Protocol log</help>
             </properties>
             <children>
               <node name="server">
                 <properties>
                   <help>Monitor last lines of DHCP server log</help>
                 </properties>
                 <command>journalctl --no-hostname --follow --boot --unit isc-dhcp-server.service</command>
               </node>
               <node name="client">
                 <properties>
                   <help>Monitor last lines of DHCP client log</help>
                 </properties>
                 <command>journalctl --no-hostname --follow --boot --unit "dhclient@*.service"</command>
                 <children>
                   <tagNode name="interface">
                     <properties>
                       <help>Show DHCP client log on specific interface</help>
                       <completionHelp>
                         <script>${vyos_completion_dir}/list_interfaces --broadcast</script>
                       </completionHelp>
                     </properties>
                     <command>journalctl --no-hostname --follow --boot --unit "dhclient@$6.service"</command>
                   </tagNode>
                 </children>
               </node>
             </children>
           </node>
           <node name="dhcpv6">
             <properties>
               <help>Monitor last lines of Dynamic Host Control Protocol IPv6 log</help>
             </properties>
             <children>
               <node name="server">
                 <properties>
                   <help>Monitor last lines of DHCPv6 server log</help>
                 </properties>
                 <command>journalctl --no-hostname --follow --boot --unit isc-dhcp-server6.service</command>
               </node>
               <node name="client">
                 <properties>
                   <help>Monitor last lines of DHCPv6 client log</help>
                 </properties>
                 <command>journalctl --no-hostname --follow --boot --unit "dhcp6c@*.service"</command>
                 <children>
                   <tagNode name="interface">
                     <properties>
                       <help>Show DHCPv6 client log on specific interface</help>
                       <completionHelp>
                         <script>${vyos_completion_dir}/list_interfaces</script>
                       </completionHelp>
                     </properties>
                     <command>journalctl --no-hostname --follow --boot --unit "dhcp6c@$6.service"</command>
                   </tagNode>
                 </children>
               </node>
             </children>
           </node>
           <leafNode name="flow-accounting">
             <properties>
               <help>Monitor last lines of flow-accounting log</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit uacctd.service</command>
           </leafNode>
           <leafNode name="ipoe-server">
             <properties>
               <help>Monitor last lines of IP over Ethernet server log</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit accel-ppp@ipoe.service</command>
           </leafNode>
           <leafNode name="kernel">
             <properties>
               <help>Monitor last lines of Linux Kernel log</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --dmesg</command>
           </leafNode>
           <leafNode name="nhrp">
             <properties>
               <help>Monitor last lines of Next Hop Resolution Protocol log</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit opennhrp.service</command>
           </leafNode>
           <leafNode name="ntp">
             <properties>
               <help>Monitor last lines of Network Time Protocol log</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit chrony.service</command>
           </leafNode>
+          <node name="openvpn">
+            <properties>
+              <help>Monitor last lines of OpenVPN log</help>
+            </properties>
+            <command>journalctl --no-hostname --boot --follow --unit openvpn@*.service</command>
+            <children>
+              <tagNode name="interface">
+                <properties>
+                  <help>Monitor last lines of specific OpenVPN interface log</help>
+                  <completionHelp>
+                    <path>interfaces openvpn</path>
+                  </completionHelp>
+                </properties>
+                <command>journalctl --no-hostname --boot --unit openvpn@$5.service</command>
+              </tagNode>
+            </children>
+          </node>
           <node name="pppoe">
             <properties>
               <help>Monitor last lines of PPPoE interface log</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit "ppp@pppoe*.service"</command>
             <children>
               <tagNode name="interface">
                 <properties>
                   <help>Monitor last lines of PPPoE log for specific interface</help>
                   <completionHelp>
                     <path>interfaces pppoe</path>
                   </completionHelp>
                 </properties>
                 <command>journalctl --no-hostname --boot --follow --unit "ppp@$5.service"</command>
               </tagNode>
             </children>
           </node>
           <leafNode name="pppoe-server">
             <properties>
               <help>Monitor last lines of PPPoE server log</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit accel-ppp@pppoe.service</command>
           </leafNode>
           <node name="protocol">
             <properties>
               <help>Monitor routing protocol logs</help>
             </properties>
             <children>
               <leafNode name="ospf">
                 <properties>
                   <help>Monitor log for OSPF</help>
                 </properties>
                 <command>journalctl --follow --no-hostname --boot /usr/lib/frr/ospfd</command>
               </leafNode>
               <leafNode name="ospfv3">
                 <properties>
                   <help>Monitor log for OSPF for IPv6</help>
                 </properties>
                 <command>journalctl --follow --no-hostname --boot /usr/lib/frr/ospf6d</command>
               </leafNode>
               <leafNode name="bgp">
                 <properties>
                   <help>Monitor log for BGP</help>
                 </properties>
                 <command>journalctl --follow --no-hostname --boot /usr/lib/frr/bgpd</command>
               </leafNode>
               <leafNode name="rip">
                 <properties>
                   <help>Monitor log for RIP</help>
                 </properties>
                 <command>journalctl --follow --no-hostname --boot /usr/lib/frr/ripd</command>
               </leafNode>
               <leafNode name="ripng">
                 <properties>
                   <help>Monitor log for RIPng</help>
                 </properties>
                 <command>journalctl --follow --no-hostname --boot /usr/lib/frr/ripngd</command>
               </leafNode>
               <leafNode name="static">
                 <properties>
                   <help>Monitor log for static route</help>
                 </properties>
                 <command>journalctl --follow --no-hostname --boot /usr/lib/frr/staticd</command>
               </leafNode>
               <leafNode name="multicast">
                 <properties>
                   <help>Monitor log for Multicast protocol</help>
                 </properties>
                 <command>journalctl --follow --no-hostname --boot /usr/lib/frr/pimd</command>
               </leafNode>
               <leafNode name="isis">
                 <properties>
                   <help>Monitor log for ISIS</help>
                 </properties>
                 <command>journalctl --follow --no-hostname --boot /usr/lib/frr/isisd</command>
               </leafNode>
               <leafNode name="nhrp">
                 <properties>
                   <help>Monitor log for NHRP</help>
                 </properties>
                 <command>journalctl --follow --no-hostname --boot /usr/lib/frr/nhrpd</command>
               </leafNode>
               <leafNode name="bfd">
                 <properties>
                   <help>Monitor log for BFD</help>
                 </properties>
                 <command>journalctl --follow --no-hostname --boot /usr/lib/frr/bfdd</command>
               </leafNode>
               <leafNode name="mpls">
                 <properties>
                   <help>Monitor log for MPLS</help>
                 </properties>
                 <command>journalctl --follow --no-hostname --boot /usr/lib/frr/ldpd</command>
               </leafNode>
             </children>
           </node>
           <node name="macsec">
             <properties>
               <help>Monitor last lines of MACsec</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit "wpa_supplicant-macsec@*.service"</command>
             <children>
               <tagNode name="interface">
                 <properties>
                   <help>Monitor last lines of specific MACsec interface</help>
                   <completionHelp>
                     <path>interfaces macsec</path>
                   </completionHelp>
                 </properties>
                 <command>SRC=$(cli-shell-api returnValue interfaces macsec "$5" source-interface); journalctl --no-hostname --boot --follow --unit "wpa_supplicant-macsec@$SRC.service"</command>
               </tagNode>
             </children>
           </node>
           <leafNode name="router-advert">
             <properties>
               <help>Monitor last lines of Router Advertisement Daemon log</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit radvd.service</command>
           </leafNode>
           <leafNode name="snmp">
             <properties>
               <help>Monitor last lines of Simple Network Monitoring Protocol log</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit snmpd.service</command>
           </leafNode>
           <leafNode name="ssh">
             <properties>
               <help>Monitor last lines of Secure Shell log</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit ssh.service</command>
           </leafNode>
+          <leafNode name="vpn">
+            <properties>
+              <help>Monitor last lines of ALL Virtual Private Network services</help>
+            </properties>
+            <command>journalctl --no-hostname --boot --follow --unit strongswan.service --unit accel-ppp@*.service --unit ocserv.service</command>
+          </leafNode>
+          <leafNode name="ipsec">
+            <properties>
+              <help>Monitor last lines of IPsec log</help>
+            </properties>
+            <command>journalctl --no-hostname --boot --follow --unit strongswan.service</command>
+          </leafNode>
+          <leafNode name="l2tp">
+            <properties>
+              <help>Monitor last lines of L2TP log</help>
+            </properties>
+            <command>journalctl --no-hostname --boot --follow --unit accel-ppp@l2tp.service</command>
+          </leafNode>
+          <leafNode name="openconnect">
+            <properties>
+              <help>Monitor last lines of OpenConnect log</help>
+            </properties>
+            <command>journalctl --no-hostname --boot --follow --unit ocserv.service</command>
+          </leafNode>
+          <leafNode name="pptp">
+            <properties>
+              <help>Monitor last lines of PPTP log</help>
+            </properties>
+            <command>journalctl --no-hostname --boot --follow --unit accel-ppp@pptp.service</command>
+          </leafNode>
+          <leafNode name="sstp">
+            <properties>
+              <help>Monitor last lines of Secure Socket Tunneling Protocol server</help>
+            </properties>
+            <command>journalctl --no-hostname --boot --follow --unit accel-ppp@sstp.service</command>
+          </leafNode>
           <node name="sstpc">
             <properties>
-              <help>Monitor last lines of Secure Socket Tunneling Protocol log</help>
+              <help>Monitor last lines of Secure Socket Tunneling Protocol client</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit "ppp@sstpc*.service"</command>
             <children>
               <tagNode name="interface">
                 <properties>
                   <help>Monitor last lines of SSTP client log for specific interface</help>
                   <completionHelp>
                     <path>interfaces sstpc</path>
                   </completionHelp>
                 </properties>
                 <command>journalctl --no-hostname --boot --follow --unit "ppp@$5.service"</command>
               </tagNode>
             </children>
           </node>
-          <node name="vpn">
-            <properties>
-              <help>Monitor Virtual Private Network services</help>
-            </properties>
-            <children>
-              <leafNode name="all">
-                <properties>
-                  <help>Monitor last lines of ALL VPNs</help>
-                </properties>
-                <command>journalctl --no-hostname --boot --follow --unit strongswan.service --unit accel-ppp@*.service --unit ocserv.service</command>
-              </leafNode>
-              <leafNode name="ipsec">
-                <properties>
-                  <help>Monitor last lines of IPsec log</help>
-                </properties>
-                <command>journalctl --no-hostname --boot --follow --unit strongswan.service</command>
-              </leafNode>
-              <leafNode name="l2tp">
-                <properties>
-                  <help>Monitor last lines of L2TP log</help>
-                </properties>
-                <command>journalctl --no-hostname --boot --follow --unit accel-ppp@l2tp.service</command>
-              </leafNode>
-              <leafNode name="openconnect">
-                <properties>
-                  <help>Monitor last lines of OpenConnect log</help>
-                </properties>
-                <command>journalctl --no-hostname --boot --follow --unit ocserv.service</command>
-              </leafNode>
-              <leafNode name="pptp">
-                <properties>
-                  <help>Monitor last lines of PPTP log</help>
-                </properties>
-                <command>journalctl --no-hostname --boot --follow --unit accel-ppp@pptp.service</command>
-              </leafNode>
-              <leafNode name="sstp">
-                <properties>
-                  <help>Monitor last lines of SSTP log</help>
-                </properties>
-                <command>journalctl --no-hostname --boot --follow --unit accel-ppp@sstp.service</command>
-              </leafNode>
-            </children>
-          </node>
           <leafNode name="vpp">
             <properties>
               <help>Monitor last lines of Vector Packet Processor log</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit vpp.service</command>
           </leafNode>
           <leafNode name="vrrp">
             <properties>
               <help>Monitor last lines of Virtual Router Redundancy Protocol log</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit keepalived.service</command>
           </leafNode>
           <leafNode name="webproxy">
             <properties>
               <help>Monitor last lines of Webproxy log</help>
             </properties>
             <command>journalctl --no-hostname --boot --follow --unit squid.service</command>
           </leafNode>
         </children>
       </node>
     </children>
   </node>
 </interfaceDefinition>
diff --git a/op-mode-definitions/monitor-ndp.xml.in b/op-mode-definitions/monitor-ndp.xml.in
index 26d881f1a..3b08f3d73 100644
--- a/op-mode-definitions/monitor-ndp.xml.in
+++ b/op-mode-definitions/monitor-ndp.xml.in
@@ -1,44 +1,44 @@
 <?xml version="1.0"?>
 <interfaceDefinition>
   <node name="monitor">
     <children>
       <node name="ndp">
         <properties>
-          <help>Monitor the NDP information received by the router through the device</help>
+          <help>Monitor Neighbor Discovery Protocol (NDP) information</help>
         </properties>
         <command>sudo ndptool monitor</command>
         <children>
           <tagNode name="interface">
             <command>sudo ndptool monitor --ifname=$4</command>
             <properties>
-              <help>Monitor ndp protocol on specified interface</help>
+              <help>Monitor Neighbor Discovery Protocol on specified interface</help>
               <completionHelp>
                 <script>${vyos_completion_dir}/list_interfaces</script>
               </completionHelp>
             </properties>
             <children>
               <tagNode name="type">
                 <command>sudo ndptool monitor --ifname=$4 --msg-type=$6</command>
                 <properties>
-                  <help>Monitor specific types of NDP protocols</help>
+                  <help>Monitor specific Neighbor Discovery Protocol type</help>
                   <completionHelp>
                     <list>rs ra ns na</list>
                   </completionHelp>
                 </properties>
               </tagNode>
             </children>
           </tagNode>
           <tagNode name="type">
             <command>sudo ndptool monitor --msg-type=$4</command>
             <properties>
-              <help>Monitor specific types of NDP protocols</help>
+              <help>Monitor specific Neighbor Discovery Protocol type</help>
               <completionHelp>
                 <list>rs ra ns na</list>
               </completionHelp>
             </properties>
           </tagNode>
         </children>
       </node>
     </children>
   </node>
 </interfaceDefinition>
diff --git a/op-mode-definitions/show-log.xml.in b/op-mode-definitions/show-log.xml.in
index 579e348f7..925a780ac 100644
--- a/op-mode-definitions/show-log.xml.in
+++ b/op-mode-definitions/show-log.xml.in
@@ -1,495 +1,491 @@
 <?xml version="1.0"?>
 <interfaceDefinition>
   <node name="show">
+    <properties>
+      <help>Show system information</help>
+    </properties>
     <children>
       <tagNode name="log">
         <properties>
           <help>Show last number of messages in master logging buffer</help>
           <completionHelp>
             <list>&lt;1-9999&gt;</list>
           </completionHelp>
         </properties>
         <command>if ${vyos_validators_dir}/numeric --range 1-9999 "$3"; then journalctl --no-hostname --boot --lines "$3"; fi</command>
       </tagNode>
       <node name="log">
         <properties>
           <help>Show contents of current master logging buffer</help>
         </properties>
         <command>journalctl --no-hostname --boot</command>
         <children>
           <leafNode name="audit">
             <properties>
               <help>Show audit logs</help>
             </properties>
             <command>cat /var/log/audit/audit.log</command>
           </leafNode>
           <leafNode name="all">
             <properties>
               <help>Show contents of all master log files</help>
             </properties>
             <command>sudo bash -c 'eval $(lesspipe); less $_vyatta_less_options --prompt=".logm, file %i of %m., page %dt of %D" -- `printf "%s\n" /var/log/messages* | sort -nr`'</command>
           </leafNode>
           <leafNode name="authorization">
             <properties>
               <help>Show listing of authorization attempts</help>
             </properties>
             <command>journalctl --no-hostname --boot --quiet SYSLOG_FACILITY=10 SYSLOG_FACILITY=4</command>
           </leafNode>
           <leafNode name="cluster">
             <properties>
               <help>Show log for Cluster</help>
             </properties>
             <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e heartbeat -e cl_status -e mach_down -e ha_log</command>
           </leafNode>
           <leafNode name="conntrack-sync">
             <properties>
               <help>Show log for Conntrack-sync</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit conntrackd.service</command>
           </leafNode>
           <node name="ids">
             <properties>
               <help>Show log for for Intrusion Detection System</help>
             </properties>
             <children>
               <leafNode name="ddos-protection">
                 <properties>
                   <help>Show log for DDOS protection</help>
                 </properties>
                 <command>journalctl --no-hostname --boot --unit fastnetmon.service</command>
               </leafNode>
             </children>
           </node>
           <node name="dhcp">
             <properties>
               <help>Show log for Dynamic Host Control Protocol (DHCP)</help>
             </properties>
             <children>
               <node name="server">
                 <properties>
                   <help>Show log for DHCP server</help>
                 </properties>
                 <command>journalctl --no-hostname --boot --unit isc-dhcp-server.service</command>
               </node>
               <node name="client">
                 <properties>
                   <help>Show DHCP client logs</help>
                 </properties>
                 <command>journalctl --no-hostname --boot --unit "dhclient@*.service"</command>
                 <children>
                   <tagNode name="interface">
                     <properties>
                       <help>Show DHCP client log on specific interface</help>
                       <completionHelp>
                         <script>${vyos_completion_dir}/list_interfaces --broadcast</script>
                       </completionHelp>
                     </properties>
                     <command>journalctl --no-hostname --boot --unit "dhclient@$6.service"</command>
                   </tagNode>
                 </children>
               </node>
             </children>
           </node>
           <node name="dhcpv6">
             <properties>
               <help>Show log for Dynamic Host Control Protocol IPv6 (DHCPv6)</help>
             </properties>
             <children>
               <node name="server">
                 <properties>
                   <help>Show log for DHCPv6 server</help>
                 </properties>
                 <command>journalctl --no-hostname --boot --unit isc-dhcp-server6.service</command>
               </node>
               <node name="client">
                 <properties>
                   <help>Show DHCPv6 client logs</help>
                 </properties>
                 <command>journalctl --no-hostname --boot --unit "dhcp6c@*.service"</command>
                 <children>
                   <tagNode name="interface">
                     <properties>
                       <help>Show DHCPv6 client log on specific interface</help>
                       <completionHelp>
                         <script>${vyos_completion_dir}/list_interfaces</script>
                       </completionHelp>
                     </properties>
                     <command>journalctl --no-hostname --boot --unit "dhcp6c@$6.service"</command>
                   </tagNode>
                 </children>
               </node>
             </children>
           </node>
           <node name="firewall">
             <properties>
               <help>Show log for Firewall</help>
             </properties>
             <children>
               <tagNode name="ipv6-name">
                 <properties>
                   <help>Show log for a specified firewall (IPv6)</help>
                   <completionHelp>
                     <path>firewall ipv6-name</path>
                   </completionHelp>
                 </properties>
                 <command>cat $(printf "%s\n" /var/log/messages* | sort -nr ) | egrep "\[$5-([0-9]+|default)-[ADR]\]"</command>
                 <children>
                   <tagNode name="rule">
                     <properties>
                       <help>Show log for a rule in the specified firewall</help>
                       <completionHelp>
                         <path>firewall ipv6-name ${COMP_WORDS[4]} rule</path>
                       </completionHelp>
                     </properties>
                     <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e "\[$5-$7-[ADR]\]"</command>
                   </tagNode>
                 </children>
               </tagNode>
               <tagNode name="name">
                 <properties>
                   <help>Show log for a specified firewall (IPv4)</help>
                   <completionHelp>
                     <path>firewall name</path>
                   </completionHelp>
                 </properties>
                 <command>cat $(printf "%s\n" /var/log/messages* | sort -nr ) | egrep "\[$5-([0-9]+|default)-[ADR]\]"</command>
                 <children>
                   <tagNode name="rule">
                     <properties>
                       <help>Show log for a rule in the specified firewall</help>
                       <completionHelp>
                         <path>firewall name ${COMP_WORDS[4]} rule</path>
                       </completionHelp>
                     </properties>
                     <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | egrep "\[$5-$7-[ADR]\]"</command>
                   </tagNode>
                 </children>
               </tagNode>
             </children>
           </node>
           <leafNode name="flow-accounting">
             <properties>
               <help>Show log for flow-accounting</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit uacctd.service</command>
           </leafNode>
           <leafNode name="https">
             <properties>
               <help>Show log for HTTPs</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit nginx.service</command>
           </leafNode>
           <tagNode name="image">
             <properties>
               <help>Show contents of master log file for image</help>
               <completionHelp>
                 <script>compgen -f /lib/live/mount/persistence/boot/ | grep -v grub | sed -e s@/lib/live/mount/persistence/boot/@@</script>
               </completionHelp>
             </properties>
             <command>less $_vyatta_less_options --prompt=".log, page %dt of %D" -- /lib/live/mount/persistence/boot/$4/rw/var/log/messages</command>
             <children>
               <leafNode name="all">
                 <properties>
                   <help>Show contents of all master log files for image</help>
                 </properties>
                 <command>eval $(lesspipe); less $_vyatta_less_options --prompt=".log?m, file %i of %m., page %dt of %D" -- `printf "%s\n" /lib/live/mount/persistence/boot/$4/rw/var/log/messages* | sort -nr`</command>
               </leafNode>
               <leafNode name="authorization">
                 <properties>
                   <help>Show listing of authorization attempts for image</help>
                 </properties>
                 <command>less $_vyatta_less_options --prompt=".log, page %dt of %D" -- /lib/live/mount/persistence/boot/$4/rw/var/log/auth.log</command>
               </leafNode>
               <tagNode name="tail">
                 <properties>
                   <help>Show last changes to messages</help>
                   <completionHelp>
                     <list>&lt;NUMBER&gt;</list>
                   </completionHelp>
                 </properties>
                 <command>tail -n "$6" /lib/live/mount/persistence/boot/$4/rw/var/log/messages | ${VYATTA_PAGER:-cat}</command>
               </tagNode>
             </children>
           </tagNode>
           <leafNode name="ipoe-server">
             <properties>
               <help>Show log for IPoE server</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit accel-ppp@ipoe.service</command>
           </leafNode>
           <leafNode name="kernel">
             <properties>
               <help>Show log for Linux Kernel</help>
             </properties>
             <command>journalctl --no-hostname --boot --dmesg</command>
           </leafNode>
           <leafNode name="lldp">
             <properties>
               <help>Show log for Link Layer Discovery Protocol (LLDP)</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit lldpd.service</command>
           </leafNode>
           <leafNode name="nat">
             <properties>
               <help>Show log for Network Address Translation (NAT)</help>
             </properties>
             <command>egrep -i "kernel:.*\[NAT-[A-Z]{3,}-[0-9]+(-MASQ)?\]" $(find /var/log -maxdepth 1 -type f -name messages\* | sort -t. -k2nr)</command>
           </leafNode>
           <leafNode name="nhrp">
             <properties>
               <help>Show log for Next Hop Resolution Protocol (NHRP)</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit opennhrp.service</command>
           </leafNode>
           <leafNode name="ntp">
             <properties>
               <help>Show log for Network Time Protocol (NTP)</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit chrony.service</command>
           </leafNode>
           <node name="macsec">
             <properties>
               <help>Show log for MACsec</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit "wpa_supplicant-macsec@*.service"</command>
             <children>
               <tagNode name="interface">
                 <properties>
                   <help>Show MACsec log on specific interface</help>
                   <completionHelp>
                     <path>interfaces macsec</path>
                   </completionHelp>
                 </properties>
                 <command>SRC=$(cli-shell-api returnValue interfaces macsec "$5" source-interface); journalctl --no-hostname --boot --unit "wpa_supplicant-macsec@$SRC.service"</command>
               </tagNode>
             </children>
           </node>
           <node name="openvpn">
             <properties>
               <help>Show log for OpenVPN</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit openvpn@*.service</command>
             <children>
               <tagNode name="interface">
                 <properties>
                   <help>Show OpenVPN log on specific interface</help>
                   <completionHelp>
                     <path>interfaces openvpn</path>
                   </completionHelp>
                 </properties>
                 <command>journalctl --no-hostname --boot --unit openvpn@$5.service</command>
               </tagNode>
             </children>
           </node>
           <node name="pppoe">
             <properties>
               <help>Show log for PPPoE interface</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit "ppp@pppoe*.service"</command>
             <children>
               <tagNode name="interface">
                 <properties>
                   <help>Show PPPoE log on specific interface</help>
                   <completionHelp>
                     <path>interfaces pppoe</path>
                   </completionHelp>
                 </properties>
                 <command>journalctl --no-hostname --boot --unit "ppp@$5.service"</command>
               </tagNode>
             </children>
           </node>
           <leafNode name="pppoe-server">
             <properties>
               <help>Show log for PPPoE server</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit accel-ppp@pppoe.service</command>
           </leafNode>
           <node name="protocol">
             <properties>
               <help>Show log for Routing Protocol</help>
             </properties>
             <children>
               <leafNode name="ospf">
                 <properties>
                   <help>Show log for OSPF</help>
                 </properties>
                 <command>journalctl --boot /usr/lib/frr/ospfd</command>
               </leafNode>
               <leafNode name="ospfv3">
                 <properties>
                   <help>Show log for OSPF for IPv6</help>
                 </properties>
                 <command>journalctl --boot /usr/lib/frr/ospf6d</command>
               </leafNode>
               <leafNode name="bgp">
                 <properties>
                   <help>Show log for BGP</help>
                 </properties>
                 <command>journalctl --boot /usr/lib/frr/bgpd</command>
               </leafNode>
               <leafNode name="rip">
                 <properties>
                   <help>Show log for RIP</help>
                 </properties>
                 <command>journalctl --boot /usr/lib/frr/ripd</command>
               </leafNode>
               <leafNode name="ripng">
                 <properties>
                   <help>Show log for RIPng</help>
                 </properties>
                 <command>journalctl --boot /usr/lib/frr/ripngd</command>
               </leafNode>
               <leafNode name="static">
                 <properties>
                   <help>Show log for static route</help>
                 </properties>
                 <command>journalctl --boot /usr/lib/frr/staticd</command>
               </leafNode>
               <leafNode name="multicast">
                 <properties>
                   <help>Show log for Multicast protocol</help>
                 </properties>
                 <command>journalctl --boot /usr/lib/frr/pimd</command>
               </leafNode>
               <leafNode name="isis">
                 <properties>
                   <help>Show log for ISIS</help>
                 </properties>
                 <command>journalctl --boot /usr/lib/frr/isisd</command>
               </leafNode>
               <leafNode name="nhrp">
                 <properties>
                   <help>Show log for NHRP</help>
                 </properties>
                 <command>journalctl --boot /usr/lib/frr/nhrpd</command>
               </leafNode>
               <leafNode name="bfd">
                 <properties>
                   <help>Show log for BFD</help>
                 </properties>
                 <command>journalctl --boot /usr/lib/frr/bfdd</command>
               </leafNode>
               <leafNode name="mpls">
                 <properties>
                   <help>Show log for MPLS</help>
                 </properties>
                 <command>journalctl --boot /usr/lib/frr/ldpd</command>
               </leafNode>
             </children>
           </node>
           <leafNode name="router-advert">
             <properties>
               <help>Show log for Router Advertisement Daemon (radvd)</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit radvd.service</command>
           </leafNode>
           <leafNode name="snmp">
             <properties>
               <help>Show log for Simple Network Monitoring Protocol (SNMP)</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit snmpd.service</command>
           </leafNode>
           <leafNode name="ssh">
             <properties>
               <help>Show log for Secure Shell (SSH)</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit ssh.service</command>
           </leafNode>
-          <node name="sstpc">
-            <properties>
-              <help>Show log for SSTP client</help>
-            </properties>
-            <command>journalctl --no-hostname --boot --unit "ppp@sstpc*.service"</command>
-            <children>
-              <tagNode name="interface">
-                <properties>
-                  <help>Show SSTP client log on specific interface</help>
-                  <completionHelp>
-                    <path>interfaces sstpc</path>
-                  </completionHelp>
-                </properties>
-                <command>journalctl --no-hostname --boot --unit "ppp@$5.service"</command>
-              </tagNode>
-            </children>
-          </node>
           <tagNode name="tail">
             <properties>
               <help>Show last n changes to messages</help>
               <completionHelp>
                 <list>&lt;NUMBER&gt;</list>
               </completionHelp>
             </properties>
             <command>tail -n "$4" /var/log/messages | ${VYATTA_PAGER:-cat}</command>
           </tagNode>
           <node name="tail">
             <properties>
               <help>Show last 10 lines of /var/log/messages file</help>
             </properties>
             <command>tail -n 10 /var/log/messages</command>
           </node>
-          <node name="vpn">
+          <leafNode name="vpn">
+            <properties>
+              <help>Monitor last lines of ALL Virtual Private Network services</help>
+            </properties>
+            <command>journalctl --no-hostname --boot --unit strongswan.service --unit accel-ppp@*.service --unit ocserv.service</command>
+          </leafNode>
+          <leafNode name="ipsec">
+            <properties>
+              <help>Show log for IPsec</help>
+            </properties>
+            <command>journalctl --no-hostname --boot --unit strongswan.service</command>
+          </leafNode>
+          <leafNode name="l2tp">
+            <properties>
+              <help>Show log for L2TP</help>
+            </properties>
+            <command>journalctl --no-hostname --boot --unit accel-ppp@l2tp.service</command>
+          </leafNode>
+          <leafNode name="openconnect">
+            <properties>
+              <help>Show log for OpenConnect</help>
+            </properties>
+            <command>journalctl --no-hostname --boot --unit ocserv.service</command>
+          </leafNode>
+          <leafNode name="pptp">
+            <properties>
+              <help>Show log for PPTP</help>
+            </properties>
+            <command>journalctl --no-hostname --boot --unit accel-ppp@pptp.service</command>
+          </leafNode>
+          <leafNode name="sstp">
+            <properties>
+              <help>Show log for Secure Socket Tunneling Protocol (SSTP) server</help>
+            </properties>
+            <command>journalctl --no-hostname --boot --unit accel-ppp@sstp.service</command>
+          </leafNode>
+          <node name="sstpc">
             <properties>
-              <help>Show log for Virtual Private Network (VPN)</help>
+              <help>Show log for Secure Socket Tunneling Protocol (SSTP) client</help>
             </properties>
+            <command>journalctl --no-hostname --boot --unit "ppp@sstpc*.service"</command>
             <children>
-              <leafNode name="all">
-                <properties>
-                  <help>Show log for ALL</help>
-                </properties>
-                <command>journalctl --no-hostname --boot --unit strongswan.service --unit accel-ppp@*.service --unit ocserv.service</command>
-              </leafNode>
-              <leafNode name="ipsec">
-                <properties>
-                  <help>Show log for IPsec</help>
-                </properties>
-                <command>journalctl --no-hostname --boot --unit strongswan.service</command>
-              </leafNode>
-              <leafNode name="l2tp">
-                <properties>
-                  <help>Show log for L2TP</help>
-                </properties>
-                <command>journalctl --no-hostname --boot --unit accel-ppp@l2tp.service</command>
-              </leafNode>
-              <leafNode name="openconnect">
-                <properties>
-                  <help>Show log for OpenConnect</help>
-                </properties>
-                <command>journalctl --no-hostname --boot --unit ocserv.service</command>
-              </leafNode>
-              <leafNode name="pptp">
-                <properties>
-                  <help>Show log for PPTP</help>
-                </properties>
-                <command>journalctl --no-hostname --boot --unit accel-ppp@pptp.service</command>
-              </leafNode>
-              <leafNode name="sstp">
+              <tagNode name="interface">
                 <properties>
-                  <help>Show log for SSTP</help>
+                  <help>Show SSTP client log on specific interface</help>
+                  <completionHelp>
+                    <path>interfaces sstpc</path>
+                  </completionHelp>
                 </properties>
-                <command>journalctl --no-hostname --boot --unit accel-ppp@sstp.service</command>
-              </leafNode>
+                <command>journalctl --no-hostname --boot --unit "ppp@$5.service"</command>
+              </tagNode>
             </children>
           </node>
           <leafNode name="vpp">
             <properties>
               <help>Show log for Vector Packet Processor (VPP)</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit vpp.service</command>
           </leafNode>
           <leafNode name="vrrp">
             <properties>
               <help>Show log for Virtual Router Redundancy Protocol (VRRP)</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit keepalived.service</command>
           </leafNode>
           <leafNode name="webproxy">
             <properties>
               <help>Show log for Webproxy</help>
             </properties>
             <command>journalctl --no-hostname --boot --unit squid.service</command>
           </leafNode>
         </children>
       </node>
     </children>
   </node>
 </interfaceDefinition>