From e982b78f24d1dca3d2bc92a39b8e9fcf35b39a37 Mon Sep 17 00:00:00 2001
From: Christian Poessinger <christian@poessinger.com>
Date: Sat, 9 Jan 2021 14:31:48 +0100
Subject: xml: op-mode: add preprocessor support as known from configuration
 mode

---
 Makefile                                           |  21 +-
 op-mode-definitions/add-system-image.xml           |  62 --
 op-mode-definitions/add-system-image.xml.in        |  62 ++
 op-mode-definitions/clear-ip.xml                   |  40 --
 op-mode-definitions/clear-ip.xml.in                |  40 ++
 op-mode-definitions/clear-ipv6.xml                 |  40 --
 op-mode-definitions/clear-ipv6.xml.in              |  40 ++
 op-mode-definitions/configure.xml                  |  24 -
 op-mode-definitions/configure.xml.in               |  24 +
 op-mode-definitions/connect.xml                    |  29 -
 op-mode-definitions/connect.xml.in                 |  29 +
 op-mode-definitions/date.xml                       |  64 --
 op-mode-definitions/date.xml.in                    |  64 ++
 op-mode-definitions/dhcp.xml                       | 203 ------
 op-mode-definitions/dhcp.xml.in                    | 203 ++++++
 op-mode-definitions/disconnect.xml                 |  20 -
 op-mode-definitions/disconnect.xml.in              |  20 +
 op-mode-definitions/disks.xml                      |  50 --
 op-mode-definitions/disks.xml.in                   |  50 ++
 op-mode-definitions/dns-dynamic.xml                |  75 --
 op-mode-definitions/dns-dynamic.xml.in             |  75 ++
 op-mode-definitions/dns-forwarding.xml             |  94 ---
 op-mode-definitions/dns-forwarding.xml.in          |  94 +++
 op-mode-definitions/flow-accounting-op.xml         |  81 ---
 op-mode-definitions/flow-accounting-op.xml.in      |  81 +++
 op-mode-definitions/force-arp.xml                  | 103 ---
 op-mode-definitions/force-arp.xml.in               | 103 +++
 op-mode-definitions/force-ipv6-nd.xml              |  33 -
 op-mode-definitions/force-ipv6-nd.xml.in           |  33 +
 op-mode-definitions/force-ipv6-rd.xml              |  34 -
 op-mode-definitions/force-ipv6-rd.xml.in           |  34 +
 op-mode-definitions/force-mtu-host.xml             |  34 -
 op-mode-definitions/force-mtu-host.xml.in          |  34 +
 op-mode-definitions/generate-macsec-key.xml        |  26 -
 op-mode-definitions/generate-macsec-key.xml.in     |  26 +
 op-mode-definitions/generate-ssh-server-key.xml    |  16 -
 op-mode-definitions/generate-ssh-server-key.xml.in |  16 +
 op-mode-definitions/igmp-proxy.xml                 |  13 -
 op-mode-definitions/igmp-proxy.xml.in              |  13 +
 op-mode-definitions/ipoe-server.xml                |  81 ---
 op-mode-definitions/ipoe-server.xml.in             |  81 +++
 op-mode-definitions/ipv4-route.xml                 |  87 ---
 op-mode-definitions/ipv4-route.xml.in              |  87 +++
 op-mode-definitions/ipv6-route.xml                 | 133 ----
 op-mode-definitions/ipv6-route.xml.in              | 133 ++++
 op-mode-definitions/l2tp-server.xml                |  26 -
 op-mode-definitions/l2tp-server.xml.in             |  26 +
 op-mode-definitions/lldp.xml                       |  37 -
 op-mode-definitions/lldp.xml.in                    |  37 +
 op-mode-definitions/monitor-bandwidth-test.xml     |  29 -
 op-mode-definitions/monitor-bandwidth-test.xml.in  |  29 +
 op-mode-definitions/monitor-bandwidth.xml          |  23 -
 op-mode-definitions/monitor-bandwidth.xml.in       |  23 +
 op-mode-definitions/monitor-log.xml                |  13 -
 op-mode-definitions/monitor-log.xml.in             |  13 +
 op-mode-definitions/monitor-ndp.xml                |  44 --
 op-mode-definitions/monitor-ndp.xml.in             |  44 ++
 op-mode-definitions/nat.xml                        |  98 ---
 op-mode-definitions/nat.xml.in                     |  98 +++
 op-mode-definitions/openconnect.xml                |  20 -
 op-mode-definitions/openconnect.xml.in             |  20 +
 op-mode-definitions/openvpn.xml                    | 140 ----
 op-mode-definitions/openvpn.xml.in                 | 139 ++++
 op-mode-definitions/ping.xml                       |  23 -
 op-mode-definitions/ping.xml.in                    |  23 +
 op-mode-definitions/poweroff.xml                   |  52 --
 op-mode-definitions/poweroff.xml.in                |  52 ++
 op-mode-definitions/pppoe-server.xml               | 104 ---
 op-mode-definitions/pppoe-server.xml.in            | 104 +++
 op-mode-definitions/pptp-server.xml                |  26 -
 op-mode-definitions/pptp-server.xml.in             |  26 +
 op-mode-definitions/reboot.xml                     |  52 --
 op-mode-definitions/reboot.xml.in                  |  52 ++
 op-mode-definitions/reset-conntrack.xml            |  16 -
 op-mode-definitions/reset-conntrack.xml.in         |  16 +
 op-mode-definitions/reset-ip-bgp.xml               | 203 ------
 op-mode-definitions/reset-ip-bgp.xml.in            | 203 ++++++
 op-mode-definitions/reset-ip-igmp.xml              |  24 -
 op-mode-definitions/reset-ip-igmp.xml.in           |  24 +
 op-mode-definitions/reset-ip-multicast.xml         |  24 -
 op-mode-definitions/reset-ip-multicast.xml.in      |  24 +
 op-mode-definitions/reset-ipv6-bgp.xml             |  62 --
 op-mode-definitions/reset-ipv6-bgp.xml.in          |  62 ++
 op-mode-definitions/reset-mpls.xml                 |  31 -
 op-mode-definitions/reset-mpls.xml.in              |  31 +
 op-mode-definitions/reset-vpn.xml                  |  96 ---
 op-mode-definitions/reset-vpn.xml.in               |  96 +++
 op-mode-definitions/restart-frr.xml                |  63 --
 op-mode-definitions/restart-frr.xml.in             |  63 ++
 op-mode-definitions/restart.xml                    |   8 -
 op-mode-definitions/restart.xml.in                 |   8 +
 op-mode-definitions/show-acceleration.xml          |  63 --
 op-mode-definitions/show-acceleration.xml.in       |  63 ++
 op-mode-definitions/show-bridge.xml                |  36 -
 op-mode-definitions/show-bridge.xml.in             |  36 +
 op-mode-definitions/show-configuration.xml         |  37 -
 op-mode-definitions/show-configuration.xml.in      |  37 +
 op-mode-definitions/show-console-server.xml        |  36 -
 op-mode-definitions/show-console-server.xml.in     |  36 +
 op-mode-definitions/show-environment.xml           |  21 -
 op-mode-definitions/show-environment.xml.in        |  21 +
 op-mode-definitions/show-hardware.xml              |  94 ---
 op-mode-definitions/show-hardware.xml.in           |  94 +++
 op-mode-definitions/show-history.xml               |  31 -
 op-mode-definitions/show-history.xml.in            |  31 +
 op-mode-definitions/show-host.xml                  |  44 --
 op-mode-definitions/show-host.xml.in               |  44 ++
 op-mode-definitions/show-interfaces-bonding.xml    |  71 --
 op-mode-definitions/show-interfaces-bonding.xml.in |  71 ++
 op-mode-definitions/show-interfaces-bridge.xml     |  48 --
 op-mode-definitions/show-interfaces-bridge.xml.in  |  48 ++
 op-mode-definitions/show-interfaces-dummy.xml      |  42 --
 op-mode-definitions/show-interfaces-dummy.xml.in   |  42 ++
 op-mode-definitions/show-interfaces-ethernet.xml   |  97 ---
 .../show-interfaces-ethernet.xml.in                |  97 +++
 op-mode-definitions/show-interfaces-input.xml      |  42 --
 op-mode-definitions/show-interfaces-input.xml.in   |  42 ++
 op-mode-definitions/show-interfaces-l2tpv3.xml     |  42 --
 op-mode-definitions/show-interfaces-l2tpv3.xml.in  |  42 ++
 op-mode-definitions/show-interfaces-loopback.xml   |  42 --
 .../show-interfaces-loopback.xml.in                |  42 ++
 op-mode-definitions/show-interfaces-macsec.xml     |  29 -
 op-mode-definitions/show-interfaces-macsec.xml.in  |  29 +
 op-mode-definitions/show-interfaces-pppoe.xml      |  51 --
 op-mode-definitions/show-interfaces-pppoe.xml.in   |  51 ++
 .../show-interfaces-pseudo-ethernet.xml            |  42 --
 .../show-interfaces-pseudo-ethernet.xml.in         |  42 ++
 op-mode-definitions/show-interfaces-tunnel.xml     |  42 --
 op-mode-definitions/show-interfaces-tunnel.xml.in  |  42 ++
 op-mode-definitions/show-interfaces-vti.xml        |  42 --
 op-mode-definitions/show-interfaces-vti.xml.in     |  42 ++
 op-mode-definitions/show-interfaces-vxlan.xml      |  42 --
 op-mode-definitions/show-interfaces-vxlan.xml.in   |  42 ++
 .../show-interfaces-wirelessmodem.xml              |  51 --
 .../show-interfaces-wirelessmodem.xml.in           |  51 ++
 op-mode-definitions/show-interfaces.xml            |  27 -
 op-mode-definitions/show-interfaces.xml.in         |  27 +
 ...show-ip-access-paths-prefix-community-lists.xml | 116 ---
 ...w-ip-access-paths-prefix-community-lists.xml.in | 116 +++
 op-mode-definitions/show-ip-bgp.xml                | 342 ---------
 op-mode-definitions/show-ip-bgp.xml.in             | 342 +++++++++
 op-mode-definitions/show-ip-igmp.xml               |  48 --
 op-mode-definitions/show-ip-igmp.xml.in            |  48 ++
 op-mode-definitions/show-ip-multicast.xml          |  42 --
 op-mode-definitions/show-ip-multicast.xml.in       |  42 ++
 op-mode-definitions/show-ip-ospf.xml               | 579 ---------------
 op-mode-definitions/show-ip-ospf.xml.in            | 579 +++++++++++++++
 op-mode-definitions/show-ip-pim.xml                |  72 --
 op-mode-definitions/show-ip-pim.xml.in             |  72 ++
 op-mode-definitions/show-ip-ports.xml              |  17 -
 op-mode-definitions/show-ip-ports.xml.in           |  17 +
 op-mode-definitions/show-ip-rip.xml                |  28 -
 op-mode-definitions/show-ip-rip.xml.in             |  28 +
 op-mode-definitions/show-ip-route.xml              | 166 -----
 op-mode-definitions/show-ip-route.xml.in           | 166 +++++
 op-mode-definitions/show-ipv6-bgp.xml              | 203 ------
 op-mode-definitions/show-ipv6-bgp.xml.in           | 203 ++++++
 op-mode-definitions/show-ipv6-ospfv3.xml           | 777 ---------------------
 op-mode-definitions/show-ipv6-ospfv3.xml.in        | 777 +++++++++++++++++++++
 op-mode-definitions/show-ipv6-prefix-list.xml      |  92 ---
 op-mode-definitions/show-ipv6-prefix-list.xml.in   |  92 +++
 op-mode-definitions/show-ipv6-route.xml            | 117 ----
 op-mode-definitions/show-ipv6-route.xml.in         | 117 ++++
 op-mode-definitions/show-ipv6.xml                  |  49 --
 op-mode-definitions/show-ipv6.xml.in               |  49 ++
 op-mode-definitions/show-isis.xml                  | 191 -----
 op-mode-definitions/show-isis.xml.in               | 191 +++++
 op-mode-definitions/show-license.xml               |  13 -
 op-mode-definitions/show-license.xml.in            |  13 +
 op-mode-definitions/show-log.xml                   | 218 ------
 op-mode-definitions/show-log.xml.in                | 218 ++++++
 op-mode-definitions/show-login.xml                 |  33 -
 op-mode-definitions/show-login.xml.in              |  33 +
 op-mode-definitions/show-monitoring.xml            |  13 -
 op-mode-definitions/show-monitoring.xml.in         |  13 +
 op-mode-definitions/show-mpls.xml                  | 218 ------
 op-mode-definitions/show-mpls.xml.in               | 218 ++++++
 op-mode-definitions/show-ntp.xml                   |  31 -
 op-mode-definitions/show-ntp.xml.in                |  31 +
 op-mode-definitions/show-poweroff.xml              |  13 -
 op-mode-definitions/show-poweroff.xml.in           |  13 +
 op-mode-definitions/show-protocols-bfd.xml         |  55 --
 op-mode-definitions/show-protocols-bfd.xml.in      |  55 ++
 op-mode-definitions/show-protocols-static.xml      |  49 --
 op-mode-definitions/show-protocols-static.xml.in   |  49 ++
 op-mode-definitions/show-raid.xml                  |  16 -
 op-mode-definitions/show-raid.xml.in               |  16 +
 op-mode-definitions/show-reboot.xml                |  13 -
 op-mode-definitions/show-reboot.xml.in             |  13 +
 op-mode-definitions/show-route-map.xml             |  22 -
 op-mode-definitions/show-route-map.xml.in          |  22 +
 op-mode-definitions/show-rpki.xml                  |  32 -
 op-mode-definitions/show-rpki.xml.in               |  32 +
 op-mode-definitions/show-system.xml                | 183 -----
 op-mode-definitions/show-system.xml.in             | 183 +++++
 op-mode-definitions/show-table.xml                 |  13 -
 op-mode-definitions/show-table.xml.in              |  13 +
 op-mode-definitions/show-users.xml                 |  30 -
 op-mode-definitions/show-users.xml.in              |  30 +
 op-mode-definitions/show-version.xml               |  33 -
 op-mode-definitions/show-version.xml.in            |  33 +
 op-mode-definitions/show-vpn.xml                   |  20 -
 op-mode-definitions/show-vpn.xml.in                |  20 +
 op-mode-definitions/show-vrf.xml                   |  30 -
 op-mode-definitions/show-vrf.xml.in                |  30 +
 op-mode-definitions/snmp.xml                       | 111 ---
 op-mode-definitions/snmp.xml.in                    | 111 +++
 op-mode-definitions/sstp-server.xml                |  26 -
 op-mode-definitions/sstp-server.xml.in             |  26 +
 op-mode-definitions/telnet.xml                     |  30 -
 op-mode-definitions/telnet.xml.in                  |  30 +
 op-mode-definitions/terminal.xml                   | 122 ----
 op-mode-definitions/terminal.xml.in                | 122 ++++
 op-mode-definitions/traceroute.xml                 | 227 ------
 op-mode-definitions/traceroute.xml.in              | 227 ++++++
 op-mode-definitions/traffic-dump.xml               |  45 --
 op-mode-definitions/traffic-dump.xml.in            |  45 ++
 op-mode-definitions/vrrp.xml                       |  37 -
 op-mode-definitions/vrrp.xml.in                    |  37 +
 op-mode-definitions/wake-on-lan.xml                |  26 -
 op-mode-definitions/wake-on-lan.xml.in             |  26 +
 op-mode-definitions/webproxy.xml                   | 110 ---
 op-mode-definitions/webproxy.xml.in                | 110 +++
 op-mode-definitions/wireguard.xml                  | 138 ----
 op-mode-definitions/wireguard.xml.in               | 137 ++++
 op-mode-definitions/wireless.xml                   | 119 ----
 op-mode-definitions/wireless.xml.in                | 119 ++++
 227 files changed, 8501 insertions(+), 8504 deletions(-)
 delete mode 100644 op-mode-definitions/add-system-image.xml
 create mode 100644 op-mode-definitions/add-system-image.xml.in
 delete mode 100644 op-mode-definitions/clear-ip.xml
 create mode 100644 op-mode-definitions/clear-ip.xml.in
 delete mode 100644 op-mode-definitions/clear-ipv6.xml
 create mode 100644 op-mode-definitions/clear-ipv6.xml.in
 delete mode 100644 op-mode-definitions/configure.xml
 create mode 100644 op-mode-definitions/configure.xml.in
 delete mode 100644 op-mode-definitions/connect.xml
 create mode 100644 op-mode-definitions/connect.xml.in
 delete mode 100644 op-mode-definitions/date.xml
 create mode 100644 op-mode-definitions/date.xml.in
 delete mode 100644 op-mode-definitions/dhcp.xml
 create mode 100644 op-mode-definitions/dhcp.xml.in
 delete mode 100644 op-mode-definitions/disconnect.xml
 create mode 100644 op-mode-definitions/disconnect.xml.in
 delete mode 100644 op-mode-definitions/disks.xml
 create mode 100644 op-mode-definitions/disks.xml.in
 delete mode 100644 op-mode-definitions/dns-dynamic.xml
 create mode 100644 op-mode-definitions/dns-dynamic.xml.in
 delete mode 100644 op-mode-definitions/dns-forwarding.xml
 create mode 100644 op-mode-definitions/dns-forwarding.xml.in
 delete mode 100644 op-mode-definitions/flow-accounting-op.xml
 create mode 100644 op-mode-definitions/flow-accounting-op.xml.in
 delete mode 100644 op-mode-definitions/force-arp.xml
 create mode 100644 op-mode-definitions/force-arp.xml.in
 delete mode 100644 op-mode-definitions/force-ipv6-nd.xml
 create mode 100644 op-mode-definitions/force-ipv6-nd.xml.in
 delete mode 100644 op-mode-definitions/force-ipv6-rd.xml
 create mode 100644 op-mode-definitions/force-ipv6-rd.xml.in
 delete mode 100644 op-mode-definitions/force-mtu-host.xml
 create mode 100644 op-mode-definitions/force-mtu-host.xml.in
 delete mode 100644 op-mode-definitions/generate-macsec-key.xml
 create mode 100644 op-mode-definitions/generate-macsec-key.xml.in
 delete mode 100644 op-mode-definitions/generate-ssh-server-key.xml
 create mode 100644 op-mode-definitions/generate-ssh-server-key.xml.in
 delete mode 100644 op-mode-definitions/igmp-proxy.xml
 create mode 100644 op-mode-definitions/igmp-proxy.xml.in
 delete mode 100644 op-mode-definitions/ipoe-server.xml
 create mode 100644 op-mode-definitions/ipoe-server.xml.in
 delete mode 100644 op-mode-definitions/ipv4-route.xml
 create mode 100644 op-mode-definitions/ipv4-route.xml.in
 delete mode 100644 op-mode-definitions/ipv6-route.xml
 create mode 100644 op-mode-definitions/ipv6-route.xml.in
 delete mode 100644 op-mode-definitions/l2tp-server.xml
 create mode 100644 op-mode-definitions/l2tp-server.xml.in
 delete mode 100644 op-mode-definitions/lldp.xml
 create mode 100644 op-mode-definitions/lldp.xml.in
 delete mode 100644 op-mode-definitions/monitor-bandwidth-test.xml
 create mode 100644 op-mode-definitions/monitor-bandwidth-test.xml.in
 delete mode 100644 op-mode-definitions/monitor-bandwidth.xml
 create mode 100644 op-mode-definitions/monitor-bandwidth.xml.in
 delete mode 100644 op-mode-definitions/monitor-log.xml
 create mode 100644 op-mode-definitions/monitor-log.xml.in
 delete mode 100644 op-mode-definitions/monitor-ndp.xml
 create mode 100644 op-mode-definitions/monitor-ndp.xml.in
 delete mode 100644 op-mode-definitions/nat.xml
 create mode 100644 op-mode-definitions/nat.xml.in
 delete mode 100644 op-mode-definitions/openconnect.xml
 create mode 100644 op-mode-definitions/openconnect.xml.in
 delete mode 100644 op-mode-definitions/openvpn.xml
 create mode 100644 op-mode-definitions/openvpn.xml.in
 delete mode 100644 op-mode-definitions/ping.xml
 create mode 100644 op-mode-definitions/ping.xml.in
 delete mode 100644 op-mode-definitions/poweroff.xml
 create mode 100644 op-mode-definitions/poweroff.xml.in
 delete mode 100644 op-mode-definitions/pppoe-server.xml
 create mode 100644 op-mode-definitions/pppoe-server.xml.in
 delete mode 100644 op-mode-definitions/pptp-server.xml
 create mode 100644 op-mode-definitions/pptp-server.xml.in
 delete mode 100644 op-mode-definitions/reboot.xml
 create mode 100644 op-mode-definitions/reboot.xml.in
 delete mode 100644 op-mode-definitions/reset-conntrack.xml
 create mode 100644 op-mode-definitions/reset-conntrack.xml.in
 delete mode 100644 op-mode-definitions/reset-ip-bgp.xml
 create mode 100644 op-mode-definitions/reset-ip-bgp.xml.in
 delete mode 100644 op-mode-definitions/reset-ip-igmp.xml
 create mode 100644 op-mode-definitions/reset-ip-igmp.xml.in
 delete mode 100644 op-mode-definitions/reset-ip-multicast.xml
 create mode 100644 op-mode-definitions/reset-ip-multicast.xml.in
 delete mode 100644 op-mode-definitions/reset-ipv6-bgp.xml
 create mode 100644 op-mode-definitions/reset-ipv6-bgp.xml.in
 delete mode 100644 op-mode-definitions/reset-mpls.xml
 create mode 100644 op-mode-definitions/reset-mpls.xml.in
 delete mode 100644 op-mode-definitions/reset-vpn.xml
 create mode 100644 op-mode-definitions/reset-vpn.xml.in
 delete mode 100644 op-mode-definitions/restart-frr.xml
 create mode 100644 op-mode-definitions/restart-frr.xml.in
 delete mode 100644 op-mode-definitions/restart.xml
 create mode 100644 op-mode-definitions/restart.xml.in
 delete mode 100644 op-mode-definitions/show-acceleration.xml
 create mode 100644 op-mode-definitions/show-acceleration.xml.in
 delete mode 100644 op-mode-definitions/show-bridge.xml
 create mode 100644 op-mode-definitions/show-bridge.xml.in
 delete mode 100644 op-mode-definitions/show-configuration.xml
 create mode 100644 op-mode-definitions/show-configuration.xml.in
 delete mode 100644 op-mode-definitions/show-console-server.xml
 create mode 100644 op-mode-definitions/show-console-server.xml.in
 delete mode 100644 op-mode-definitions/show-environment.xml
 create mode 100644 op-mode-definitions/show-environment.xml.in
 delete mode 100644 op-mode-definitions/show-hardware.xml
 create mode 100644 op-mode-definitions/show-hardware.xml.in
 delete mode 100644 op-mode-definitions/show-history.xml
 create mode 100644 op-mode-definitions/show-history.xml.in
 delete mode 100644 op-mode-definitions/show-host.xml
 create mode 100644 op-mode-definitions/show-host.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-bonding.xml
 create mode 100644 op-mode-definitions/show-interfaces-bonding.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-bridge.xml
 create mode 100644 op-mode-definitions/show-interfaces-bridge.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-dummy.xml
 create mode 100644 op-mode-definitions/show-interfaces-dummy.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-ethernet.xml
 create mode 100644 op-mode-definitions/show-interfaces-ethernet.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-input.xml
 create mode 100644 op-mode-definitions/show-interfaces-input.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-l2tpv3.xml
 create mode 100644 op-mode-definitions/show-interfaces-l2tpv3.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-loopback.xml
 create mode 100644 op-mode-definitions/show-interfaces-loopback.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-macsec.xml
 create mode 100644 op-mode-definitions/show-interfaces-macsec.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-pppoe.xml
 create mode 100644 op-mode-definitions/show-interfaces-pppoe.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-pseudo-ethernet.xml
 create mode 100644 op-mode-definitions/show-interfaces-pseudo-ethernet.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-tunnel.xml
 create mode 100644 op-mode-definitions/show-interfaces-tunnel.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-vti.xml
 create mode 100644 op-mode-definitions/show-interfaces-vti.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-vxlan.xml
 create mode 100644 op-mode-definitions/show-interfaces-vxlan.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces-wirelessmodem.xml
 create mode 100644 op-mode-definitions/show-interfaces-wirelessmodem.xml.in
 delete mode 100644 op-mode-definitions/show-interfaces.xml
 create mode 100644 op-mode-definitions/show-interfaces.xml.in
 delete mode 100644 op-mode-definitions/show-ip-access-paths-prefix-community-lists.xml
 create mode 100644 op-mode-definitions/show-ip-access-paths-prefix-community-lists.xml.in
 delete mode 100644 op-mode-definitions/show-ip-bgp.xml
 create mode 100644 op-mode-definitions/show-ip-bgp.xml.in
 delete mode 100644 op-mode-definitions/show-ip-igmp.xml
 create mode 100644 op-mode-definitions/show-ip-igmp.xml.in
 delete mode 100644 op-mode-definitions/show-ip-multicast.xml
 create mode 100644 op-mode-definitions/show-ip-multicast.xml.in
 delete mode 100644 op-mode-definitions/show-ip-ospf.xml
 create mode 100644 op-mode-definitions/show-ip-ospf.xml.in
 delete mode 100644 op-mode-definitions/show-ip-pim.xml
 create mode 100644 op-mode-definitions/show-ip-pim.xml.in
 delete mode 100644 op-mode-definitions/show-ip-ports.xml
 create mode 100644 op-mode-definitions/show-ip-ports.xml.in
 delete mode 100644 op-mode-definitions/show-ip-rip.xml
 create mode 100644 op-mode-definitions/show-ip-rip.xml.in
 delete mode 100644 op-mode-definitions/show-ip-route.xml
 create mode 100644 op-mode-definitions/show-ip-route.xml.in
 delete mode 100644 op-mode-definitions/show-ipv6-bgp.xml
 create mode 100644 op-mode-definitions/show-ipv6-bgp.xml.in
 delete mode 100644 op-mode-definitions/show-ipv6-ospfv3.xml
 create mode 100644 op-mode-definitions/show-ipv6-ospfv3.xml.in
 delete mode 100644 op-mode-definitions/show-ipv6-prefix-list.xml
 create mode 100644 op-mode-definitions/show-ipv6-prefix-list.xml.in
 delete mode 100644 op-mode-definitions/show-ipv6-route.xml
 create mode 100644 op-mode-definitions/show-ipv6-route.xml.in
 delete mode 100644 op-mode-definitions/show-ipv6.xml
 create mode 100644 op-mode-definitions/show-ipv6.xml.in
 delete mode 100644 op-mode-definitions/show-isis.xml
 create mode 100644 op-mode-definitions/show-isis.xml.in
 delete mode 100644 op-mode-definitions/show-license.xml
 create mode 100644 op-mode-definitions/show-license.xml.in
 delete mode 100644 op-mode-definitions/show-log.xml
 create mode 100644 op-mode-definitions/show-log.xml.in
 delete mode 100644 op-mode-definitions/show-login.xml
 create mode 100644 op-mode-definitions/show-login.xml.in
 delete mode 100644 op-mode-definitions/show-monitoring.xml
 create mode 100644 op-mode-definitions/show-monitoring.xml.in
 delete mode 100644 op-mode-definitions/show-mpls.xml
 create mode 100644 op-mode-definitions/show-mpls.xml.in
 delete mode 100644 op-mode-definitions/show-ntp.xml
 create mode 100644 op-mode-definitions/show-ntp.xml.in
 delete mode 100644 op-mode-definitions/show-poweroff.xml
 create mode 100644 op-mode-definitions/show-poweroff.xml.in
 delete mode 100644 op-mode-definitions/show-protocols-bfd.xml
 create mode 100644 op-mode-definitions/show-protocols-bfd.xml.in
 delete mode 100644 op-mode-definitions/show-protocols-static.xml
 create mode 100644 op-mode-definitions/show-protocols-static.xml.in
 delete mode 100644 op-mode-definitions/show-raid.xml
 create mode 100644 op-mode-definitions/show-raid.xml.in
 delete mode 100644 op-mode-definitions/show-reboot.xml
 create mode 100644 op-mode-definitions/show-reboot.xml.in
 delete mode 100644 op-mode-definitions/show-route-map.xml
 create mode 100644 op-mode-definitions/show-route-map.xml.in
 delete mode 100644 op-mode-definitions/show-rpki.xml
 create mode 100644 op-mode-definitions/show-rpki.xml.in
 delete mode 100644 op-mode-definitions/show-system.xml
 create mode 100644 op-mode-definitions/show-system.xml.in
 delete mode 100644 op-mode-definitions/show-table.xml
 create mode 100644 op-mode-definitions/show-table.xml.in
 delete mode 100644 op-mode-definitions/show-users.xml
 create mode 100644 op-mode-definitions/show-users.xml.in
 delete mode 100644 op-mode-definitions/show-version.xml
 create mode 100644 op-mode-definitions/show-version.xml.in
 delete mode 100644 op-mode-definitions/show-vpn.xml
 create mode 100644 op-mode-definitions/show-vpn.xml.in
 delete mode 100644 op-mode-definitions/show-vrf.xml
 create mode 100644 op-mode-definitions/show-vrf.xml.in
 delete mode 100644 op-mode-definitions/snmp.xml
 create mode 100644 op-mode-definitions/snmp.xml.in
 delete mode 100644 op-mode-definitions/sstp-server.xml
 create mode 100644 op-mode-definitions/sstp-server.xml.in
 delete mode 100644 op-mode-definitions/telnet.xml
 create mode 100644 op-mode-definitions/telnet.xml.in
 delete mode 100644 op-mode-definitions/terminal.xml
 create mode 100644 op-mode-definitions/terminal.xml.in
 delete mode 100644 op-mode-definitions/traceroute.xml
 create mode 100644 op-mode-definitions/traceroute.xml.in
 delete mode 100644 op-mode-definitions/traffic-dump.xml
 create mode 100644 op-mode-definitions/traffic-dump.xml.in
 delete mode 100644 op-mode-definitions/vrrp.xml
 create mode 100644 op-mode-definitions/vrrp.xml.in
 delete mode 100644 op-mode-definitions/wake-on-lan.xml
 create mode 100644 op-mode-definitions/wake-on-lan.xml.in
 delete mode 100644 op-mode-definitions/webproxy.xml
 create mode 100644 op-mode-definitions/webproxy.xml.in
 delete mode 100644 op-mode-definitions/wireguard.xml
 create mode 100644 op-mode-definitions/wireguard.xml.in
 delete mode 100644 op-mode-definitions/wireless.xml
 create mode 100644 op-mode-definitions/wireless.xml.in

diff --git a/Makefile b/Makefile
index 588595e42..3f13c66a0 100644
--- a/Makefile
+++ b/Makefile
@@ -8,8 +8,10 @@ CC := gcc
 LIBS := -lzmq
 CFLAGS :=
 
-src = $(wildcard interface-definitions/*.xml.in)
-obj = $(src:.xml.in=.xml)
+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 $<
@@ -23,15 +25,12 @@ obj = $(src:.xml.in=.xml)
 	# -nostdinc  Do not search the standard system directories for header files
 	# -P         Inhibit generation of linemarkers in the output from the
 	#            preprocessor
-	@$(CC) -x c-header -E -undef -nostdinc -P -I$(CURDIR)/interface-definitions -o $(BUILD_DIR)/$@ -c $<
-
-$(BUILD_DIR):
-	install -d -m 0755 $(BUILD_DIR)/interface-definitions
-	install -d -m 0755 $(BUILD_DIR)/op-mode-definitions
+	mkdir -p $(BUILD_DIR)/$(dir $@)
+	@$(CC) -x c-header -E -undef -nostdinc -P -I$(CURDIR)/$(dir $<) -o $(BUILD_DIR)/$@ -c $<
 
 .PHONY: interface_definitions
 .ONESHELL:
-interface_definitions: $(BUILD_DIR) $(obj)
+interface_definitions: $(config_xml_obj)
 	mkdir -p $(TMPL_DIR)
 
 	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
@@ -62,10 +61,10 @@ interface_definitions: $(BUILD_DIR) $(obj)
 
 .PHONY: op_mode_definitions
 .ONESHELL:
-op_mode_definitions:
+op_mode_definitions: $(op_xml_obj)
 	mkdir -p $(OP_TMPL_DIR)
 
-	find $(CURDIR)/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
+	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
@@ -87,7 +86,7 @@ op_mode_definitions:
 
 .PHONY: component_versions
 .ONESHELL:
-component_versions: $(BUILD_DIR) $(obj)
+component_versions: interface_definitions
 	$(CURDIR)/scripts/build-component-versions $(BUILD_DIR)/interface-definitions $(DATA_DIR)
 
 .PHONY: vyshim
diff --git a/op-mode-definitions/add-system-image.xml b/op-mode-definitions/add-system-image.xml
deleted file mode 100644
index 3dc1c67ab..000000000
--- a/op-mode-definitions/add-system-image.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="add">
-    <children>
-      <node name="system">
-        <properties>
-          <help>Add item to a system facility</help>
-        </properties>
-        <children>
-          <tagNode name="image">
-            <properties>
-              <help>Add a new image to the system</help>
-              <completionHelp>
-                  <list>/path/to/vyos-image.iso http://example.com/vyos-image.iso</list>
-              </completionHelp>
-            </properties>
-            <command>sudo ${vyatta_sbindir}/install-image --url "${4}"</command>
-            <children>
-              <tagNode name="vrf">
-                <properties>
-                  <help>Download image via specified VRF</help>
-                  <completionHelp>
-                    <path>vrf name</path>
-                  </completionHelp>
-                </properties>
-                <command>sudo ${vyatta_sbindir}/install-image --url "${4}" --vrf "${6}"</command>
-                <children>
-                  <tagNode name="username">
-                    <properties>
-                      <help>Username for authentication</help>
-                    </properties>
-                    <children>
-                      <tagNode name="password">
-                        <properties>
-                          <help>Password to use with authentication</help>
-                        </properties>
-                        <command>sudo ${vyatta_sbindir}/install-image --url "${4}" --vrf "${6}" --username "${8}" --password "${10}"</command>
-                      </tagNode>
-                    </children>
-                  </tagNode>
-                </children>
-              </tagNode>
-              <tagNode name="username">
-                <properties>
-                  <help>Username for authentication</help>
-                </properties>
-                <children>
-                  <tagNode name="password">
-                    <properties>
-                      <help>Password to use with authentication</help>
-                    </properties>
-                    <command>sudo ${vyatta_sbindir}/install-image --url "${4}" --username "${6}" --password "${8}"</command>
-                  </tagNode>
-                </children>
-              </tagNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/add-system-image.xml.in b/op-mode-definitions/add-system-image.xml.in
new file mode 100644
index 000000000..67d8aa3b4
--- /dev/null
+++ b/op-mode-definitions/add-system-image.xml.in
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="add">
+    <children>
+      <node name="system">
+        <properties>
+          <help>Add item to a system facility</help>
+        </properties>
+        <children>
+          <tagNode name="image">
+            <properties>
+              <help>Add a new image to the system</help>
+              <completionHelp>
+                <list>/path/to/vyos-image.iso "http://example.com/vyos-image.iso"</list>
+              </completionHelp>
+            </properties>
+            <command>sudo ${vyatta_sbindir}/install-image --url "${4}"</command>
+            <children>
+              <tagNode name="vrf">
+                <properties>
+                  <help>Download image via specified VRF</help>
+                  <completionHelp>
+                    <path>vrf name</path>
+                  </completionHelp>
+                </properties>
+                <command>sudo ${vyatta_sbindir}/install-image --url "${4}" --vrf "${6}"</command>
+                <children>
+                  <tagNode name="username">
+                    <properties>
+                      <help>Username for authentication</help>
+                    </properties>
+                    <children>
+                      <tagNode name="password">
+                        <properties>
+                          <help>Password to use with authentication</help>
+                        </properties>
+                        <command>sudo ${vyatta_sbindir}/install-image --url "${4}" --vrf "${6}" --username "${8}" --password "${10}"</command>
+                      </tagNode>
+                    </children>
+                  </tagNode>
+                </children>
+              </tagNode>
+              <tagNode name="username">
+                <properties>
+                  <help>Username for authentication</help>
+                </properties>
+                <children>
+                  <tagNode name="password">
+                    <properties>
+                      <help>Password to use with authentication</help>
+                    </properties>
+                    <command>sudo ${vyatta_sbindir}/install-image --url "${4}" --username "${6}" --password "${8}"</command>
+                  </tagNode>
+                </children>
+              </tagNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/clear-ip.xml b/op-mode-definitions/clear-ip.xml
deleted file mode 100644
index 3c75ed11b..000000000
--- a/op-mode-definitions/clear-ip.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="clear">
-    <children>
-      <node name="ip">
-        <properties>
-          <help>Clear Internet Protocol (IP) statistics or status</help>
-        </properties>
-        <children>
-          <node name="prefix-list">
-            <properties>
-              <help>Clear prefix-list statistics or status</help>
-            </properties>
-            <command>vtysh -c "$*"</command>
-          </node>
-          <tagNode name="prefix-list">
-            <properties>
-              <help>Clear prefix-list statistics or status for specified word</help>
-              <completionHelp>
-                <list>&lt;WORD&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>vtysh -c "$*"</command>
-            <children>
-              <leafNode name="node.tag">
-                <properties>
-                  <help>Clear prefix-list statistics or status for given word|network</help>
-                  <completionHelp>
-                    <list>&lt;x.x.x.x/x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "$*"</command>
-              </leafNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/clear-ip.xml.in b/op-mode-definitions/clear-ip.xml.in
new file mode 100644
index 000000000..3c75ed11b
--- /dev/null
+++ b/op-mode-definitions/clear-ip.xml.in
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="clear">
+    <children>
+      <node name="ip">
+        <properties>
+          <help>Clear Internet Protocol (IP) statistics or status</help>
+        </properties>
+        <children>
+          <node name="prefix-list">
+            <properties>
+              <help>Clear prefix-list statistics or status</help>
+            </properties>
+            <command>vtysh -c "$*"</command>
+          </node>
+          <tagNode name="prefix-list">
+            <properties>
+              <help>Clear prefix-list statistics or status for specified word</help>
+              <completionHelp>
+                <list>&lt;WORD&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>vtysh -c "$*"</command>
+            <children>
+              <leafNode name="node.tag">
+                <properties>
+                  <help>Clear prefix-list statistics or status for given word|network</help>
+                  <completionHelp>
+                    <list>&lt;x.x.x.x/x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "$*"</command>
+              </leafNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/clear-ipv6.xml b/op-mode-definitions/clear-ipv6.xml
deleted file mode 100644
index c062102fc..000000000
--- a/op-mode-definitions/clear-ipv6.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="clear">
-    <children>
-      <node name="ipv6">
-        <properties>
-          <help>Clear Internet Protocol (IPv6) statistics or status</help>
-        </properties>
-        <children>
-          <node name="prefix-list">
-            <properties>
-              <help>Clear prefix-list statistics or status</help>
-            </properties>
-            <command>vtysh -c "$*"</command>
-          </node>
-          <tagNode name="prefix-list">
-            <properties>
-              <help>Clear prefix-list statistics or status for specified word</help>
-              <completionHelp>
-                <list>WORD</list>
-              </completionHelp>
-            </properties>
-            <command>vtysh -c "$*"</command>
-            <children>
-              <leafNode name="node.tag">
-                <properties>
-                  <help>Clear prefix-list statistics or status for given word|network</help>
-                  <completionHelp>
-                    <list>&lt;h:h:h:h:h:h:h:h/x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "$*"</command>
-              </leafNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/clear-ipv6.xml.in b/op-mode-definitions/clear-ipv6.xml.in
new file mode 100644
index 000000000..c062102fc
--- /dev/null
+++ b/op-mode-definitions/clear-ipv6.xml.in
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="clear">
+    <children>
+      <node name="ipv6">
+        <properties>
+          <help>Clear Internet Protocol (IPv6) statistics or status</help>
+        </properties>
+        <children>
+          <node name="prefix-list">
+            <properties>
+              <help>Clear prefix-list statistics or status</help>
+            </properties>
+            <command>vtysh -c "$*"</command>
+          </node>
+          <tagNode name="prefix-list">
+            <properties>
+              <help>Clear prefix-list statistics or status for specified word</help>
+              <completionHelp>
+                <list>WORD</list>
+              </completionHelp>
+            </properties>
+            <command>vtysh -c "$*"</command>
+            <children>
+              <leafNode name="node.tag">
+                <properties>
+                  <help>Clear prefix-list statistics or status for given word|network</help>
+                  <completionHelp>
+                    <list>&lt;h:h:h:h:h:h:h:h/x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "$*"</command>
+              </leafNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/configure.xml b/op-mode-definitions/configure.xml
deleted file mode 100644
index 3dd5a0f45..000000000
--- a/op-mode-definitions/configure.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="configure">
-    <properties>
-      <help>Enter configuration mode</help>
-    </properties>
-    <command>if [ `id -u` == 0 ]; then
-        echo "You are attempting to enter configuration mode as root."
-        echo "It may have unintended consequences and render your system"
-        echo "unusable until restart."
-        echo "Please do it as an administrator level VyOS user instead."
-    else
-        if grep -q -e '^overlay.*/filesystem.squashfs' /proc/mounts; then
-            echo "WARNING: You are currently configuring a live-ISO environment, changes will not persist until installed"
-        fi
-        history -w
-        export _OFR_CONFIGURE=ok
-        newgrp vyattacfg
-        unset _OFR_CONFIGURE
-        _vyatta_op_do_key_bindings
-        history -r
-    fi</command>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/configure.xml.in b/op-mode-definitions/configure.xml.in
new file mode 100644
index 000000000..3dd5a0f45
--- /dev/null
+++ b/op-mode-definitions/configure.xml.in
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="configure">
+    <properties>
+      <help>Enter configuration mode</help>
+    </properties>
+    <command>if [ `id -u` == 0 ]; then
+        echo "You are attempting to enter configuration mode as root."
+        echo "It may have unintended consequences and render your system"
+        echo "unusable until restart."
+        echo "Please do it as an administrator level VyOS user instead."
+    else
+        if grep -q -e '^overlay.*/filesystem.squashfs' /proc/mounts; then
+            echo "WARNING: You are currently configuring a live-ISO environment, changes will not persist until installed"
+        fi
+        history -w
+        export _OFR_CONFIGURE=ok
+        newgrp vyattacfg
+        unset _OFR_CONFIGURE
+        _vyatta_op_do_key_bindings
+        history -r
+    fi</command>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/connect.xml b/op-mode-definitions/connect.xml
deleted file mode 100644
index 1ec62949a..000000000
--- a/op-mode-definitions/connect.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="connect">
-    <properties>
-      <help>Establish connection</help>
-    </properties>
-    <children>
-      <tagNode name="console">
-        <properties>
-          <help>Connect to device attached to serial console server</help>
-          <completionHelp>
-            <path>service console-server device</path>
-          </completionHelp>
-        </properties>
-        <command>/usr/bin/console "$3"</command>
-      </tagNode>
-      <tagNode name="interface">
-        <properties>
-          <help>Bring up a connection-oriented network interface</help>
-          <completionHelp>
-            <path>interfaces pppoe</path>
-            <path>interfaces wirelessmodem</path>
-          </completionHelp>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/connect_disconnect.py --connect "$3"</command>
-      </tagNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/connect.xml.in b/op-mode-definitions/connect.xml.in
new file mode 100644
index 000000000..1ec62949a
--- /dev/null
+++ b/op-mode-definitions/connect.xml.in
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="connect">
+    <properties>
+      <help>Establish connection</help>
+    </properties>
+    <children>
+      <tagNode name="console">
+        <properties>
+          <help>Connect to device attached to serial console server</help>
+          <completionHelp>
+            <path>service console-server device</path>
+          </completionHelp>
+        </properties>
+        <command>/usr/bin/console "$3"</command>
+      </tagNode>
+      <tagNode name="interface">
+        <properties>
+          <help>Bring up a connection-oriented network interface</help>
+          <completionHelp>
+            <path>interfaces pppoe</path>
+            <path>interfaces wirelessmodem</path>
+          </completionHelp>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/connect_disconnect.py --connect "$3"</command>
+      </tagNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/date.xml b/op-mode-definitions/date.xml
deleted file mode 100644
index 15a69dbd9..000000000
--- a/op-mode-definitions/date.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="date">
-        <properties>
-          <help>Show system time and date</help>
-        </properties>
-        <command>/bin/date</command>
-        <children>
-          <node name="utc">
-            <properties>
-              <help>Show system date and time as Coordinated Universal Time</help>
-            </properties>
-            <command>/bin/date -u</command>
-            <children>
-              <leafNode name="maya">
-                <properties>
-                  <help>Show UTC date in Maya calendar format</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/maya_date.py $(date +%s)</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="set">
-    <children>
-      <tagNode name="date">
-        <properties>
-          <help>Set system date and time</help>
-          <completionHelp>
-            <list>&lt;MMDDhhmm&gt; &lt;MMDDhhmmYY&gt; &lt;MMDDhhmmCCYY&gt; &lt;MMDDhhmmCCYY.ss&gt;</list>
-          </completionHelp>
-        </properties>
-        <command>/bin/date "$3"</command>
-      </tagNode>
-      <node name="date">
-        <properties>
-          <help>Set system date and time</help>
-        </properties>
-        <children>
-          <node name="ntp">
-            <properties>
-              <help>Set system date and time from NTP server (default: 0.pool.ntp.org)</help>
-            </properties>
-            <command>/usr/sbin/ntpdate -u 0.pool.ntp.org</command>
-          </node>
-          <tagNode name="ntp">
-            <properties>
-              <help>Set system date and time from NTP server</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_ntp_servers.sh</script>
-              </completionHelp>
-            </properties>
-            <command>/usr/sbin/ntpdate -u "$4"</command>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/date.xml.in b/op-mode-definitions/date.xml.in
new file mode 100644
index 000000000..15a69dbd9
--- /dev/null
+++ b/op-mode-definitions/date.xml.in
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="date">
+        <properties>
+          <help>Show system time and date</help>
+        </properties>
+        <command>/bin/date</command>
+        <children>
+          <node name="utc">
+            <properties>
+              <help>Show system date and time as Coordinated Universal Time</help>
+            </properties>
+            <command>/bin/date -u</command>
+            <children>
+              <leafNode name="maya">
+                <properties>
+                  <help>Show UTC date in Maya calendar format</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/maya_date.py $(date +%s)</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="set">
+    <children>
+      <tagNode name="date">
+        <properties>
+          <help>Set system date and time</help>
+          <completionHelp>
+            <list>&lt;MMDDhhmm&gt; &lt;MMDDhhmmYY&gt; &lt;MMDDhhmmCCYY&gt; &lt;MMDDhhmmCCYY.ss&gt;</list>
+          </completionHelp>
+        </properties>
+        <command>/bin/date "$3"</command>
+      </tagNode>
+      <node name="date">
+        <properties>
+          <help>Set system date and time</help>
+        </properties>
+        <children>
+          <node name="ntp">
+            <properties>
+              <help>Set system date and time from NTP server (default: 0.pool.ntp.org)</help>
+            </properties>
+            <command>/usr/sbin/ntpdate -u 0.pool.ntp.org</command>
+          </node>
+          <tagNode name="ntp">
+            <properties>
+              <help>Set system date and time from NTP server</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_ntp_servers.sh</script>
+              </completionHelp>
+            </properties>
+            <command>/usr/sbin/ntpdate -u "$4"</command>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/dhcp.xml b/op-mode-definitions/dhcp.xml
deleted file mode 100644
index 48752cfd5..000000000
--- a/op-mode-definitions/dhcp.xml
+++ /dev/null
@@ -1,203 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="dhcp">
-        <properties>
-          <help>Show DHCP (Dynamic Host Configuration Protocol) information</help>
-        </properties>
-        <children>
-          <node name="server">
-            <properties>
-              <help>Show DHCP server information</help>
-            </properties>
-            <children>
-              <node name="leases">
-                <properties>
-                  <help>Show DHCP server leases</help>
-                </properties>
-                <command>sudo ${vyos_op_scripts_dir}/show_dhcp.py --leases</command>
-                <children>
-                  <tagNode name="pool">
-                    <properties>
-                      <help>Show DHCP server leases for a specific pool</help>
-                      <completionHelp>
-                        <script>sudo ${vyos_op_scripts_dir}/show_dhcp.py --allowed pool</script>
-                      </completionHelp>
-                    </properties>
-                    <command>sudo ${vyos_op_scripts_dir}/show_dhcp.py --leases --pool $6</command>
-                  </tagNode>
-                  <tagNode name="sort">
-                    <properties>
-                      <help>Show DHCP server leases sorted by the specified key</help>
-                      <completionHelp>
-                        <script>sudo ${vyos_op_scripts_dir}/show_dhcp.py --allowed sort</script>
-                      </completionHelp>
-                    </properties>
-                    <command>sudo ${vyos_op_scripts_dir}/show_dhcp.py --leases --sort $6</command>
-                  </tagNode>
-                  <tagNode name="state">
-                    <properties>
-                      <help>Show DHCP server leases with a specific state (can be multiple, comma-separated)</help>
-                      <completionHelp>
-                        <script>sudo ${vyos_op_scripts_dir}/show_dhcp.py --allowed state</script>
-                      </completionHelp>
-                    </properties>
-                    <command>sudo ${vyos_op_scripts_dir}/show_dhcp.py --leases --state $(echo $6 | tr , " ")</command>
-                  </tagNode>
-                </children>
-              </node>
-              <node name="statistics">
-                <properties>
-                  <help>Show DHCP server statistics</help>
-                </properties>
-                <command>sudo ${vyos_op_scripts_dir}/show_dhcp.py --statistics</command>
-                <children>
-                  <tagNode name="pool">
-                    <properties>
-                      <help>Show DHCP server statistics for a specific pool</help>
-                      <completionHelp>
-                        <script>sudo ${vyos_op_scripts_dir}/show_dhcp.py --allowed pool</script>
-                      </completionHelp>
-                    </properties>
-                    <command>sudo ${vyos_op_scripts_dir}/show_dhcp.py --statistics --pool $6</command>
-                  </tagNode>
-                </children>
-              </node>
-            </children>
-          </node>
-        </children>
-      </node>
-      <node name="dhcpv6">
-        <properties>
-          <help>Show DHCPv6 (IPv6 Dynamic Host Configuration Protocol) information</help>
-        </properties>
-        <children>
-          <node name="server">
-            <properties>
-              <help>Show DHCPv6 server information</help>
-            </properties>
-            <children>
-              <node name="leases">
-                <properties>
-                  <help>Show DHCPv6 server leases</help>
-                </properties>
-                <command>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --leases</command>
-                <children>
-                  <tagNode name="pool">
-                    <properties>
-                      <help>Show DHCPv6 server leases for a specific pool</help>
-                      <completionHelp>
-                        <script>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --allowed pool</script>
-                      </completionHelp>
-                    </properties>
-                    <command>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --leases --pool $6</command>
-                  </tagNode>
-                  <tagNode name="sort">
-                    <properties>
-                      <help>Show DHCPv6 server leases sorted by the specified key</help>
-                      <completionHelp>
-                        <script>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --allowed sort</script>
-                      </completionHelp>
-                    </properties>
-                    <command>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --leases --sort $6</command>
-                  </tagNode>
-                  <tagNode name="state">
-                    <properties>
-                      <help>Show DHCPv6 server leases with a specific state (can be multiple, comma-separated)</help>
-                      <completionHelp>
-                        <script>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --allowed state</script>
-                      </completionHelp>
-                    </properties>
-                    <command>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --leases --state $(echo $6 | tr , " ")</command>
-                  </tagNode>
-                </children>
-              </node>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="restart">
-    <children>
-      <node name="dhcp">
-        <properties>
-          <help>Restart DHCP processes</help>
-        </properties>
-        <children>
-          <node name="server">
-            <properties>
-              <help>Restart the DHCP server process</help>
-            </properties>
-            <command>sudo systemctl restart isc-dhcp-server.service</command>
-          </node>
-          <node name="relay-agent">
-            <properties>
-              <help>Restart the DHCP server process</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/restart_dhcp_relay.py --ipv4</command>
-          </node>
-        </children>
-      </node>
-      <node name="dhcpv6">
-        <properties>
-          <help>Restart DHCPv6 processes</help>
-        </properties>
-        <children>
-          <node name="server">
-            <properties>
-              <help>Restart the DHCPv6 server process</help>
-            </properties>
-            <command>sudo systemctl restart isc-dhcp-server6.service</command>
-          </node>
-          <node name="relay-agent">
-            <properties>
-              <help>Restart the DHCP server process</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/restart_dhcp_relay.py --ipv6</command>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="renew">
-    <properties>
-      <help>Renew specified variable</help>
-    </properties>
-    <children>
-      <node name="dhcp">
-        <properties>
-          <help>Renew DHCP client lease</help>
-        </properties>
-        <children>
-          <tagNode name="interface">
-            <properties>
-              <help>Renew DHCP client lease for specified interface</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_interfaces.py</script>
-              </completionHelp>
-            </properties>
-            <command>sudo systemctl restart "dhclient@$4.service"</command>
-          </tagNode>
-        </children>
-      </node>
-      <node name="dhcpv6">
-        <properties>
-          <help>Renew DHCPv6 client lease</help>
-        </properties>
-        <children>
-          <tagNode name="interface">
-            <properties>
-              <help>Renew DHCPv6 client lease for specified interface</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_interfaces.py</script>
-              </completionHelp>
-            </properties>
-            <command>sudo systemctl restart "dhcp6c@$4.service"</command>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/dhcp.xml.in b/op-mode-definitions/dhcp.xml.in
new file mode 100644
index 000000000..48752cfd5
--- /dev/null
+++ b/op-mode-definitions/dhcp.xml.in
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="dhcp">
+        <properties>
+          <help>Show DHCP (Dynamic Host Configuration Protocol) information</help>
+        </properties>
+        <children>
+          <node name="server">
+            <properties>
+              <help>Show DHCP server information</help>
+            </properties>
+            <children>
+              <node name="leases">
+                <properties>
+                  <help>Show DHCP server leases</help>
+                </properties>
+                <command>sudo ${vyos_op_scripts_dir}/show_dhcp.py --leases</command>
+                <children>
+                  <tagNode name="pool">
+                    <properties>
+                      <help>Show DHCP server leases for a specific pool</help>
+                      <completionHelp>
+                        <script>sudo ${vyos_op_scripts_dir}/show_dhcp.py --allowed pool</script>
+                      </completionHelp>
+                    </properties>
+                    <command>sudo ${vyos_op_scripts_dir}/show_dhcp.py --leases --pool $6</command>
+                  </tagNode>
+                  <tagNode name="sort">
+                    <properties>
+                      <help>Show DHCP server leases sorted by the specified key</help>
+                      <completionHelp>
+                        <script>sudo ${vyos_op_scripts_dir}/show_dhcp.py --allowed sort</script>
+                      </completionHelp>
+                    </properties>
+                    <command>sudo ${vyos_op_scripts_dir}/show_dhcp.py --leases --sort $6</command>
+                  </tagNode>
+                  <tagNode name="state">
+                    <properties>
+                      <help>Show DHCP server leases with a specific state (can be multiple, comma-separated)</help>
+                      <completionHelp>
+                        <script>sudo ${vyos_op_scripts_dir}/show_dhcp.py --allowed state</script>
+                      </completionHelp>
+                    </properties>
+                    <command>sudo ${vyos_op_scripts_dir}/show_dhcp.py --leases --state $(echo $6 | tr , " ")</command>
+                  </tagNode>
+                </children>
+              </node>
+              <node name="statistics">
+                <properties>
+                  <help>Show DHCP server statistics</help>
+                </properties>
+                <command>sudo ${vyos_op_scripts_dir}/show_dhcp.py --statistics</command>
+                <children>
+                  <tagNode name="pool">
+                    <properties>
+                      <help>Show DHCP server statistics for a specific pool</help>
+                      <completionHelp>
+                        <script>sudo ${vyos_op_scripts_dir}/show_dhcp.py --allowed pool</script>
+                      </completionHelp>
+                    </properties>
+                    <command>sudo ${vyos_op_scripts_dir}/show_dhcp.py --statistics --pool $6</command>
+                  </tagNode>
+                </children>
+              </node>
+            </children>
+          </node>
+        </children>
+      </node>
+      <node name="dhcpv6">
+        <properties>
+          <help>Show DHCPv6 (IPv6 Dynamic Host Configuration Protocol) information</help>
+        </properties>
+        <children>
+          <node name="server">
+            <properties>
+              <help>Show DHCPv6 server information</help>
+            </properties>
+            <children>
+              <node name="leases">
+                <properties>
+                  <help>Show DHCPv6 server leases</help>
+                </properties>
+                <command>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --leases</command>
+                <children>
+                  <tagNode name="pool">
+                    <properties>
+                      <help>Show DHCPv6 server leases for a specific pool</help>
+                      <completionHelp>
+                        <script>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --allowed pool</script>
+                      </completionHelp>
+                    </properties>
+                    <command>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --leases --pool $6</command>
+                  </tagNode>
+                  <tagNode name="sort">
+                    <properties>
+                      <help>Show DHCPv6 server leases sorted by the specified key</help>
+                      <completionHelp>
+                        <script>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --allowed sort</script>
+                      </completionHelp>
+                    </properties>
+                    <command>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --leases --sort $6</command>
+                  </tagNode>
+                  <tagNode name="state">
+                    <properties>
+                      <help>Show DHCPv6 server leases with a specific state (can be multiple, comma-separated)</help>
+                      <completionHelp>
+                        <script>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --allowed state</script>
+                      </completionHelp>
+                    </properties>
+                    <command>sudo ${vyos_op_scripts_dir}/show_dhcpv6.py --leases --state $(echo $6 | tr , " ")</command>
+                  </tagNode>
+                </children>
+              </node>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="restart">
+    <children>
+      <node name="dhcp">
+        <properties>
+          <help>Restart DHCP processes</help>
+        </properties>
+        <children>
+          <node name="server">
+            <properties>
+              <help>Restart the DHCP server process</help>
+            </properties>
+            <command>sudo systemctl restart isc-dhcp-server.service</command>
+          </node>
+          <node name="relay-agent">
+            <properties>
+              <help>Restart the DHCP server process</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/restart_dhcp_relay.py --ipv4</command>
+          </node>
+        </children>
+      </node>
+      <node name="dhcpv6">
+        <properties>
+          <help>Restart DHCPv6 processes</help>
+        </properties>
+        <children>
+          <node name="server">
+            <properties>
+              <help>Restart the DHCPv6 server process</help>
+            </properties>
+            <command>sudo systemctl restart isc-dhcp-server6.service</command>
+          </node>
+          <node name="relay-agent">
+            <properties>
+              <help>Restart the DHCP server process</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/restart_dhcp_relay.py --ipv6</command>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="renew">
+    <properties>
+      <help>Renew specified variable</help>
+    </properties>
+    <children>
+      <node name="dhcp">
+        <properties>
+          <help>Renew DHCP client lease</help>
+        </properties>
+        <children>
+          <tagNode name="interface">
+            <properties>
+              <help>Renew DHCP client lease for specified interface</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_interfaces.py</script>
+              </completionHelp>
+            </properties>
+            <command>sudo systemctl restart "dhclient@$4.service"</command>
+          </tagNode>
+        </children>
+      </node>
+      <node name="dhcpv6">
+        <properties>
+          <help>Renew DHCPv6 client lease</help>
+        </properties>
+        <children>
+          <tagNode name="interface">
+            <properties>
+              <help>Renew DHCPv6 client lease for specified interface</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_interfaces.py</script>
+              </completionHelp>
+            </properties>
+            <command>sudo systemctl restart "dhcp6c@$4.service"</command>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/disconnect.xml b/op-mode-definitions/disconnect.xml
deleted file mode 100644
index bf2c37b89..000000000
--- a/op-mode-definitions/disconnect.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="disconnect">
-    <properties>
-      <help>Take down a connection</help>
-    </properties>
-    <children>
-      <tagNode name="interface">
-        <properties>
-          <help>Take down a connection-oriented network interface</help>
-          <completionHelp>
-            <path>interfaces pppoe</path>
-            <path>interfaces wirelessmodem</path>
-          </completionHelp>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/connect_disconnect.py --disconnect "$3"</command>
-      </tagNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/disconnect.xml.in b/op-mode-definitions/disconnect.xml.in
new file mode 100644
index 000000000..bf2c37b89
--- /dev/null
+++ b/op-mode-definitions/disconnect.xml.in
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="disconnect">
+    <properties>
+      <help>Take down a connection</help>
+    </properties>
+    <children>
+      <tagNode name="interface">
+        <properties>
+          <help>Take down a connection-oriented network interface</help>
+          <completionHelp>
+            <path>interfaces pppoe</path>
+            <path>interfaces wirelessmodem</path>
+          </completionHelp>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/connect_disconnect.py --disconnect "$3"</command>
+      </tagNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/disks.xml b/op-mode-definitions/disks.xml
deleted file mode 100644
index fb39c4f3c..000000000
--- a/op-mode-definitions/disks.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="format">
-    <properties>
-      <help>Format a device</help>
-    </properties>
-    <children>
-      <tagNode name="disk">
-        <properties>
-          <help>Format a disk drive</help>
-          <completionHelp>
-            <script>${vyos_completion_dir}/list_disks.py</script>
-          </completionHelp>
-        </properties>
-        <children>
-          <tagNode name="like">
-            <properties>
-              <help>Format this disk the same as another disk</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_disks.py --exclude ${COMP_WORDS[2]}</script>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/format_disk.py --target $3 --proto $5</command>
-          </tagNode>
-        </children>
-      </tagNode>
-    </children>
-  </node>
-
-  <node name="show">
-    <children>
-      <tagNode name="disk">
-        <properties>
-          <help>Show status of disk device</help>
-          <completionHelp>
-            <script>${vyos_completion_dir}/list_disks.py</script>
-          </completionHelp>
-        </properties>
-        <children>
-          <leafNode name="format">
-            <properties>
-              <help>Show disk drive formatting</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_disk_format.sh $3</command>
-          </leafNode>
-        </children>
-      </tagNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/disks.xml.in b/op-mode-definitions/disks.xml.in
new file mode 100644
index 000000000..fb39c4f3c
--- /dev/null
+++ b/op-mode-definitions/disks.xml.in
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="format">
+    <properties>
+      <help>Format a device</help>
+    </properties>
+    <children>
+      <tagNode name="disk">
+        <properties>
+          <help>Format a disk drive</help>
+          <completionHelp>
+            <script>${vyos_completion_dir}/list_disks.py</script>
+          </completionHelp>
+        </properties>
+        <children>
+          <tagNode name="like">
+            <properties>
+              <help>Format this disk the same as another disk</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_disks.py --exclude ${COMP_WORDS[2]}</script>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/format_disk.py --target $3 --proto $5</command>
+          </tagNode>
+        </children>
+      </tagNode>
+    </children>
+  </node>
+
+  <node name="show">
+    <children>
+      <tagNode name="disk">
+        <properties>
+          <help>Show status of disk device</help>
+          <completionHelp>
+            <script>${vyos_completion_dir}/list_disks.py</script>
+          </completionHelp>
+        </properties>
+        <children>
+          <leafNode name="format">
+            <properties>
+              <help>Show disk drive formatting</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_disk_format.sh $3</command>
+          </leafNode>
+        </children>
+      </tagNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/dns-dynamic.xml b/op-mode-definitions/dns-dynamic.xml
deleted file mode 100644
index 9c37874fb..000000000
--- a/op-mode-definitions/dns-dynamic.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="log">
-        <children>
-          <node name="dns">
-            <children>
-              <node name="dynamic">
-                <properties>
-                  <help>Show log for dynamic DNS</help>
-                </properties>
-                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e "ddclient"</command>
-              </node>
-            </children>
-          </node>
-        </children>
-      </node>
-      <node name="dns">
-        <properties>
-          <help>Show DNS information</help>
-        </properties>
-        <children>
-          <node name="dynamic">
-            <properties>
-              <help>Show Dynamic DNS information</help>
-            </properties>
-            <children>
-              <leafNode name="status">
-                <properties>
-                  <help>Show Dynamic DNS status</help>
-                </properties>
-                <command>sudo ${vyos_op_scripts_dir}/dynamic_dns.py --status</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="restart">
-    <children>
-      <node name="dns">
-        <children>
-          <node name="dynamic">
-            <properties>
-              <help>Restart Dynamic DNS service</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/dynamic_dns.py --update</command>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="update">
-    <properties>
-      <help>Update data for a service</help>
-    </properties>
-    <children>
-      <node name="dns">
-        <properties>
-          <help>Update DNS information</help>
-        </properties>
-        <children>
-          <node name="dynamic">
-            <properties>
-              <help>Update Dynamic DNS information</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/dynamic_dns.py --update</command>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/dns-dynamic.xml.in b/op-mode-definitions/dns-dynamic.xml.in
new file mode 100644
index 000000000..9c37874fb
--- /dev/null
+++ b/op-mode-definitions/dns-dynamic.xml.in
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="log">
+        <children>
+          <node name="dns">
+            <children>
+              <node name="dynamic">
+                <properties>
+                  <help>Show log for dynamic DNS</help>
+                </properties>
+                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e "ddclient"</command>
+              </node>
+            </children>
+          </node>
+        </children>
+      </node>
+      <node name="dns">
+        <properties>
+          <help>Show DNS information</help>
+        </properties>
+        <children>
+          <node name="dynamic">
+            <properties>
+              <help>Show Dynamic DNS information</help>
+            </properties>
+            <children>
+              <leafNode name="status">
+                <properties>
+                  <help>Show Dynamic DNS status</help>
+                </properties>
+                <command>sudo ${vyos_op_scripts_dir}/dynamic_dns.py --status</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="restart">
+    <children>
+      <node name="dns">
+        <children>
+          <node name="dynamic">
+            <properties>
+              <help>Restart Dynamic DNS service</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/dynamic_dns.py --update</command>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="update">
+    <properties>
+      <help>Update data for a service</help>
+    </properties>
+    <children>
+      <node name="dns">
+        <properties>
+          <help>Update DNS information</help>
+        </properties>
+        <children>
+          <node name="dynamic">
+            <properties>
+              <help>Update Dynamic DNS information</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/dynamic_dns.py --update</command>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/dns-forwarding.xml b/op-mode-definitions/dns-forwarding.xml
deleted file mode 100644
index 23de97704..000000000
--- a/op-mode-definitions/dns-forwarding.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="log">
-        <children>
-          <node name="dns">
-            <properties>
-              <help>Show log for Domain Name Service (DNS)</help>
-            </properties>
-            <children>
-              <node name="forwarding">
-                <properties>
-                  <help>Show log for DNS Forwarding</help>
-                </properties>
-                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e "pdns_recursor"</command>
-              </node>
-            </children>
-          </node>
-        </children>
-      </node>
-      <node name="dns">
-        <properties>
-          <help>Show DNS information</help>
-        </properties>
-        <children>
-          <node name="forwarding">
-            <properties>
-              <help>Show DNS forwarding information</help>
-            </properties>
-            <children>
-              <leafNode name="statistics">
-                <properties>
-                  <help>Show DNS forwarding statistics</help>
-                </properties>
-                <command>sudo ${vyos_op_scripts_dir}/dns_forwarding_statistics.py</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="restart">
-    <children>
-      <node name="dns">
-        <properties>
-          <help>Restart a DNS service</help>
-        </properties>
-        <children>
-          <leafNode name="forwarding">
-            <properties>
-              <help>Restart DNS forwarding service</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/dns_forwarding_restart.sh</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="reset">
-    <properties>
-      <help>Reset a service</help>
-    </properties>
-    <children>
-      <node name="dns">
-        <properties>
-          <help>Reset a DNS service state</help>
-        </properties>
-        <children>
-          <node name="forwarding">
-            <properties>
-              <help>Reset DNS forwarding cache</help>
-            </properties>
-            <children>
-              <tagNode name="domain">
-                <command>sudo ${vyos_op_scripts_dir}/dns_forwarding_reset.py $5</command>
-                <properties>
-                  <help>Reset DNS forwarding cache for a domain</help>
-                </properties>
-              </tagNode>
-              <leafNode name="all">
-                <command>sudo ${vyos_op_scripts_dir}/dns_forwarding_reset.py --all</command>
-                <properties>
-                  <help>Reset DNS forwarding cache</help>
-                </properties>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/dns-forwarding.xml.in b/op-mode-definitions/dns-forwarding.xml.in
new file mode 100644
index 000000000..23de97704
--- /dev/null
+++ b/op-mode-definitions/dns-forwarding.xml.in
@@ -0,0 +1,94 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="log">
+        <children>
+          <node name="dns">
+            <properties>
+              <help>Show log for Domain Name Service (DNS)</help>
+            </properties>
+            <children>
+              <node name="forwarding">
+                <properties>
+                  <help>Show log for DNS Forwarding</help>
+                </properties>
+                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e "pdns_recursor"</command>
+              </node>
+            </children>
+          </node>
+        </children>
+      </node>
+      <node name="dns">
+        <properties>
+          <help>Show DNS information</help>
+        </properties>
+        <children>
+          <node name="forwarding">
+            <properties>
+              <help>Show DNS forwarding information</help>
+            </properties>
+            <children>
+              <leafNode name="statistics">
+                <properties>
+                  <help>Show DNS forwarding statistics</help>
+                </properties>
+                <command>sudo ${vyos_op_scripts_dir}/dns_forwarding_statistics.py</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="restart">
+    <children>
+      <node name="dns">
+        <properties>
+          <help>Restart a DNS service</help>
+        </properties>
+        <children>
+          <leafNode name="forwarding">
+            <properties>
+              <help>Restart DNS forwarding service</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/dns_forwarding_restart.sh</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="reset">
+    <properties>
+      <help>Reset a service</help>
+    </properties>
+    <children>
+      <node name="dns">
+        <properties>
+          <help>Reset a DNS service state</help>
+        </properties>
+        <children>
+          <node name="forwarding">
+            <properties>
+              <help>Reset DNS forwarding cache</help>
+            </properties>
+            <children>
+              <tagNode name="domain">
+                <command>sudo ${vyos_op_scripts_dir}/dns_forwarding_reset.py $5</command>
+                <properties>
+                  <help>Reset DNS forwarding cache for a domain</help>
+                </properties>
+              </tagNode>
+              <leafNode name="all">
+                <command>sudo ${vyos_op_scripts_dir}/dns_forwarding_reset.py --all</command>
+                <properties>
+                  <help>Reset DNS forwarding cache</help>
+                </properties>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/flow-accounting-op.xml b/op-mode-definitions/flow-accounting-op.xml
deleted file mode 100644
index 912805d59..000000000
--- a/op-mode-definitions/flow-accounting-op.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- flow-accounting op mode commands -->
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="flow-accounting">
-        <properties>
-          <help>Show flow accounting statistics</help>
-        </properties>
-        <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action show</command>
-        <children>
-          <tagNode name="interface">
-            <properties>
-              <help>Show flow accounting statistics for specified interface</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_interfaces.py</script>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action show --interface $4</command>
-            <children>
-              <tagNode name="host">
-                <properties>
-                  <help>Show flow accounting statistics for specified interface/host</help>
-                  <completionHelp>
-                    <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action show --interface $4 --host $6</command>
-              </tagNode>
-              <tagNode name="port">
-                <properties>
-                  <help>Show flow accounting statistics for specified interface/port</help>
-                  <completionHelp>
-                    <list>1-65535</list>
-                  </completionHelp>
-                </properties>
-                <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action show --interface $4 --ports $6</command>
-              </tagNode>
-              <tagNode name="top">
-                <properties>
-                  <help>Show top N flows for specified interface</help>
-                  <completionHelp>
-                    <list>1-100</list>
-                  </completionHelp>
-                </properties>
-                <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action show --interface $4 --top $6</command>
-              </tagNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="restart">
-    <children>
-      <leafNode name="flow-accounting">
-        <properties>
-          <help>Restart flow-accounting service</help>
-        </properties>
-        <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action restart</command>
-      </leafNode>
-    </children>
-  </node>
-  <node name="clear">
-    <children>
-      <node name="flow-accounting">
-        <properties>
-          <help>Clear flow accounting</help>
-        </properties>
-        <children>
-          <leafNode name="counters">
-            <properties>
-              <help>Clear flow accounting statistics</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action clear</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/flow-accounting-op.xml.in b/op-mode-definitions/flow-accounting-op.xml.in
new file mode 100644
index 000000000..912805d59
--- /dev/null
+++ b/op-mode-definitions/flow-accounting-op.xml.in
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- flow-accounting op mode commands -->
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="flow-accounting">
+        <properties>
+          <help>Show flow accounting statistics</help>
+        </properties>
+        <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action show</command>
+        <children>
+          <tagNode name="interface">
+            <properties>
+              <help>Show flow accounting statistics for specified interface</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_interfaces.py</script>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action show --interface $4</command>
+            <children>
+              <tagNode name="host">
+                <properties>
+                  <help>Show flow accounting statistics for specified interface/host</help>
+                  <completionHelp>
+                    <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action show --interface $4 --host $6</command>
+              </tagNode>
+              <tagNode name="port">
+                <properties>
+                  <help>Show flow accounting statistics for specified interface/port</help>
+                  <completionHelp>
+                    <list>1-65535</list>
+                  </completionHelp>
+                </properties>
+                <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action show --interface $4 --ports $6</command>
+              </tagNode>
+              <tagNode name="top">
+                <properties>
+                  <help>Show top N flows for specified interface</help>
+                  <completionHelp>
+                    <list>1-100</list>
+                  </completionHelp>
+                </properties>
+                <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action show --interface $4 --top $6</command>
+              </tagNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="restart">
+    <children>
+      <leafNode name="flow-accounting">
+        <properties>
+          <help>Restart flow-accounting service</help>
+        </properties>
+        <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action restart</command>
+      </leafNode>
+    </children>
+  </node>
+  <node name="clear">
+    <children>
+      <node name="flow-accounting">
+        <properties>
+          <help>Clear flow accounting</help>
+        </properties>
+        <children>
+          <leafNode name="counters">
+            <properties>
+              <help>Clear flow accounting statistics</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/flow_accounting_op.py --action clear</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/force-arp.xml b/op-mode-definitions/force-arp.xml
deleted file mode 100644
index f9f7c7643..000000000
--- a/op-mode-definitions/force-arp.xml
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="force">
-    <properties>
-      <help>Force an operation</help>
-    </properties>
-    <children>
-      <node name="arp">
-        <properties>
-          <help>Send gratuitous ARP request or reply</help>
-        </properties>
-        <children>
-          <node name="reply">
-            <properties>
-              <help>Send gratuitous ARP reply</help>
-            </properties>
-            <children>
-              <tagNode name="interface">
-                <properties>
-                  <help>Send gratuitous ARP reply on specified interface</help>
-                  <completionHelp>
-                    <script>${vyos_completion_dir}/list_interfaces.py --broadcast</script>
-                  </completionHelp>
-                </properties>
-                <children>
-                  <tagNode name="address">
-                    <properties>
-                      <help>Send gratuitous ARP reply for specified address</help>
-                    </properties>
-                    <command>sudo /usr/bin/arping -I $5 -c 1 -A $7</command>
-                    <children>
-                      <tagNode name="count">
-                        <properties>
-                          <help>Send specified number of ARP replies</help>
-                        </properties>
-                        <command>sudo /usr/bin/arping -I $5 -c $9 -A $7</command>
-                      </tagNode>
-                    </children>
-                  </tagNode>
-                </children>
-              </tagNode>
-            </children>
-          </node>
-          <node name="request">
-            <properties>
-              <help>Send gratuitous ARP request</help>
-            </properties>
-            <children>
-              <tagNode name="interface">
-                <properties>
-                  <help>Send gratuitous ARP request on specified interface</help>
-                  <completionHelp>
-                    <script>${vyos_completion_dir}/list_interfaces.py --broadcast</script>
-                  </completionHelp>
-                </properties>
-                <children>
-                  <tagNode name="address">
-                    <properties>
-                      <help>Send gratuitous ARP request for specified address</help>
-                    </properties>
-                    <command>sudo /usr/bin/arping -I $5 -c 1 -U $7</command>
-                    <children>
-                      <tagNode name="count">
-                        <properties>
-                          <help>Send specified number of ARP requests</help>
-                        </properties>
-                        <command>sudo /usr/bin/arping -I $5 -c $9 -U $7</command>
-                      </tagNode>
-                    </children>
-                  </tagNode>
-                </children>
-              </tagNode>
-            </children>
-          </node>
-          <node name="duplicate">
-            <properties>
-              <help>Send ARP for DAD detection</help>
-            </properties>
-            <children>
-              <tagNode name="interface">
-                <properties>
-                  <help>Send ARP for DAD detection on specified interface</help>
-                  <completionHelp>
-                    <script>${vyos_completion_dir}/list_interfaces.py --broadcast</script>
-                  </completionHelp>
-                </properties>
-                <children>
-                  <tagNode name="address">
-                    <properties>
-                      <help>Send ARP for DAD detection for specified address</help>
-                    </properties>
-                    <command>sudo /usr/bin/arping -I $5 -c 1 -D $7</command>
-                  </tagNode>
-                </children>
-              </tagNode>
-            </children>
-          </node>
-
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/force-arp.xml.in b/op-mode-definitions/force-arp.xml.in
new file mode 100644
index 000000000..f9f7c7643
--- /dev/null
+++ b/op-mode-definitions/force-arp.xml.in
@@ -0,0 +1,103 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="force">
+    <properties>
+      <help>Force an operation</help>
+    </properties>
+    <children>
+      <node name="arp">
+        <properties>
+          <help>Send gratuitous ARP request or reply</help>
+        </properties>
+        <children>
+          <node name="reply">
+            <properties>
+              <help>Send gratuitous ARP reply</help>
+            </properties>
+            <children>
+              <tagNode name="interface">
+                <properties>
+                  <help>Send gratuitous ARP reply on specified interface</help>
+                  <completionHelp>
+                    <script>${vyos_completion_dir}/list_interfaces.py --broadcast</script>
+                  </completionHelp>
+                </properties>
+                <children>
+                  <tagNode name="address">
+                    <properties>
+                      <help>Send gratuitous ARP reply for specified address</help>
+                    </properties>
+                    <command>sudo /usr/bin/arping -I $5 -c 1 -A $7</command>
+                    <children>
+                      <tagNode name="count">
+                        <properties>
+                          <help>Send specified number of ARP replies</help>
+                        </properties>
+                        <command>sudo /usr/bin/arping -I $5 -c $9 -A $7</command>
+                      </tagNode>
+                    </children>
+                  </tagNode>
+                </children>
+              </tagNode>
+            </children>
+          </node>
+          <node name="request">
+            <properties>
+              <help>Send gratuitous ARP request</help>
+            </properties>
+            <children>
+              <tagNode name="interface">
+                <properties>
+                  <help>Send gratuitous ARP request on specified interface</help>
+                  <completionHelp>
+                    <script>${vyos_completion_dir}/list_interfaces.py --broadcast</script>
+                  </completionHelp>
+                </properties>
+                <children>
+                  <tagNode name="address">
+                    <properties>
+                      <help>Send gratuitous ARP request for specified address</help>
+                    </properties>
+                    <command>sudo /usr/bin/arping -I $5 -c 1 -U $7</command>
+                    <children>
+                      <tagNode name="count">
+                        <properties>
+                          <help>Send specified number of ARP requests</help>
+                        </properties>
+                        <command>sudo /usr/bin/arping -I $5 -c $9 -U $7</command>
+                      </tagNode>
+                    </children>
+                  </tagNode>
+                </children>
+              </tagNode>
+            </children>
+          </node>
+          <node name="duplicate">
+            <properties>
+              <help>Send ARP for DAD detection</help>
+            </properties>
+            <children>
+              <tagNode name="interface">
+                <properties>
+                  <help>Send ARP for DAD detection on specified interface</help>
+                  <completionHelp>
+                    <script>${vyos_completion_dir}/list_interfaces.py --broadcast</script>
+                  </completionHelp>
+                </properties>
+                <children>
+                  <tagNode name="address">
+                    <properties>
+                      <help>Send ARP for DAD detection for specified address</help>
+                    </properties>
+                    <command>sudo /usr/bin/arping -I $5 -c 1 -D $7</command>
+                  </tagNode>
+                </children>
+              </tagNode>
+            </children>
+          </node>
+
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/force-ipv6-nd.xml b/op-mode-definitions/force-ipv6-nd.xml
deleted file mode 100644
index 49de097f6..000000000
--- a/op-mode-definitions/force-ipv6-nd.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="force">
-    <children>
-      <node name="ipv6-nd">
-        <properties>
-          <help>IPv6 Neighbor Discovery</help>
-        </properties>
-        <children>
-          <tagNode name="interface">
-            <properties>
-              <help>IPv6 Neighbor Discovery on specified interface</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_interfaces.py</script>
-              </completionHelp>
-            </properties>
-            <children>
-              <tagNode name="address">
-                <properties>
-                  <help>IPv6 address of node to lookup</help>
-                  <completionHelp>
-                    <list>&lt;h:h:h:h:h:h:h:h&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/ndisc6 -m "$6" "$4"</command>
-              </tagNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/force-ipv6-nd.xml.in b/op-mode-definitions/force-ipv6-nd.xml.in
new file mode 100644
index 000000000..49de097f6
--- /dev/null
+++ b/op-mode-definitions/force-ipv6-nd.xml.in
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="force">
+    <children>
+      <node name="ipv6-nd">
+        <properties>
+          <help>IPv6 Neighbor Discovery</help>
+        </properties>
+        <children>
+          <tagNode name="interface">
+            <properties>
+              <help>IPv6 Neighbor Discovery on specified interface</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_interfaces.py</script>
+              </completionHelp>
+            </properties>
+            <children>
+              <tagNode name="address">
+                <properties>
+                  <help>IPv6 address of node to lookup</help>
+                  <completionHelp>
+                    <list>&lt;h:h:h:h:h:h:h:h&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/ndisc6 -m "$6" "$4"</command>
+              </tagNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/force-ipv6-rd.xml b/op-mode-definitions/force-ipv6-rd.xml
deleted file mode 100644
index 8c901af25..000000000
--- a/op-mode-definitions/force-ipv6-rd.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="force">
-    <children>
-      <node name="ipv6-rd">
-        <properties>
-          <help>IPv6 Router Discovery</help>
-        </properties>
-        <children>
-          <tagNode name="interface">
-            <properties>
-              <help>IPv6 Router Discovery on specified interface</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_interfaces.py</script>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/rdisc6 "$4"</command>
-            <children>
-              <tagNode name="address">
-                <properties>
-                  <help>IPv6 address of target</help>
-                  <completionHelp>
-                    <list>&lt;h:h:h:h:h:h:h:h&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/rdisc6 -m "$6" "$4"</command>
-              </tagNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/force-ipv6-rd.xml.in b/op-mode-definitions/force-ipv6-rd.xml.in
new file mode 100644
index 000000000..8c901af25
--- /dev/null
+++ b/op-mode-definitions/force-ipv6-rd.xml.in
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="force">
+    <children>
+      <node name="ipv6-rd">
+        <properties>
+          <help>IPv6 Router Discovery</help>
+        </properties>
+        <children>
+          <tagNode name="interface">
+            <properties>
+              <help>IPv6 Router Discovery on specified interface</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_interfaces.py</script>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/rdisc6 "$4"</command>
+            <children>
+              <tagNode name="address">
+                <properties>
+                  <help>IPv6 address of target</help>
+                  <completionHelp>
+                    <list>&lt;h:h:h:h:h:h:h:h&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/rdisc6 -m "$6" "$4"</command>
+              </tagNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/force-mtu-host.xml b/op-mode-definitions/force-mtu-host.xml
deleted file mode 100644
index b92179f11..000000000
--- a/op-mode-definitions/force-mtu-host.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="force">
-    <children>
-      <node name="mtu">
-        <properties>
-          <help>Show MTU max value for remote host protocol TCP</help>
-        </properties>
-        <children>
-          <tagNode name="host">
-            <properties>
-              <help>IP address of the remote host</help>
-              <completionHelp>
-                <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/force_mtu_host.sh $4</command>
-            <children>
-              <tagNode name="interface">
-                <properties>
-                  <help>Source interface</help>
-                  <completionHelp>
-                    <script>${vyos_completion_dir}/list_interfaces.py</script>
-                  </completionHelp>
-                </properties>
-                <command>${vyos_op_scripts_dir}/force_mtu_host.sh $4 $6</command>
-              </tagNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/force-mtu-host.xml.in b/op-mode-definitions/force-mtu-host.xml.in
new file mode 100644
index 000000000..b92179f11
--- /dev/null
+++ b/op-mode-definitions/force-mtu-host.xml.in
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="force">
+    <children>
+      <node name="mtu">
+        <properties>
+          <help>Show MTU max value for remote host protocol TCP</help>
+        </properties>
+        <children>
+          <tagNode name="host">
+            <properties>
+              <help>IP address of the remote host</help>
+              <completionHelp>
+                <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/force_mtu_host.sh $4</command>
+            <children>
+              <tagNode name="interface">
+                <properties>
+                  <help>Source interface</help>
+                  <completionHelp>
+                    <script>${vyos_completion_dir}/list_interfaces.py</script>
+                  </completionHelp>
+                </properties>
+                <command>${vyos_op_scripts_dir}/force_mtu_host.sh $4 $6</command>
+              </tagNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/generate-macsec-key.xml b/op-mode-definitions/generate-macsec-key.xml
deleted file mode 100644
index 40d2b9061..000000000
--- a/op-mode-definitions/generate-macsec-key.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="generate">
-    <children>
-      <node name="macsec">
-        <properties>
-          <help>Generate MACsec Key</help>
-        </properties>
-        <children>
-          <node name="mka-cak">
-            <properties>
-              <help>Generate MACsec connectivity association key (CAK)</help>
-            </properties>
-            <command>/usr/bin/hexdump -n 16 -e '4/4 "%08x" 1 "\n"' /dev/random</command>
-          </node>
-          <node name="mka-ckn">
-            <properties>
-              <help>Generate MACsec connectivity association name (CKN)</help>
-            </properties>
-            <command>/usr/bin/hexdump -n 32 -e '8/4 "%08x" 1 "\n"' /dev/random</command>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/generate-macsec-key.xml.in b/op-mode-definitions/generate-macsec-key.xml.in
new file mode 100644
index 000000000..40d2b9061
--- /dev/null
+++ b/op-mode-definitions/generate-macsec-key.xml.in
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="generate">
+    <children>
+      <node name="macsec">
+        <properties>
+          <help>Generate MACsec Key</help>
+        </properties>
+        <children>
+          <node name="mka-cak">
+            <properties>
+              <help>Generate MACsec connectivity association key (CAK)</help>
+            </properties>
+            <command>/usr/bin/hexdump -n 16 -e '4/4 "%08x" 1 "\n"' /dev/random</command>
+          </node>
+          <node name="mka-ckn">
+            <properties>
+              <help>Generate MACsec connectivity association name (CKN)</help>
+            </properties>
+            <command>/usr/bin/hexdump -n 32 -e '8/4 "%08x" 1 "\n"' /dev/random</command>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/generate-ssh-server-key.xml b/op-mode-definitions/generate-ssh-server-key.xml
deleted file mode 100644
index a6ebf1b78..000000000
--- a/op-mode-definitions/generate-ssh-server-key.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="generate">
-    <properties>
-      <help>Generate an object</help>
-    </properties>
-    <children>
-      <node name="ssh-server-key">
-        <properties>
-          <help>Regenerate the host SSH keys and restart the SSH server</help>
-        </properties>
-        <command>${vyos_op_scripts_dir}/generate_ssh_server_key.py</command>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/generate-ssh-server-key.xml.in b/op-mode-definitions/generate-ssh-server-key.xml.in
new file mode 100644
index 000000000..a6ebf1b78
--- /dev/null
+++ b/op-mode-definitions/generate-ssh-server-key.xml.in
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="generate">
+    <properties>
+      <help>Generate an object</help>
+    </properties>
+    <children>
+      <node name="ssh-server-key">
+        <properties>
+          <help>Regenerate the host SSH keys and restart the SSH server</help>
+        </properties>
+        <command>${vyos_op_scripts_dir}/generate_ssh_server_key.py</command>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/igmp-proxy.xml b/op-mode-definitions/igmp-proxy.xml
deleted file mode 100644
index 8533138d7..000000000
--- a/op-mode-definitions/igmp-proxy.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interfaceDefinition>
-  <node name="restart">
-    <children>
-      <node name="igmp-proxy">
-        <properties>
-          <help>Restart the IGMP proxy process</help>
-        </properties>
-        <command>sudo systemctl restart igmpproxy.service</command>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/igmp-proxy.xml.in b/op-mode-definitions/igmp-proxy.xml.in
new file mode 100644
index 000000000..8533138d7
--- /dev/null
+++ b/op-mode-definitions/igmp-proxy.xml.in
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interfaceDefinition>
+  <node name="restart">
+    <children>
+      <node name="igmp-proxy">
+        <properties>
+          <help>Restart the IGMP proxy process</help>
+        </properties>
+        <command>sudo systemctl restart igmpproxy.service</command>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/ipoe-server.xml b/op-mode-definitions/ipoe-server.xml
deleted file mode 100644
index c20d3aa2a..000000000
--- a/op-mode-definitions/ipoe-server.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="reset">
-    <children>
-      <node name="ipoe-server">
-        <properties>
-          <help>Clear ipoe-server sessions or process</help>
-        </properties>
-        <children>
-          <node name="session">
-            <properties>
-              <help>Clear ipoe-server session</help>
-            </properties>
-            <children>
-              <tagNode name="username">
-                <properties>
-                  <help>Clear ipoe-server session by username</help>
-                  <completionHelp>
-                    <script>${vyos_completion_dir}/list_ipoe.py --selector="username"</script>
-                  </completionHelp>
-                </properties>
-                <command>${vyos_op_scripts_dir}/ipoe-control.py --action="terminate" --selector="username" --target="$5"</command>
-              </tagNode>
-              <tagNode name="sid">
-                <properties>
-                  <help>Clear ipoe-server session by Session ID</help>
-                  <completionHelp>
-                    <script>${vyos_completion_dir}/list_ipoe.py --selector="sid"</script>
-                  </completionHelp>
-                </properties>
-                <command>${vyos_op_scripts_dir}/ipoe-control.py --action="terminate" --selector="sid" --target="$5"</command>
-              </tagNode>
-              <tagNode name="interface">
-                <properties>
-                  <help>Clear ipoe-server session by interface</help>
-                  <completionHelp>
-                    <script>${vyos_completion_dir}/list_ipoe.py --selector="ifname"</script>
-                  </completionHelp>
-                </properties>
-                <command>${vyos_op_scripts_dir}/ipoe-control.py --action="terminate" --selector="if"  --target="$5"</command>
-              </tagNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="show">
-    <children>
-      <node name="ipoe-server">
-        <properties>
-          <help>show ipoe-server status</help>
-        </properties>
-        <children>
-          <leafNode name="sessions">
-            <properties>
-              <help>Show active IPoE server sessions</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ipoe-control.py --action="show_sessions"</command>
-          </leafNode>
-          <leafNode name="statistics">
-            <properties>
-              <help>Show IPoE server statistics</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ipoe-control.py --action="show_stat"</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="restart">
-    <children>
-      <leafNode name="ipoe-server">
-        <properties>
-          <help>show ipoe-server status</help>
-        </properties>
-        <command>${vyos_op_scripts_dir}/ipoe-control.py --action="restart"</command>
-      </leafNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/ipoe-server.xml.in b/op-mode-definitions/ipoe-server.xml.in
new file mode 100644
index 000000000..c20d3aa2a
--- /dev/null
+++ b/op-mode-definitions/ipoe-server.xml.in
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="reset">
+    <children>
+      <node name="ipoe-server">
+        <properties>
+          <help>Clear ipoe-server sessions or process</help>
+        </properties>
+        <children>
+          <node name="session">
+            <properties>
+              <help>Clear ipoe-server session</help>
+            </properties>
+            <children>
+              <tagNode name="username">
+                <properties>
+                  <help>Clear ipoe-server session by username</help>
+                  <completionHelp>
+                    <script>${vyos_completion_dir}/list_ipoe.py --selector="username"</script>
+                  </completionHelp>
+                </properties>
+                <command>${vyos_op_scripts_dir}/ipoe-control.py --action="terminate" --selector="username" --target="$5"</command>
+              </tagNode>
+              <tagNode name="sid">
+                <properties>
+                  <help>Clear ipoe-server session by Session ID</help>
+                  <completionHelp>
+                    <script>${vyos_completion_dir}/list_ipoe.py --selector="sid"</script>
+                  </completionHelp>
+                </properties>
+                <command>${vyos_op_scripts_dir}/ipoe-control.py --action="terminate" --selector="sid" --target="$5"</command>
+              </tagNode>
+              <tagNode name="interface">
+                <properties>
+                  <help>Clear ipoe-server session by interface</help>
+                  <completionHelp>
+                    <script>${vyos_completion_dir}/list_ipoe.py --selector="ifname"</script>
+                  </completionHelp>
+                </properties>
+                <command>${vyos_op_scripts_dir}/ipoe-control.py --action="terminate" --selector="if"  --target="$5"</command>
+              </tagNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="show">
+    <children>
+      <node name="ipoe-server">
+        <properties>
+          <help>show ipoe-server status</help>
+        </properties>
+        <children>
+          <leafNode name="sessions">
+            <properties>
+              <help>Show active IPoE server sessions</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ipoe-control.py --action="show_sessions"</command>
+          </leafNode>
+          <leafNode name="statistics">
+            <properties>
+              <help>Show IPoE server statistics</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ipoe-control.py --action="show_stat"</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="restart">
+    <children>
+      <leafNode name="ipoe-server">
+        <properties>
+          <help>show ipoe-server status</help>
+        </properties>
+        <command>${vyos_op_scripts_dir}/ipoe-control.py --action="restart"</command>
+      </leafNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/ipv4-route.xml b/op-mode-definitions/ipv4-route.xml
deleted file mode 100644
index 1bda3ac11..000000000
--- a/op-mode-definitions/ipv4-route.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <properties>
-      <help>Show system information</help>
-    </properties>
-    <children>
-      <node name="ip">
-        <properties>
-          <help>Show IPv4 information</help>
-        </properties>
-        <children>
-          <leafNode name="groups">
-            <properties>
-              <help>Show IP multicast group membership</help>
-            </properties>
-            <command>netstat -gn4</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-
-  <node name="reset">
-    <properties>
-      <help>Reset a service</help>
-    </properties>
-    <children>
-      <node name="ip">
-        <properties>
-          <help>Reset Internet Protocol (IP) parameters</help>
-        </properties>
-        <children>
-          <node name="arp">
-            <properties>
-              <help>Reset Address Resolution Protocol (ARP) cache</help>
-            </properties>
-            <children>
-              <tagNode name="address">
-                <properties>
-                  <help>Reset ARP cache for an IPv4 address</help>
-                  <completionHelp>
-                    <list>&lt;x.x.x.x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>sudo /sbin/ip neigh flush to "$5"</command>
-              </tagNode>
-              <tagNode name="interface">
-                <properties>
-                  <help>Reset ARP cache for interface</help>
-                  <completionHelp>
-                    <script>${vyos_completion_dir}/list_interfaces.py</script>
-                  </completionHelp>
-                </properties>
-                <command>sudo /sbin/ip neigh flush dev "$5"</command>
-              </tagNode>
-            </children>
-          </node>
-
-          <node name="route">
-            <properties>
-              <help>Reset IP route</help>
-            </properties>
-            <children>
-              <leafNode name= "cache">
-                <properties>
-                  <help>Flush the kernel route cache</help>
-                </properties>
-                <command>sudo /sbin/ip route flush cache</command>
-              </leafNode>
-
-              <tagNode name="cache">
-                <properties>
-                  <help>Flush the kernel route cache for a given route</help>
-                  <completionHelp>
-                    <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>sudo /sbin/ip route flush cache "$5"</command>
-              </tagNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/ipv4-route.xml.in b/op-mode-definitions/ipv4-route.xml.in
new file mode 100644
index 000000000..1bda3ac11
--- /dev/null
+++ b/op-mode-definitions/ipv4-route.xml.in
@@ -0,0 +1,87 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <properties>
+      <help>Show system information</help>
+    </properties>
+    <children>
+      <node name="ip">
+        <properties>
+          <help>Show IPv4 information</help>
+        </properties>
+        <children>
+          <leafNode name="groups">
+            <properties>
+              <help>Show IP multicast group membership</help>
+            </properties>
+            <command>netstat -gn4</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+
+  <node name="reset">
+    <properties>
+      <help>Reset a service</help>
+    </properties>
+    <children>
+      <node name="ip">
+        <properties>
+          <help>Reset Internet Protocol (IP) parameters</help>
+        </properties>
+        <children>
+          <node name="arp">
+            <properties>
+              <help>Reset Address Resolution Protocol (ARP) cache</help>
+            </properties>
+            <children>
+              <tagNode name="address">
+                <properties>
+                  <help>Reset ARP cache for an IPv4 address</help>
+                  <completionHelp>
+                    <list>&lt;x.x.x.x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>sudo /sbin/ip neigh flush to "$5"</command>
+              </tagNode>
+              <tagNode name="interface">
+                <properties>
+                  <help>Reset ARP cache for interface</help>
+                  <completionHelp>
+                    <script>${vyos_completion_dir}/list_interfaces.py</script>
+                  </completionHelp>
+                </properties>
+                <command>sudo /sbin/ip neigh flush dev "$5"</command>
+              </tagNode>
+            </children>
+          </node>
+
+          <node name="route">
+            <properties>
+              <help>Reset IP route</help>
+            </properties>
+            <children>
+              <leafNode name= "cache">
+                <properties>
+                  <help>Flush the kernel route cache</help>
+                </properties>
+                <command>sudo /sbin/ip route flush cache</command>
+              </leafNode>
+
+              <tagNode name="cache">
+                <properties>
+                  <help>Flush the kernel route cache for a given route</help>
+                  <completionHelp>
+                    <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>sudo /sbin/ip route flush cache "$5"</command>
+              </tagNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/ipv6-route.xml b/op-mode-definitions/ipv6-route.xml
deleted file mode 100644
index fbf6489ba..000000000
--- a/op-mode-definitions/ipv6-route.xml
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <properties>
-      <help>Show system information</help>
-    </properties>
-    <children>
-      <node name="ipv6">
-        <properties>
-          <help>Show IPv6 routing information</help>
-        </properties>
-        <children>
-          <leafNode name="groups">
-            <properties>
-              <help>Show IPv6 multicast group membership</help>
-            </properties>
-            <command>netstat -gn6</command>
-          </leafNode>
-
-          <leafNode name="neighbors">
-            <properties>
-              <help>Show IPv6 Neighbor Discovery (ND) information</help>
-            </properties>
-            <command>ip -f inet6 neigh list</command>
-          </leafNode>
-
-          <node name="route">
-            <properties>
-              <help>Show IPv6 routes</help>
-            </properties>
-            <children>
-              <node name="cache">
-                <properties>
-                  <help>Show kernel IPv6 route cache</help>
-                </properties>
-                <command>ip -s -f inet6 route list cache</command>
-              </node>
-              <tagNode name="cache">
-                <properties>
-                  <help>Show kernel IPv6 route cache for a given route</help>
-                  <completionHelp>
-                    <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>ip -s -f inet6 route list cache $5</command>
-              </tagNode>
-              <node name="forward">
-                <properties>
-                  <help>Show kernel IPv6 route table</help>
-                </properties>
-                <command>ip -f inet6 route list</command>
-              </node>
-              <tagNode name="forward">
-                <properties>
-                  <help>Show kernel IPv6 route table for a given route</help>
-                  <completionHelp>
-                    <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>ip -s -f inet6 route list $5</command>
-              </tagNode>
-            </children>
-          </node>
-
-        </children>
-      </node>
-    </children>
-  </node>
-
-  <node name="reset">
-    <properties>
-      <help>Reset a service</help>
-    </properties>
-    <children>
-      <node name="ipv6">
-        <properties>
-          <help>Reset Internet Protocol version 6 (IPv6) parameters</help>
-        </properties>
-        <children>
-          <node name="neighbors">
-            <properties>
-              <help>Reset IPv6 Neighbor Discovery (ND) cache</help>
-            </properties>
-            <children>
-              <tagNode name="address">
-                <properties>
-                  <help>Reset ND cache for an IPv6 address</help>
-                  <completionHelp>
-                    <list>&lt;h:h:h:h:h:h:h:h&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>sudo ip -f inet6 neigh flush to "$5"</command>
-              </tagNode>
-              <tagNode name="interface">
-                <properties>
-                  <help>Reset IPv6 ND cache for interface</help>
-                  <completionHelp>
-                    <script>${vyos_completion_dir}/list_interfaces.py</script>
-                  </completionHelp>
-                </properties>
-                <command>sudo ip -f inet6 neigh flush dev "$5"</command>
-              </tagNode>
-            </children>
-          </node>
-
-          <node name="route">
-            <properties>
-              <help>Reset IPv6 route</help>
-            </properties>
-            <children>
-              <leafNode name= "cache">
-                <properties>
-                  <help>Flush the kernel IPv6 route cache</help>
-                </properties>
-                <command>sudo ip -f inet6 route flush cache</command>
-              </leafNode>
-
-              <tagNode name="cache">
-                <properties>
-                  <help>Flush the kernel IPv6 route cache for a given route</help>
-                  <completionHelp>
-                    <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>sudo ip -f inet6 route flush cache "$5"</command>
-              </tagNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/ipv6-route.xml.in b/op-mode-definitions/ipv6-route.xml.in
new file mode 100644
index 000000000..fbf6489ba
--- /dev/null
+++ b/op-mode-definitions/ipv6-route.xml.in
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <properties>
+      <help>Show system information</help>
+    </properties>
+    <children>
+      <node name="ipv6">
+        <properties>
+          <help>Show IPv6 routing information</help>
+        </properties>
+        <children>
+          <leafNode name="groups">
+            <properties>
+              <help>Show IPv6 multicast group membership</help>
+            </properties>
+            <command>netstat -gn6</command>
+          </leafNode>
+
+          <leafNode name="neighbors">
+            <properties>
+              <help>Show IPv6 Neighbor Discovery (ND) information</help>
+            </properties>
+            <command>ip -f inet6 neigh list</command>
+          </leafNode>
+
+          <node name="route">
+            <properties>
+              <help>Show IPv6 routes</help>
+            </properties>
+            <children>
+              <node name="cache">
+                <properties>
+                  <help>Show kernel IPv6 route cache</help>
+                </properties>
+                <command>ip -s -f inet6 route list cache</command>
+              </node>
+              <tagNode name="cache">
+                <properties>
+                  <help>Show kernel IPv6 route cache for a given route</help>
+                  <completionHelp>
+                    <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>ip -s -f inet6 route list cache $5</command>
+              </tagNode>
+              <node name="forward">
+                <properties>
+                  <help>Show kernel IPv6 route table</help>
+                </properties>
+                <command>ip -f inet6 route list</command>
+              </node>
+              <tagNode name="forward">
+                <properties>
+                  <help>Show kernel IPv6 route table for a given route</help>
+                  <completionHelp>
+                    <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>ip -s -f inet6 route list $5</command>
+              </tagNode>
+            </children>
+          </node>
+
+        </children>
+      </node>
+    </children>
+  </node>
+
+  <node name="reset">
+    <properties>
+      <help>Reset a service</help>
+    </properties>
+    <children>
+      <node name="ipv6">
+        <properties>
+          <help>Reset Internet Protocol version 6 (IPv6) parameters</help>
+        </properties>
+        <children>
+          <node name="neighbors">
+            <properties>
+              <help>Reset IPv6 Neighbor Discovery (ND) cache</help>
+            </properties>
+            <children>
+              <tagNode name="address">
+                <properties>
+                  <help>Reset ND cache for an IPv6 address</help>
+                  <completionHelp>
+                    <list>&lt;h:h:h:h:h:h:h:h&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>sudo ip -f inet6 neigh flush to "$5"</command>
+              </tagNode>
+              <tagNode name="interface">
+                <properties>
+                  <help>Reset IPv6 ND cache for interface</help>
+                  <completionHelp>
+                    <script>${vyos_completion_dir}/list_interfaces.py</script>
+                  </completionHelp>
+                </properties>
+                <command>sudo ip -f inet6 neigh flush dev "$5"</command>
+              </tagNode>
+            </children>
+          </node>
+
+          <node name="route">
+            <properties>
+              <help>Reset IPv6 route</help>
+            </properties>
+            <children>
+              <leafNode name= "cache">
+                <properties>
+                  <help>Flush the kernel IPv6 route cache</help>
+                </properties>
+                <command>sudo ip -f inet6 route flush cache</command>
+              </leafNode>
+
+              <tagNode name="cache">
+                <properties>
+                  <help>Flush the kernel IPv6 route cache for a given route</help>
+                  <completionHelp>
+                    <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>sudo ip -f inet6 route flush cache "$5"</command>
+              </tagNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/l2tp-server.xml b/op-mode-definitions/l2tp-server.xml
deleted file mode 100644
index 3e96b9365..000000000
--- a/op-mode-definitions/l2tp-server.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="l2tp-server">
-        <properties>
-          <help>Show L2TP server information</help>
-        </properties>
-        <children>
-          <leafNode name="sessions">
-            <properties>
-              <help>Show active L2TP server sessions</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="l2tp" --action="show sessions"</command>
-          </leafNode>
-          <leafNode name="statistics">
-            <properties>
-              <help>Show L2TP server statistics</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="l2tp" --action="show stat"</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/l2tp-server.xml.in b/op-mode-definitions/l2tp-server.xml.in
new file mode 100644
index 000000000..3e96b9365
--- /dev/null
+++ b/op-mode-definitions/l2tp-server.xml.in
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="l2tp-server">
+        <properties>
+          <help>Show L2TP server information</help>
+        </properties>
+        <children>
+          <leafNode name="sessions">
+            <properties>
+              <help>Show active L2TP server sessions</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="l2tp" --action="show sessions"</command>
+          </leafNode>
+          <leafNode name="statistics">
+            <properties>
+              <help>Show L2TP server statistics</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="l2tp" --action="show stat"</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/lldp.xml b/op-mode-definitions/lldp.xml
deleted file mode 100644
index 297ccf1f4..000000000
--- a/op-mode-definitions/lldp.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="lldp">
-        <properties>
-          <help>Show LLDP (Link Layer Discovery Protocol)</help>
-        </properties>
-        <children>
-          <node name="neighbors">
-            <properties>
-              <help>Show LLDP neighbors</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/lldp_op.py --all</command>
-            <children>
-              <node name="detail">
-                <properties>
-                  <help>Show LLDP neighbor details</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/lldp_op.py --detail</command>
-              </node>
-              <tagNode name="interface">
-                <properties>
-                  <help>Show LLDP for specified interface</help>
-                  <completionHelp>
-                    <script>${vyos_completion_dir}/list_interfaces.py</script>
-                  </completionHelp>
-                </properties>
-                <command>${vyos_op_scripts_dir}/lldp_op.py --interface $5</command>
-              </tagNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/lldp.xml.in b/op-mode-definitions/lldp.xml.in
new file mode 100644
index 000000000..297ccf1f4
--- /dev/null
+++ b/op-mode-definitions/lldp.xml.in
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="lldp">
+        <properties>
+          <help>Show LLDP (Link Layer Discovery Protocol)</help>
+        </properties>
+        <children>
+          <node name="neighbors">
+            <properties>
+              <help>Show LLDP neighbors</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/lldp_op.py --all</command>
+            <children>
+              <node name="detail">
+                <properties>
+                  <help>Show LLDP neighbor details</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/lldp_op.py --detail</command>
+              </node>
+              <tagNode name="interface">
+                <properties>
+                  <help>Show LLDP for specified interface</help>
+                  <completionHelp>
+                    <script>${vyos_completion_dir}/list_interfaces.py</script>
+                  </completionHelp>
+                </properties>
+                <command>${vyos_op_scripts_dir}/lldp_op.py --interface $5</command>
+              </tagNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/monitor-bandwidth-test.xml b/op-mode-definitions/monitor-bandwidth-test.xml
deleted file mode 100644
index 5b36b1da5..000000000
--- a/op-mode-definitions/monitor-bandwidth-test.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="monitor">
-    <children>
-      <node name="bandwidth-test">
-        <properties>
-          <help>Initiate or wait for bandwidth test</help>
-        </properties>
-        <children>
-          <leafNode name="accept">
-            <properties>
-              <help>Wait for bandwidth test connections (port TCP/5001)</help>
-            </properties>
-            <command>/usr/bin/iperf -V -s</command>
-          </leafNode>
-          <tagNode name="initiate">
-            <properties>
-              <help>Initiate a bandwidth test to specified host (port TCP/5001)</help>
-              <completionHelp>
-                <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/monitor_bandwidth_test.sh "$4"</command>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/monitor-bandwidth-test.xml.in b/op-mode-definitions/monitor-bandwidth-test.xml.in
new file mode 100644
index 000000000..5b36b1da5
--- /dev/null
+++ b/op-mode-definitions/monitor-bandwidth-test.xml.in
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="monitor">
+    <children>
+      <node name="bandwidth-test">
+        <properties>
+          <help>Initiate or wait for bandwidth test</help>
+        </properties>
+        <children>
+          <leafNode name="accept">
+            <properties>
+              <help>Wait for bandwidth test connections (port TCP/5001)</help>
+            </properties>
+            <command>/usr/bin/iperf -V -s</command>
+          </leafNode>
+          <tagNode name="initiate">
+            <properties>
+              <help>Initiate a bandwidth test to specified host (port TCP/5001)</help>
+              <completionHelp>
+                <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/monitor_bandwidth_test.sh "$4"</command>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/monitor-bandwidth.xml b/op-mode-definitions/monitor-bandwidth.xml
deleted file mode 100644
index 9af0a9e70..000000000
--- a/op-mode-definitions/monitor-bandwidth.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="monitor">
-    <children>
-      <node name="bandwidth">
-        <properties>
-          <help>Monitor interface bandwidth in real time</help>
-        </properties>
-        <children>
-          <tagNode name="interface">
-            <command>bmon -b -p $4</command>
-            <properties>
-              <help>Monitor bandwidth usage on specified interface</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_interfaces.py</script>
-              </completionHelp>
-            </properties>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/monitor-bandwidth.xml.in b/op-mode-definitions/monitor-bandwidth.xml.in
new file mode 100644
index 000000000..9af0a9e70
--- /dev/null
+++ b/op-mode-definitions/monitor-bandwidth.xml.in
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="monitor">
+    <children>
+      <node name="bandwidth">
+        <properties>
+          <help>Monitor interface bandwidth in real time</help>
+        </properties>
+        <children>
+          <tagNode name="interface">
+            <command>bmon -b -p $4</command>
+            <properties>
+              <help>Monitor bandwidth usage on specified interface</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_interfaces.py</script>
+              </completionHelp>
+            </properties>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/monitor-log.xml b/op-mode-definitions/monitor-log.xml
deleted file mode 100644
index 99efe5306..000000000
--- a/op-mode-definitions/monitor-log.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="monitor">
-    <children>
-      <node name="log">
-        <properties>
-          <help>Monitor last lines of messages file</help>
-        </properties>
-        <command>tail --follow=name /var/log/messages</command>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/monitor-log.xml.in b/op-mode-definitions/monitor-log.xml.in
new file mode 100644
index 000000000..99efe5306
--- /dev/null
+++ b/op-mode-definitions/monitor-log.xml.in
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="monitor">
+    <children>
+      <node name="log">
+        <properties>
+          <help>Monitor last lines of messages file</help>
+        </properties>
+        <command>tail --follow=name /var/log/messages</command>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/monitor-ndp.xml b/op-mode-definitions/monitor-ndp.xml
deleted file mode 100644
index 1ac6ce39b..000000000
--- a/op-mode-definitions/monitor-ndp.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?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>
-        </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>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_interfaces.py</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>
-                  <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>
-              <completionHelp>
-                <list>rs ra ns na</list>
-              </completionHelp>
-            </properties>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/monitor-ndp.xml.in b/op-mode-definitions/monitor-ndp.xml.in
new file mode 100644
index 000000000..1ac6ce39b
--- /dev/null
+++ b/op-mode-definitions/monitor-ndp.xml.in
@@ -0,0 +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>
+        </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>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_interfaces.py</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>
+                  <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>
+              <completionHelp>
+                <list>rs ra ns na</list>
+              </completionHelp>
+            </properties>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/nat.xml b/op-mode-definitions/nat.xml
deleted file mode 100644
index f6c0fa748..000000000
--- a/op-mode-definitions/nat.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="nat">
-        <properties>
-          <help>Show Network Address Translation (NAT) information</help>
-        </properties>
-        <children>
-          <node name="source">
-            <properties>
-              <help>Show source Network Address Translation (NAT) information</help>
-            </properties>
-            <children>
-              <node name="rules">
-                <properties>
-                  <help>Show configured source NAT rules</help>
-                </properties>
-                <command>echo To be migrated to Python - https://phabricator.vyos.net/T2459</command>
-              </node>
-              <node name="statistics">
-                <properties>
-                  <help>Show statistics for configured source NAT rules</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_nat_statistics.py --source</command>
-              </node>
-              <node name="translations">
-                <properties>
-                  <help>Show active source NAT translations</help>
-                </properties>
-                <children>
-                  <tagNode name="address">
-                    <properties>
-                      <help>Show active source NAT translations for an IP address</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>${vyos_op_scripts_dir}/show_nat_translations.py --type=source --verbose --ipaddr="$6"</command>
-                  </tagNode>
-                  <node name="detail">
-                    <properties>
-                      <help>Show active source NAT translations detail</help>
-                    </properties>
-                    <command>${vyos_op_scripts_dir}/show_nat_translations.py --type=source --verbose</command>
-                  </node>
-                </children>
-                <command>${vyos_op_scripts_dir}/show_nat_translations.py --type=source</command>
-              </node>
-            </children>
-          </node>
-          <node name="destination">
-            <properties>
-              <help>Show destination Network Address Translation (NAT) information</help>
-            </properties>
-            <children>
-              <node name="rules">
-                <properties>
-                  <help>Show configured destination NAT rules</help>
-                </properties>
-                <command>echo To be migrated to Python - https://phabricator.vyos.net/T2459</command>
-              </node>
-              <node name="statistics">
-                <properties>
-                  <help>Show statistics for configured destination NAT rules</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_nat_statistics.py --destination</command>
-              </node>
-              <node name="translations">
-                <properties>
-                  <help>Show active destination NAT translations</help>
-                </properties>
-                <children>
-                  <tagNode name="address">
-                    <properties>
-                      <help>Show active NAT destination translations for an IP address</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>${vyos_op_scripts_dir}/show_nat_translations.py --type=destination --verbose --ipaddr="$6"</command>
-                  </tagNode>
-                  <node name="detail">
-                    <properties>
-                      <help>Show active destination NAT translations detail</help>
-                    </properties>
-                    <command>${vyos_op_scripts_dir}/show_nat_translations.py --type=destination --verbose</command>
-                  </node>
-                </children>
-                <command>${vyos_op_scripts_dir}/show_nat_translations.py --type=destination</command>
-              </node>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/nat.xml.in b/op-mode-definitions/nat.xml.in
new file mode 100644
index 000000000..4b09816f9
--- /dev/null
+++ b/op-mode-definitions/nat.xml.in
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="nat">
+        <properties>
+          <help>Show Network Address Translation (NAT) information</help>
+        </properties>
+        <children>
+          <node name="source">
+            <properties>
+              <help>Show source Network Address Translation (NAT) information</help>
+            </properties>
+            <children>
+              <node name="rules">
+                <properties>
+                  <help>Show configured source NAT rules</help>
+                </properties>
+                <command>echo To be migrated to Python - Phabricator T2459</command>
+              </node>
+              <node name="statistics">
+                <properties>
+                  <help>Show statistics for configured source NAT rules</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_nat_statistics.py --source</command>
+              </node>
+              <node name="translations">
+                <properties>
+                  <help>Show active source NAT translations</help>
+                </properties>
+                <children>
+                  <tagNode name="address">
+                    <properties>
+                      <help>Show active source NAT translations for an IP address</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>${vyos_op_scripts_dir}/show_nat_translations.py --type=source --verbose --ipaddr="$6"</command>
+                  </tagNode>
+                  <node name="detail">
+                    <properties>
+                      <help>Show active source NAT translations detail</help>
+                    </properties>
+                    <command>${vyos_op_scripts_dir}/show_nat_translations.py --type=source --verbose</command>
+                  </node>
+                </children>
+                <command>${vyos_op_scripts_dir}/show_nat_translations.py --type=source</command>
+              </node>
+            </children>
+          </node>
+          <node name="destination">
+            <properties>
+              <help>Show destination Network Address Translation (NAT) information</help>
+            </properties>
+            <children>
+              <node name="rules">
+                <properties>
+                  <help>Show configured destination NAT rules</help>
+                </properties>
+                <command>echo To be migrated to Python - Phabricator T2459</command>
+              </node>
+              <node name="statistics">
+                <properties>
+                  <help>Show statistics for configured destination NAT rules</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_nat_statistics.py --destination</command>
+              </node>
+              <node name="translations">
+                <properties>
+                  <help>Show active destination NAT translations</help>
+                </properties>
+                <children>
+                  <tagNode name="address">
+                    <properties>
+                      <help>Show active NAT destination translations for an IP address</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>${vyos_op_scripts_dir}/show_nat_translations.py --type=destination --verbose --ipaddr="$6"</command>
+                  </tagNode>
+                  <node name="detail">
+                    <properties>
+                      <help>Show active destination NAT translations detail</help>
+                    </properties>
+                    <command>${vyos_op_scripts_dir}/show_nat_translations.py --type=destination --verbose</command>
+                  </node>
+                </children>
+                <command>${vyos_op_scripts_dir}/show_nat_translations.py --type=destination</command>
+              </node>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/openconnect.xml b/op-mode-definitions/openconnect.xml
deleted file mode 100644
index 9b82b114e..000000000
--- a/op-mode-definitions/openconnect.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="openconnect-server">
-        <properties>
-          <help>show openconnect-server information</help>
-        </properties>
-        <children>
-          <leafNode name="sessions">
-            <properties>
-              <help>Show active openconnect server sessions</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/openconnect-control.py --action="show_sessions"</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/openconnect.xml.in b/op-mode-definitions/openconnect.xml.in
new file mode 100644
index 000000000..9b82b114e
--- /dev/null
+++ b/op-mode-definitions/openconnect.xml.in
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="openconnect-server">
+        <properties>
+          <help>show openconnect-server information</help>
+        </properties>
+        <children>
+          <leafNode name="sessions">
+            <properties>
+              <help>Show active openconnect server sessions</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/openconnect-control.py --action="show_sessions"</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/openvpn.xml b/op-mode-definitions/openvpn.xml
deleted file mode 100644
index b9cb06dca..000000000
--- a/op-mode-definitions/openvpn.xml
+++ /dev/null
@@ -1,140 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="generate">
-    <children>
-      <node name="openvpn">
-        <properties>
-          <help>OpenVPN key generation tool</help>
-        </properties>
-        <children>
-          <tagNode name="key">
-            <properties>
-              <help>Generate shared-secret key with specified file name</help>
-              <completionHelp>
-                <list>&lt;filename&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>
-            result=1;
-            key_path=$4
-            full_path=
-
-            # Prepend /config/auth if the path is not absolute
-            if echo $key_path | egrep -ve '^/.*' &gt; /dev/null; then
-                full_path=/config/auth/$key_path
-            else
-                full_path=$key_path
-            fi
-
-            key_dir=`dirname $full_path`
-            if [ ! -d $key_dir ]; then
-                echo "Directory $key_dir does not exist!"
-                exit 1
-            fi
-
-            echo "Generating OpenVPN key to $full_path"
-            sudo /usr/sbin/openvpn --genkey --secret "$full_path"
-            result=$?
-            if [ $result = 0 ]; then
-              echo "Your new local OpenVPN key has been generated"
-            fi
-            /usr/libexec/vyos/validators/file-exists --directory /config/auth "$full_path"
-          </command>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="reset">
-    <properties>
-      <help>Reset a service</help>
-    </properties>
-    <children>
-      <node name="openvpn">
-        <children>
-          <tagNode name="client">
-            <properties>
-              <help>Reset specified OpenVPN client</help>
-              <completionHelp>
-                <script>sudo ${vyos_completion_dir}/list_openvpn_clients.py --all</script>
-              </completionHelp>
-            </properties>
-            <command>echo kill $4 | socat - UNIX-CONNECT:/run/openvpn/openvpn-mgmt-intf &gt; /dev/null</command>
-          </tagNode>
-          <tagNode name="interface">
-            <properties>
-              <help>Reset OpenVPN process on interface</help>
-              <completionHelp>
-                <script>sudo ${vyos_completion_dir}/list_interfaces.py --type openvpn</script>
-              </completionHelp>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/reset_openvpn.py $4</command>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <node name="openvpn">
-            <properties>
-              <help>Show OpenVPN interface information</help>
-            </properties>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed OpenVPN interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=openvpn --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-          <tagNode name="openvpn">
-            <properties>
-              <help>Show OpenVPN interface information</help>
-              <completionHelp>
-                <script>sudo ${vyos_completion_dir}/list_interfaces.py --type openvpn</script>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf=$4</command>
-            <children>
-              <leafNode name="brief">
-                <properties>
-                  <help>Show summary of specified OpenVPN interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
-              </leafNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-      <node name="openvpn">
-        <properties>
-          <help>Show OpenVPN information</help>
-        </properties>
-        <children>
-          <leafNode name="client">
-            <properties>
-              <help>Show tunnel status for OpenVPN client interfaces</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/show_openvpn.py --mode=client</command>
-          </leafNode>
-          <leafNode name="server">
-            <properties>
-              <help>Show tunnel status for OpenVPN server interfaces</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/show_openvpn.py --mode=server</command>
-          </leafNode>
-          <leafNode name="site-to-site">
-            <properties>
-              <help>Show tunnel status for OpenVPN site-to-site interfaces</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/show_openvpn.py --mode=site-to-site</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/openvpn.xml.in b/op-mode-definitions/openvpn.xml.in
new file mode 100644
index 000000000..e9420904a
--- /dev/null
+++ b/op-mode-definitions/openvpn.xml.in
@@ -0,0 +1,139 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="generate">
+    <children>
+      <node name="openvpn">
+        <properties>
+          <help>OpenVPN key generation tool</help>
+        </properties>
+        <children>
+          <tagNode name="key">
+            <properties>
+              <help>Generate shared-secret key with specified file name</help>
+              <completionHelp>
+                <list>&lt;filename&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>
+            result=1;
+            key_path=$4
+            full_path=
+
+            if echo $key_path | egrep -ve '^/.*' &gt; /dev/null; then
+                full_path=/config/auth/$key_path
+            else
+                full_path=$key_path
+            fi
+
+            key_dir=`dirname $full_path`
+            if [ ! -d $key_dir ]; then
+                echo "Directory $key_dir does not exist!"
+                exit 1
+            fi
+
+            echo "Generating OpenVPN key to $full_path"
+            sudo /usr/sbin/openvpn --genkey --secret "$full_path"
+            result=$?
+            if [ $result = 0 ]; then
+              echo "Your new local OpenVPN key has been generated"
+            fi
+            /usr/libexec/vyos/validators/file-exists --directory /config/auth "$full_path"
+          </command>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="reset">
+    <properties>
+      <help>Reset a service</help>
+    </properties>
+    <children>
+      <node name="openvpn">
+        <children>
+          <tagNode name="client">
+            <properties>
+              <help>Reset specified OpenVPN client</help>
+              <completionHelp>
+                <script>sudo ${vyos_completion_dir}/list_openvpn_clients.py --all</script>
+              </completionHelp>
+            </properties>
+            <command>echo kill $4 | socat - UNIX-CONNECT:/run/openvpn/openvpn-mgmt-intf &gt; /dev/null</command>
+          </tagNode>
+          <tagNode name="interface">
+            <properties>
+              <help>Reset OpenVPN process on interface</help>
+              <completionHelp>
+                <script>sudo ${vyos_completion_dir}/list_interfaces.py --type openvpn</script>
+              </completionHelp>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/reset_openvpn.py $4</command>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <node name="openvpn">
+            <properties>
+              <help>Show OpenVPN interface information</help>
+            </properties>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed OpenVPN interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=openvpn --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+          <tagNode name="openvpn">
+            <properties>
+              <help>Show OpenVPN interface information</help>
+              <completionHelp>
+                <script>sudo ${vyos_completion_dir}/list_interfaces.py --type openvpn</script>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf=$4</command>
+            <children>
+              <leafNode name="brief">
+                <properties>
+                  <help>Show summary of specified OpenVPN interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
+              </leafNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+      <node name="openvpn">
+        <properties>
+          <help>Show OpenVPN information</help>
+        </properties>
+        <children>
+          <leafNode name="client">
+            <properties>
+              <help>Show tunnel status for OpenVPN client interfaces</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/show_openvpn.py --mode=client</command>
+          </leafNode>
+          <leafNode name="server">
+            <properties>
+              <help>Show tunnel status for OpenVPN server interfaces</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/show_openvpn.py --mode=server</command>
+          </leafNode>
+          <leafNode name="site-to-site">
+            <properties>
+              <help>Show tunnel status for OpenVPN site-to-site interfaces</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/show_openvpn.py --mode=site-to-site</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/ping.xml b/op-mode-definitions/ping.xml
deleted file mode 100644
index 4c25a59ab..000000000
--- a/op-mode-definitions/ping.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <tagNode name="ping">
-    <properties>
-      <help>Send Internet Control Message Protocol (ICMP) echo request</help>
-      <completionHelp>
-        <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-      </completionHelp>
-    </properties>
-    <command>${vyos_op_scripts_dir}/ping.py ${@:2}</command>
-    <children>
-      <leafNode name="node.tag">
-        <properties>
-          <help>Ping options</help>
-          <completionHelp>
-            <script>${vyos_op_scripts_dir}/ping.py --get-options "${COMP_WORDS[@]}"</script>
-          </completionHelp>
-        </properties>
-        <command>${vyos_op_scripts_dir}/ping.py ${@:2}</command>
-      </leafNode>
-    </children>
-  </tagNode>
-</interfaceDefinition>
diff --git a/op-mode-definitions/ping.xml.in b/op-mode-definitions/ping.xml.in
new file mode 100644
index 000000000..4c25a59ab
--- /dev/null
+++ b/op-mode-definitions/ping.xml.in
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <tagNode name="ping">
+    <properties>
+      <help>Send Internet Control Message Protocol (ICMP) echo request</help>
+      <completionHelp>
+        <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+      </completionHelp>
+    </properties>
+    <command>${vyos_op_scripts_dir}/ping.py ${@:2}</command>
+    <children>
+      <leafNode name="node.tag">
+        <properties>
+          <help>Ping options</help>
+          <completionHelp>
+            <script>${vyos_op_scripts_dir}/ping.py --get-options "${COMP_WORDS[@]}"</script>
+          </completionHelp>
+        </properties>
+        <command>${vyos_op_scripts_dir}/ping.py ${@:2}</command>
+      </leafNode>
+    </children>
+  </tagNode>
+</interfaceDefinition>
diff --git a/op-mode-definitions/poweroff.xml b/op-mode-definitions/poweroff.xml
deleted file mode 100644
index b4163bcb9..000000000
--- a/op-mode-definitions/poweroff.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="poweroff">
-    <properties>
-      <help>Poweroff the system</help>
-    </properties>
-    <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --poweroff</command>
-    <children>
-      <leafNode name="now">
-        <properties>
-          <help>Poweroff the system without confirmation</help>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --poweroff</command>
-      </leafNode>
-      <leafNode name="cancel">
-        <properties>
-          <help>Cancel a pending poweroff</help>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --cancel</command>
-      </leafNode>
-      <tagNode name="in">
-        <properties>
-          <help>Poweroff in X minutes</help>
-          <completionHelp>
-            <list>&lt;Minutes&gt;</list>
-          </completionHelp>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --poweroff $3 $4</command>
-      </tagNode>
-      <tagNode name="at">
-        <properties>
-          <help>Poweroff at a specific time</help>
-          <completionHelp>
-            <list>&lt;HH:MM&gt;</list>
-          </completionHelp>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --poweroff $3</command>
-        <children>
-          <tagNode name="date">
-            <properties>
-              <help>Poweroff at a specific date</help>
-              <completionHelp>
-                <list>&lt;DDMMYYYY&gt; &lt;DD/MM/YYYY&gt; &lt;DD.MM.YYYY&gt; &lt;DD:MM:YYYY&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --poweroff $3 $5</command>
-          </tagNode>
-        </children>
-      </tagNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/poweroff.xml.in b/op-mode-definitions/poweroff.xml.in
new file mode 100644
index 000000000..b4163bcb9
--- /dev/null
+++ b/op-mode-definitions/poweroff.xml.in
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="poweroff">
+    <properties>
+      <help>Poweroff the system</help>
+    </properties>
+    <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --poweroff</command>
+    <children>
+      <leafNode name="now">
+        <properties>
+          <help>Poweroff the system without confirmation</help>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --poweroff</command>
+      </leafNode>
+      <leafNode name="cancel">
+        <properties>
+          <help>Cancel a pending poweroff</help>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --cancel</command>
+      </leafNode>
+      <tagNode name="in">
+        <properties>
+          <help>Poweroff in X minutes</help>
+          <completionHelp>
+            <list>&lt;Minutes&gt;</list>
+          </completionHelp>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --poweroff $3 $4</command>
+      </tagNode>
+      <tagNode name="at">
+        <properties>
+          <help>Poweroff at a specific time</help>
+          <completionHelp>
+            <list>&lt;HH:MM&gt;</list>
+          </completionHelp>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --poweroff $3</command>
+        <children>
+          <tagNode name="date">
+            <properties>
+              <help>Poweroff at a specific date</help>
+              <completionHelp>
+                <list>&lt;DDMMYYYY&gt; &lt;DD/MM/YYYY&gt; &lt;DD.MM.YYYY&gt; &lt;DD:MM:YYYY&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --poweroff $3 $5</command>
+          </tagNode>
+        </children>
+      </tagNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/pppoe-server.xml b/op-mode-definitions/pppoe-server.xml
deleted file mode 100644
index 5ac9d9497..000000000
--- a/op-mode-definitions/pppoe-server.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="pppoe-server">
-        <properties>
-          <help>Show pppoe-server status</help>
-        </properties>
-        <children>
-          <leafNode name="sessions">
-            <properties>
-              <help>Show active PPPoE server sessions</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="show sessions"</command>
-          </leafNode>
-          <leafNode name="statistics">
-            <properties>
-              <help>Show PPPoE server statistics</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="show stat"</command>
-          </leafNode>
-          <leafNode name="interfaces">
-            <properties>
-              <help>Show interfaces where pppoe-server listens on</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="pppoe interface show"</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="restart">
-    <children>
-      <leafNode name="pppoe-server">
-        <properties>
-          <help>Restarts pppoe-server</help>
-        </properties>
-        <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="restart"</command>
-      </leafNode>
-    </children>
-  </node>
-  <node name="reset">
-    <properties>
-      <help>Reset a service</help>
-    </properties>
-    <children>
-      <node name="pppoe-server">
-        <properties>
-          <help>Reset PPPoE server sessions</help>
-        </properties>
-        <children>
-          <leafNode name="all">
-            <properties>
-              <help>Terminate all pppoe-server users</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="terminate all"</command>
-          </leafNode>
-          <tagNode name="interface">
-            <properties>
-              <help>Terminate a ppp interface</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="terminate if $4"</command>
-          </tagNode>
-          <tagNode name="username">
-            <properties>
-              <help>Terminate specified users</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="terminate username $4"</command>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="set">
-    <children>
-      <node name="pppoe-server">
-        <properties>
-          <help>Set PPPoE server maintenance mode</help>
-        </properties>
-        <children>
-          <node name="maintenance-mode">
-            <properties>
-              <help>Set PPPoE server maintenance mode</help>
-            </properties>
-            <children>
-              <leafNode name="enable">
-                <properties>
-                  <help>Deny new connections and stop to serve pppoe after disconnect last session</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="shutdown soft"</command>
-              </leafNode>
-              <leafNode name="cancel">
-                <properties>
-                  <help>Cancel maintenance mode</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="shutdown cancel"</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/pppoe-server.xml.in b/op-mode-definitions/pppoe-server.xml.in
new file mode 100644
index 000000000..5ac9d9497
--- /dev/null
+++ b/op-mode-definitions/pppoe-server.xml.in
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="pppoe-server">
+        <properties>
+          <help>Show pppoe-server status</help>
+        </properties>
+        <children>
+          <leafNode name="sessions">
+            <properties>
+              <help>Show active PPPoE server sessions</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="show sessions"</command>
+          </leafNode>
+          <leafNode name="statistics">
+            <properties>
+              <help>Show PPPoE server statistics</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="show stat"</command>
+          </leafNode>
+          <leafNode name="interfaces">
+            <properties>
+              <help>Show interfaces where pppoe-server listens on</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="pppoe interface show"</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="restart">
+    <children>
+      <leafNode name="pppoe-server">
+        <properties>
+          <help>Restarts pppoe-server</help>
+        </properties>
+        <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="restart"</command>
+      </leafNode>
+    </children>
+  </node>
+  <node name="reset">
+    <properties>
+      <help>Reset a service</help>
+    </properties>
+    <children>
+      <node name="pppoe-server">
+        <properties>
+          <help>Reset PPPoE server sessions</help>
+        </properties>
+        <children>
+          <leafNode name="all">
+            <properties>
+              <help>Terminate all pppoe-server users</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="terminate all"</command>
+          </leafNode>
+          <tagNode name="interface">
+            <properties>
+              <help>Terminate a ppp interface</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="terminate if $4"</command>
+          </tagNode>
+          <tagNode name="username">
+            <properties>
+              <help>Terminate specified users</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="terminate username $4"</command>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="set">
+    <children>
+      <node name="pppoe-server">
+        <properties>
+          <help>Set PPPoE server maintenance mode</help>
+        </properties>
+        <children>
+          <node name="maintenance-mode">
+            <properties>
+              <help>Set PPPoE server maintenance mode</help>
+            </properties>
+            <children>
+              <leafNode name="enable">
+                <properties>
+                  <help>Deny new connections and stop to serve pppoe after disconnect last session</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="shutdown soft"</command>
+              </leafNode>
+              <leafNode name="cancel">
+                <properties>
+                  <help>Cancel maintenance mode</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pppoe" --action="shutdown cancel"</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/pptp-server.xml b/op-mode-definitions/pptp-server.xml
deleted file mode 100644
index 59be68611..000000000
--- a/op-mode-definitions/pptp-server.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="pptp-server">
-        <properties>
-          <help>Show PPTP server information</help>
-        </properties>
-        <children>
-          <leafNode name="sessions">
-            <properties>
-              <help>Show active PPTP server sessions</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pptp" --action="show sessions"</command>
-          </leafNode>
-          <leafNode name="statistics">
-            <properties>
-              <help>Show PPTP server statistics</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pptp" --action="show stat"</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/pptp-server.xml.in b/op-mode-definitions/pptp-server.xml.in
new file mode 100644
index 000000000..59be68611
--- /dev/null
+++ b/op-mode-definitions/pptp-server.xml.in
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="pptp-server">
+        <properties>
+          <help>Show PPTP server information</help>
+        </properties>
+        <children>
+          <leafNode name="sessions">
+            <properties>
+              <help>Show active PPTP server sessions</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pptp" --action="show sessions"</command>
+          </leafNode>
+          <leafNode name="statistics">
+            <properties>
+              <help>Show PPTP server statistics</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="pptp" --action="show stat"</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/reboot.xml b/op-mode-definitions/reboot.xml
deleted file mode 100644
index 2c8daec5d..000000000
--- a/op-mode-definitions/reboot.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="reboot">
-    <properties>
-      <help>Reboot the system</help>
-    </properties>
-    <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --reboot</command>
-    <children>
-      <leafNode name="now">
-        <properties>
-          <help>Reboot the system without confirmation</help>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --reboot</command>
-      </leafNode>
-      <leafNode name="cancel">
-        <properties>
-          <help>Cancel a pending reboot</help>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --cancel</command>
-      </leafNode>
-      <tagNode name="in">
-        <properties>
-          <help>Reboot in X minutes</help>
-          <completionHelp>
-            <list>&lt;Minutes&gt;</list>
-          </completionHelp>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --reboot $3 $4</command>
-      </tagNode>
-      <tagNode name="at">
-        <properties>
-          <help>Reboot at a specific time</help>
-          <completionHelp>
-            <list>&lt;HH:MM&gt;</list>
-          </completionHelp>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --reboot $3</command>
-        <children>
-          <tagNode name="date">
-            <properties>
-              <help>Reboot at a specific date</help>
-              <completionHelp>
-                <list>&lt;DDMMYYYY&gt; &lt;DD/MM/YYYY&gt; &lt;DD.MM.YYYY&gt; &lt;DD:MM:YYYY&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --reboot $3 $5</command>
-          </tagNode>
-        </children>
-      </tagNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/reboot.xml.in b/op-mode-definitions/reboot.xml.in
new file mode 100644
index 000000000..2c8daec5d
--- /dev/null
+++ b/op-mode-definitions/reboot.xml.in
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="reboot">
+    <properties>
+      <help>Reboot the system</help>
+    </properties>
+    <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --reboot</command>
+    <children>
+      <leafNode name="now">
+        <properties>
+          <help>Reboot the system without confirmation</help>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --reboot</command>
+      </leafNode>
+      <leafNode name="cancel">
+        <properties>
+          <help>Cancel a pending reboot</help>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --cancel</command>
+      </leafNode>
+      <tagNode name="in">
+        <properties>
+          <help>Reboot in X minutes</help>
+          <completionHelp>
+            <list>&lt;Minutes&gt;</list>
+          </completionHelp>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --reboot $3 $4</command>
+      </tagNode>
+      <tagNode name="at">
+        <properties>
+          <help>Reboot at a specific time</help>
+          <completionHelp>
+            <list>&lt;HH:MM&gt;</list>
+          </completionHelp>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --reboot $3</command>
+        <children>
+          <tagNode name="date">
+            <properties>
+              <help>Reboot at a specific date</help>
+              <completionHelp>
+                <list>&lt;DDMMYYYY&gt; &lt;DD/MM/YYYY&gt; &lt;DD.MM.YYYY&gt; &lt;DD:MM:YYYY&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/powerctrl.py --yes --reboot $3 $5</command>
+          </tagNode>
+        </children>
+      </tagNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/reset-conntrack.xml b/op-mode-definitions/reset-conntrack.xml
deleted file mode 100644
index 827ba4af4..000000000
--- a/op-mode-definitions/reset-conntrack.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="reset">
-    <properties>
-      <help>Reset a service</help>
-    </properties>
-    <children>
-      <node name="conntrack">
-        <properties>
-          <help>Reset all currently tracked connections</help>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/clear_conntrack.py</command>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/reset-conntrack.xml.in b/op-mode-definitions/reset-conntrack.xml.in
new file mode 100644
index 000000000..827ba4af4
--- /dev/null
+++ b/op-mode-definitions/reset-conntrack.xml.in
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="reset">
+    <properties>
+      <help>Reset a service</help>
+    </properties>
+    <children>
+      <node name="conntrack">
+        <properties>
+          <help>Reset all currently tracked connections</help>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/clear_conntrack.py</command>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/reset-ip-bgp.xml b/op-mode-definitions/reset-ip-bgp.xml
deleted file mode 100644
index 931a2a9bc..000000000
--- a/op-mode-definitions/reset-ip-bgp.xml
+++ /dev/null
@@ -1,203 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="reset">
-    <children>
-      <node name="ip">
-        <children>
-          <node name="bgp">
-            <properties>
-              <help>Clear Border Gateway Protocol (BGP) statistics or status</help>
-            </properties>
-            <children>
-              <leafNode name="all">
-                <properties>
-                  <help>Clear all BGP peering sessions</help>
-                </properties>
-                <command>vtysh -c "clear bgp ipv4 *"</command>
-              </leafNode>
-              <node name="dampening">
-                <properties>
-                  <help>Clear BGP route flap dampening information</help>
-                </properties>
-                <command>vtysh -c "clear ip bgp dampening"</command>
-              </node>
-              <tagNode name="dampening">
-                <properties>
-                  <help>Clear BGP route flap dampening information for given host|network address</help>
-                  <completionHelp>
-                    <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "clear ip bgp dampening $5"</command>
-                <children>
-                  <leafNode name="node.tag">
-                    <properties>
-                      <help>Clear BGP route flap dampening information for given network address</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>vtysh -c "clear ip bgp dampening $5 $6"</command>
-                  </leafNode>
-                </children>
-              </tagNode>
-              <node name="external">
-                <properties>
-                  <help>Clear all external peers</help>
-                  <completionHelp>
-                    <list>WORD</list>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "clear bgp ipv4 external"</command>
-                <children>
-                  <node name="in">
-                    <properties>
-                      <help>Send route-refresh unless using 'soft-reconfiguration inbound'</help>
-                    </properties>
-                    <command>vtysh -c "clear bgp ipv4 external in"</command>
-                    <children>
-                      <leafNode name="prefix-filter">
-                        <properties>
-                          <help>Push out prefix-list ORF and do inbound soft reconfig</help>
-                        </properties>
-                        <command>vtysh -c "clear bgp ipv4 external in prefix-filter"</command>
-                      </leafNode>
-                    </children>
-                  </node>
-                  <node name="out">
-                    <properties>
-                      <help>Resend all outbound updates</help>
-                    </properties>
-                    <command>vtysh -c "clear bgp ipv4 external out"</command>
-                  </node>
-                  <node name="soft">
-                    <properties>
-                      <help>Soft reconfig inbound and outbound updates</help>
-                    </properties>
-                    <command>vtysh -c "clear bgp ipv4 external soft"</command>
-                    <children>
-                      <node name="in">
-                        <properties>
-                          <help>Clear via soft reconfig of inbound update</help>
-                        </properties>
-                        <command>vtysh -c "clear bgp ipv4 external soft in"</command>
-                      </node>
-                      <node name="out">
-                        <properties>
-                          <help>Resend all outbound updates</help>
-                        </properties>
-                        <command>vtysh -c "clear bgp ipv4 external soft out"</command>
-                      </node>
-                    </children>
-                  </node>
-                </children>
-              </node>
-              <tagNode name="peer-group">
-                <properties>
-                  <help>Clear BGP statistics or status for given peer-group</help>
-                  <completionHelp>
-                    <list>WORD</list>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "clear bgp ipv4 peer-group $5"</command>
-                <children>
-                  <node name="in">
-                    <properties>
-                      <help>Send route-refresh unless using 'soft-reconfiguration inbound'</help>
-                    </properties>
-                    <command>vtysh -c "clear bgp ipv4 peer-group $5 in"</command>
-                    <children>
-                      <leafNode name="prefix-filter">
-                        <properties>
-                          <help>Push out prefix-list ORF and do inbound soft reconfig</help>
-                        </properties>
-                        <command>vtysh -c "clear bgp ipv4 peer-group $5 in prefix-filter"</command>
-                      </leafNode>
-                    </children>
-                  </node>
-                  <node name="out">
-                    <properties>
-                      <help>Resend all outbound updates</help>
-                    </properties>
-                    <command>vtysh -c "clear bgp ipv4 peer-group $5 out"</command>
-                  </node>
-                  <node name="soft">
-                    <properties>
-                      <help>Soft reconfig inbound and outbound updates</help>
-                    </properties>
-                    <command>vtysh -c "clear bgp ipv4 peer-group $5 soft"</command>
-                    <children>
-                      <node name="in">
-                        <properties>
-                          <help>Clear via soft reconfig of inbound update</help>
-                        </properties>
-                        <command>vtysh -c "clear bgp ipv4 peer-group $5 soft in"</command>
-                      </node>
-                      <node name="out">
-                        <properties>
-                          <help>Resend all outbound updates</help>
-                        </properties>
-                        <command>vtysh -c "clear bgp ipv4 peer-group $5 soft out"</command>
-                      </node>
-                    </children>
-                  </node>
-                </children>
-              </tagNode>
-            </children>
-          </node>
-          <tagNode name="bgp">
-            <properties>
-              <help>Clear BGP neighbor IP address</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_bgp_neighbors.sh --ipv4</script>
-              </completionHelp>
-            </properties>
-            <command>vtysh -c "clear bgp ipv4 $4"</command>
-            <children>
-              <node name="in">
-                <properties>
-                  <help>Send route-refresh unless using 'soft-reconfiguration inbound'</help>
-                </properties>
-                <command>vtysh -c "clear bgp ipv4 $4 in"</command>
-                <children>
-                  <leafNode name="prefix-filter">
-                    <properties>
-                      <help>Push out prefix-list ORF and do inbound soft reconfig</help>
-                    </properties>
-                    <command>vtysh -c "clear bgp ipv4 $4 in prefix-filter"</command>
-                  </leafNode>
-                </children>
-              </node>
-              <node name="out">
-                <properties>
-                  <help>Resend all outbound updates</help>
-                </properties>
-                <command>vtysh -c "clear bgp ipv4 $4 out"</command>
-              </node>
-              <node name="soft">
-                <properties>
-                  <help>Soft reconfig inbound and outbound updates</help>
-                </properties>
-                <command>vtysh -c "clear bgp ipv4 $4 soft"</command>
-                <children>
-                  <node name="in">
-                    <properties>
-                      <help>Clear via soft reconfig of inbound update</help>
-                    </properties>
-                    <command>vtysh -c "clear bgp ipv4 $4 soft in"</command>
-                  </node>
-                  <node name="out">
-                    <properties>
-                      <help>Resend all outbound updates</help>
-                    </properties>
-                    <command>vtysh -c "clear bgp ipv4 $4 soft out"</command>
-                  </node>
-                </children>
-              </node>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/reset-ip-bgp.xml.in b/op-mode-definitions/reset-ip-bgp.xml.in
new file mode 100644
index 000000000..931a2a9bc
--- /dev/null
+++ b/op-mode-definitions/reset-ip-bgp.xml.in
@@ -0,0 +1,203 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="reset">
+    <children>
+      <node name="ip">
+        <children>
+          <node name="bgp">
+            <properties>
+              <help>Clear Border Gateway Protocol (BGP) statistics or status</help>
+            </properties>
+            <children>
+              <leafNode name="all">
+                <properties>
+                  <help>Clear all BGP peering sessions</help>
+                </properties>
+                <command>vtysh -c "clear bgp ipv4 *"</command>
+              </leafNode>
+              <node name="dampening">
+                <properties>
+                  <help>Clear BGP route flap dampening information</help>
+                </properties>
+                <command>vtysh -c "clear ip bgp dampening"</command>
+              </node>
+              <tagNode name="dampening">
+                <properties>
+                  <help>Clear BGP route flap dampening information for given host|network address</help>
+                  <completionHelp>
+                    <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "clear ip bgp dampening $5"</command>
+                <children>
+                  <leafNode name="node.tag">
+                    <properties>
+                      <help>Clear BGP route flap dampening information for given network address</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>vtysh -c "clear ip bgp dampening $5 $6"</command>
+                  </leafNode>
+                </children>
+              </tagNode>
+              <node name="external">
+                <properties>
+                  <help>Clear all external peers</help>
+                  <completionHelp>
+                    <list>WORD</list>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "clear bgp ipv4 external"</command>
+                <children>
+                  <node name="in">
+                    <properties>
+                      <help>Send route-refresh unless using 'soft-reconfiguration inbound'</help>
+                    </properties>
+                    <command>vtysh -c "clear bgp ipv4 external in"</command>
+                    <children>
+                      <leafNode name="prefix-filter">
+                        <properties>
+                          <help>Push out prefix-list ORF and do inbound soft reconfig</help>
+                        </properties>
+                        <command>vtysh -c "clear bgp ipv4 external in prefix-filter"</command>
+                      </leafNode>
+                    </children>
+                  </node>
+                  <node name="out">
+                    <properties>
+                      <help>Resend all outbound updates</help>
+                    </properties>
+                    <command>vtysh -c "clear bgp ipv4 external out"</command>
+                  </node>
+                  <node name="soft">
+                    <properties>
+                      <help>Soft reconfig inbound and outbound updates</help>
+                    </properties>
+                    <command>vtysh -c "clear bgp ipv4 external soft"</command>
+                    <children>
+                      <node name="in">
+                        <properties>
+                          <help>Clear via soft reconfig of inbound update</help>
+                        </properties>
+                        <command>vtysh -c "clear bgp ipv4 external soft in"</command>
+                      </node>
+                      <node name="out">
+                        <properties>
+                          <help>Resend all outbound updates</help>
+                        </properties>
+                        <command>vtysh -c "clear bgp ipv4 external soft out"</command>
+                      </node>
+                    </children>
+                  </node>
+                </children>
+              </node>
+              <tagNode name="peer-group">
+                <properties>
+                  <help>Clear BGP statistics or status for given peer-group</help>
+                  <completionHelp>
+                    <list>WORD</list>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "clear bgp ipv4 peer-group $5"</command>
+                <children>
+                  <node name="in">
+                    <properties>
+                      <help>Send route-refresh unless using 'soft-reconfiguration inbound'</help>
+                    </properties>
+                    <command>vtysh -c "clear bgp ipv4 peer-group $5 in"</command>
+                    <children>
+                      <leafNode name="prefix-filter">
+                        <properties>
+                          <help>Push out prefix-list ORF and do inbound soft reconfig</help>
+                        </properties>
+                        <command>vtysh -c "clear bgp ipv4 peer-group $5 in prefix-filter"</command>
+                      </leafNode>
+                    </children>
+                  </node>
+                  <node name="out">
+                    <properties>
+                      <help>Resend all outbound updates</help>
+                    </properties>
+                    <command>vtysh -c "clear bgp ipv4 peer-group $5 out"</command>
+                  </node>
+                  <node name="soft">
+                    <properties>
+                      <help>Soft reconfig inbound and outbound updates</help>
+                    </properties>
+                    <command>vtysh -c "clear bgp ipv4 peer-group $5 soft"</command>
+                    <children>
+                      <node name="in">
+                        <properties>
+                          <help>Clear via soft reconfig of inbound update</help>
+                        </properties>
+                        <command>vtysh -c "clear bgp ipv4 peer-group $5 soft in"</command>
+                      </node>
+                      <node name="out">
+                        <properties>
+                          <help>Resend all outbound updates</help>
+                        </properties>
+                        <command>vtysh -c "clear bgp ipv4 peer-group $5 soft out"</command>
+                      </node>
+                    </children>
+                  </node>
+                </children>
+              </tagNode>
+            </children>
+          </node>
+          <tagNode name="bgp">
+            <properties>
+              <help>Clear BGP neighbor IP address</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_bgp_neighbors.sh --ipv4</script>
+              </completionHelp>
+            </properties>
+            <command>vtysh -c "clear bgp ipv4 $4"</command>
+            <children>
+              <node name="in">
+                <properties>
+                  <help>Send route-refresh unless using 'soft-reconfiguration inbound'</help>
+                </properties>
+                <command>vtysh -c "clear bgp ipv4 $4 in"</command>
+                <children>
+                  <leafNode name="prefix-filter">
+                    <properties>
+                      <help>Push out prefix-list ORF and do inbound soft reconfig</help>
+                    </properties>
+                    <command>vtysh -c "clear bgp ipv4 $4 in prefix-filter"</command>
+                  </leafNode>
+                </children>
+              </node>
+              <node name="out">
+                <properties>
+                  <help>Resend all outbound updates</help>
+                </properties>
+                <command>vtysh -c "clear bgp ipv4 $4 out"</command>
+              </node>
+              <node name="soft">
+                <properties>
+                  <help>Soft reconfig inbound and outbound updates</help>
+                </properties>
+                <command>vtysh -c "clear bgp ipv4 $4 soft"</command>
+                <children>
+                  <node name="in">
+                    <properties>
+                      <help>Clear via soft reconfig of inbound update</help>
+                    </properties>
+                    <command>vtysh -c "clear bgp ipv4 $4 soft in"</command>
+                  </node>
+                  <node name="out">
+                    <properties>
+                      <help>Resend all outbound updates</help>
+                    </properties>
+                    <command>vtysh -c "clear bgp ipv4 $4 soft out"</command>
+                  </node>
+                </children>
+              </node>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/reset-ip-igmp.xml b/op-mode-definitions/reset-ip-igmp.xml
deleted file mode 100644
index 143553d33..000000000
--- a/op-mode-definitions/reset-ip-igmp.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="reset">
-    <children>
-      <node name="ip">
-        <children>
-          <node name="igmp">
-            <properties>
-              <help>IGMP clear commands</help>
-            </properties>
-            <children>
-              <leafNode name="interfaces">
-                <properties>
-                  <help>Reset IGMP interfaces</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "clear ip igmp interfaces"</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/reset-ip-igmp.xml.in b/op-mode-definitions/reset-ip-igmp.xml.in
new file mode 100644
index 000000000..143553d33
--- /dev/null
+++ b/op-mode-definitions/reset-ip-igmp.xml.in
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="reset">
+    <children>
+      <node name="ip">
+        <children>
+          <node name="igmp">
+            <properties>
+              <help>IGMP clear commands</help>
+            </properties>
+            <children>
+              <leafNode name="interfaces">
+                <properties>
+                  <help>Reset IGMP interfaces</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "clear ip igmp interfaces"</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/reset-ip-multicast.xml b/op-mode-definitions/reset-ip-multicast.xml
deleted file mode 100644
index d610add16..000000000
--- a/op-mode-definitions/reset-ip-multicast.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="reset">
-    <children>
-      <node name="ip">
-        <children>
-          <node name="multicast">
-            <properties>
-              <help>IP multicast routing table</help>
-            </properties>
-            <children>
-              <leafNode name="route">
-                <properties>
-                  <help>Clear multicast routing table</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "clear ip mroute"</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/reset-ip-multicast.xml.in b/op-mode-definitions/reset-ip-multicast.xml.in
new file mode 100644
index 000000000..d610add16
--- /dev/null
+++ b/op-mode-definitions/reset-ip-multicast.xml.in
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="reset">
+    <children>
+      <node name="ip">
+        <children>
+          <node name="multicast">
+            <properties>
+              <help>IP multicast routing table</help>
+            </properties>
+            <children>
+              <leafNode name="route">
+                <properties>
+                  <help>Clear multicast routing table</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "clear ip mroute"</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/reset-ipv6-bgp.xml b/op-mode-definitions/reset-ipv6-bgp.xml
deleted file mode 100644
index 3c4275331..000000000
--- a/op-mode-definitions/reset-ipv6-bgp.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="reset">
-    <children>
-      <node name="ipv6">
-        <children>
-          <tagNode name="bgp">
-            <properties>
-              <help>Clear BGP neighbor IP address</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_bgp_neighbors.sh --ipv6</script>
-              </completionHelp>
-            </properties>
-            <command>vtysh -c "clear bgp ipv6 $4"</command>
-            <children>
-              <node name="in">
-                <properties>
-                  <help>Send route-refresh unless using 'soft-reconfiguration inbound'</help>
-                </properties>
-                <command>vtysh -c "clear bgp ipv6 $4 in"</command>
-                <children>
-                  <leafNode name="prefix-filter">
-                    <properties>
-                      <help>Push out prefix-list ORF and do inbound soft reconfig</help>
-                    </properties>
-                    <command>vtysh -c "clear bgp ipv6 $4 in prefix-filter"</command>
-                  </leafNode>
-                </children>
-              </node>
-              <node name="out">
-                <properties>
-                  <help>Resend all outbound updates</help>
-                </properties>
-                <command>vtysh -c "clear bgp ipv6 $4 out"</command>
-              </node>
-              <node name="soft">
-                <properties>
-                  <help>Soft reconfig inbound and outbound updates</help>
-                </properties>
-                <command>vtysh -c "clear bgp ipv6 $4 soft"</command>
-                <children>
-                  <node name="in">
-                    <properties>
-                      <help>Clear via soft reconfig of inbound update</help>
-                    </properties>
-                    <command>vtysh -c "clear bgp ipv6 $4 soft in"</command>
-                  </node>
-                  <node name="out">
-                    <properties>
-                      <help>Resend all outbound updates</help>
-                    </properties>
-                    <command>vtysh -c "clear bgp ipv6 $4 soft out"</command>
-                  </node>
-                </children>
-              </node>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/reset-ipv6-bgp.xml.in b/op-mode-definitions/reset-ipv6-bgp.xml.in
new file mode 100644
index 000000000..3c4275331
--- /dev/null
+++ b/op-mode-definitions/reset-ipv6-bgp.xml.in
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="reset">
+    <children>
+      <node name="ipv6">
+        <children>
+          <tagNode name="bgp">
+            <properties>
+              <help>Clear BGP neighbor IP address</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_bgp_neighbors.sh --ipv6</script>
+              </completionHelp>
+            </properties>
+            <command>vtysh -c "clear bgp ipv6 $4"</command>
+            <children>
+              <node name="in">
+                <properties>
+                  <help>Send route-refresh unless using 'soft-reconfiguration inbound'</help>
+                </properties>
+                <command>vtysh -c "clear bgp ipv6 $4 in"</command>
+                <children>
+                  <leafNode name="prefix-filter">
+                    <properties>
+                      <help>Push out prefix-list ORF and do inbound soft reconfig</help>
+                    </properties>
+                    <command>vtysh -c "clear bgp ipv6 $4 in prefix-filter"</command>
+                  </leafNode>
+                </children>
+              </node>
+              <node name="out">
+                <properties>
+                  <help>Resend all outbound updates</help>
+                </properties>
+                <command>vtysh -c "clear bgp ipv6 $4 out"</command>
+              </node>
+              <node name="soft">
+                <properties>
+                  <help>Soft reconfig inbound and outbound updates</help>
+                </properties>
+                <command>vtysh -c "clear bgp ipv6 $4 soft"</command>
+                <children>
+                  <node name="in">
+                    <properties>
+                      <help>Clear via soft reconfig of inbound update</help>
+                    </properties>
+                    <command>vtysh -c "clear bgp ipv6 $4 soft in"</command>
+                  </node>
+                  <node name="out">
+                    <properties>
+                      <help>Resend all outbound updates</help>
+                    </properties>
+                    <command>vtysh -c "clear bgp ipv6 $4 soft out"</command>
+                  </node>
+                </children>
+              </node>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/reset-mpls.xml b/op-mode-definitions/reset-mpls.xml
deleted file mode 100644
index 4e5d37d5b..000000000
--- a/op-mode-definitions/reset-mpls.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="reset">
-    <children>
-      <node name="mpls">
-        <properties>
-          <help>Reset MPLS and related protocol commands</help>
-        </properties>
-        <children>
-          <node name="ldp">
-            <properties>
-              <help>Reset LDP commands</help>
-            </properties>
-            <children>
-              <tagNode name="neighbor">
-                <properties>
-                  <help>Reset MPLS LDP neighbor/session</help>
-                  <completionHelp>
-                    <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-                    <script>/usr/bin/vtysh -c "show mpls ldp neighbor" | awk '{print $2}' | egrep -v "ID"</script>
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/vtysh -c "clear mpls ldp neighbor $5"</command>
-              </tagNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
\ No newline at end of file
diff --git a/op-mode-definitions/reset-mpls.xml.in b/op-mode-definitions/reset-mpls.xml.in
new file mode 100644
index 000000000..4e5d37d5b
--- /dev/null
+++ b/op-mode-definitions/reset-mpls.xml.in
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="reset">
+    <children>
+      <node name="mpls">
+        <properties>
+          <help>Reset MPLS and related protocol commands</help>
+        </properties>
+        <children>
+          <node name="ldp">
+            <properties>
+              <help>Reset LDP commands</help>
+            </properties>
+            <children>
+              <tagNode name="neighbor">
+                <properties>
+                  <help>Reset MPLS LDP neighbor/session</help>
+                  <completionHelp>
+                    <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+                    <script>/usr/bin/vtysh -c "show mpls ldp neighbor" | awk '{print $2}' | egrep -v "ID"</script>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/vtysh -c "clear mpls ldp neighbor $5"</command>
+              </tagNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
\ No newline at end of file
diff --git a/op-mode-definitions/reset-vpn.xml b/op-mode-definitions/reset-vpn.xml
deleted file mode 100644
index ae553c272..000000000
--- a/op-mode-definitions/reset-vpn.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="reset">
-    <properties>
-      <help>Reset a service</help>
-    </properties>
-    <children>
-      <node name="vpn">
-        <properties>
-          <help>Reset Virtual Private Network (VPN) information</help>
-        </properties>
-        <children>
-          <node name="remote-access">
-            <properties>
-              <help>Reset remote access VPN connections</help>
-            </properties>
-            <children>
-              <node name="all">
-                <properties>
-                  <help>Terminate all user's current remote access VPN session(s)</help>
-                </properties>
-                <children>
-                  <node name="protocol">
-                    <properties>
-                      <help>Terminate specified user's current remote access VPN session(s) with specified protocol</help>
-                    </properties>
-                    <children>
-                      <leafNode name="l2tp">
-                        <properties>
-                          <help>Terminate all user's current remote access VPN session(s) with L2TP protocol</help>
-                        </properties>
-                        <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="all_users" --protocol="l2tp"</command> 
-                      </leafNode>
-                      <leafNode name="pptp">
-                        <properties>
-                          <help>Terminate all user's current remote access VPN session(s) with PPTP protocol</help>
-                        </properties>
-                        <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="all_users" --protocol="pptp"</command> 
-                      </leafNode>
-                      <leafNode name="sstp">
-                        <properties>
-                          <help>Terminate all user's current remote access VPN session(s) with SSTP protocol</help>
-                        </properties>
-                        <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="all_users" --protocol="sstp"</command> 
-                      </leafNode>
-                    </children>
-                  </node>
-                </children>
-                <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="all_users"</command>
-              </node>
-              <tagNode name="interface">
-                <properties>
-                  <help>Terminate a remote access VPN interface</help>
-                </properties>
-                <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --interface="$5"</command>
-              </tagNode>
-              <tagNode name="user">
-                <properties>
-                  <help>Terminate specified user's current remote access VPN session(s)</help>
-                </properties>
-                <children>
-                  <node name="protocol">
-                    <properties>
-                      <help>Terminate specified user's current remote access VPN session(s) with specified protocol</help>
-                    </properties>
-                    <children>
-                      <leafNode name="l2tp">
-                        <properties>
-                          <help>Terminate all user's current remote access VPN session(s) with L2TP protocol</help>
-                        </properties>
-                        <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="$5" --protocol="l2tp"</command>
-                      </leafNode>
-                      <leafNode name="pptp">
-                        <properties>
-                          <help>Terminate all user's current remote access VPN session(s) with PPTP protocol</help>
-                        </properties>
-                        <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="$5" --protocol="pptp"</command>
-                      </leafNode>
-                      <leafNode name="sstp">
-                        <properties>
-                          <help>Terminate all user's current remote access VPN session(s) with SSTP protocol</help>
-                        </properties>
-                        <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="$5" --protocol="sstp"</command>
-                      </leafNode>
-                    </children>
-                  </node>
-                </children>
-                <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="$5"</command>
-              </tagNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/reset-vpn.xml.in b/op-mode-definitions/reset-vpn.xml.in
new file mode 100644
index 000000000..71dbb4ed9
--- /dev/null
+++ b/op-mode-definitions/reset-vpn.xml.in
@@ -0,0 +1,96 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="reset">
+    <properties>
+      <help>Reset a service</help>
+    </properties>
+    <children>
+      <node name="vpn">
+        <properties>
+          <help>Reset Virtual Private Network (VPN) information</help>
+        </properties>
+        <children>
+          <node name="remote-access">
+            <properties>
+              <help>Reset remote access VPN connections</help>
+            </properties>
+            <children>
+              <node name="all">
+                <properties>
+                  <help>Terminate all users current remote access VPN session(s)</help>
+                </properties>
+                <children>
+                  <node name="protocol">
+                    <properties>
+                      <help>Terminate specified users current remote access VPN session(s) with specified protocol</help>
+                    </properties>
+                    <children>
+                      <leafNode name="l2tp">
+                        <properties>
+                          <help>Terminate all users current remote access VPN session(s) with L2TP protocol</help>
+                        </properties>
+                        <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="all_users" --protocol="l2tp"</command>
+                      </leafNode>
+                      <leafNode name="pptp">
+                        <properties>
+                          <help>Terminate all users current remote access VPN session(s) with PPTP protocol</help>
+                        </properties>
+                        <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="all_users" --protocol="pptp"</command>
+                      </leafNode>
+                      <leafNode name="sstp">
+                        <properties>
+                          <help>Terminate all users current remote access VPN session(s) with SSTP protocol</help>
+                        </properties>
+                        <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="all_users" --protocol="sstp"</command>
+                      </leafNode>
+                    </children>
+                  </node>
+                </children>
+                <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="all_users"</command>
+              </node>
+              <tagNode name="interface">
+                <properties>
+                  <help>Terminate a remote access VPN interface</help>
+                </properties>
+                <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --interface="$5"</command>
+              </tagNode>
+              <tagNode name="user">
+                <properties>
+                  <help>Terminate specified users current remote access VPN session(s)</help>
+                </properties>
+                <children>
+                  <node name="protocol">
+                    <properties>
+                      <help>Terminate specified users current remote access VPN session(s) with specified protocol</help>
+                    </properties>
+                    <children>
+                      <leafNode name="l2tp">
+                        <properties>
+                          <help>Terminate all users current remote access VPN session(s) with L2TP protocol</help>
+                        </properties>
+                        <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="$5" --protocol="l2tp"</command>
+                      </leafNode>
+                      <leafNode name="pptp">
+                        <properties>
+                          <help>Terminate all users current remote access VPN session(s) with PPTP protocol</help>
+                        </properties>
+                        <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="$5" --protocol="pptp"</command>
+                      </leafNode>
+                      <leafNode name="sstp">
+                        <properties>
+                          <help>Terminate all users current remote access VPN session(s) with SSTP protocol</help>
+                        </properties>
+                        <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="$5" --protocol="sstp"</command>
+                      </leafNode>
+                    </children>
+                  </node>
+                </children>
+                <command>sudo ${vyos_op_scripts_dir}/reset_vpn.py --username="$5"</command>
+              </tagNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/restart-frr.xml b/op-mode-definitions/restart-frr.xml
deleted file mode 100644
index 96ad1a650..000000000
--- a/op-mode-definitions/restart-frr.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="restart">
-    <children>
-      <node name="frr">
-        <properties>
-          <help>Restart FRRouting daemons</help>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart</command>
-        <children>
-          <leafNode name="bfdd">
-            <properties>
-              <help>Restart Bidirectional Forwarding Detection daemon</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon bfdd</command>
-          </leafNode>
-          <leafNode name="bgpd">
-            <properties>
-              <help>Restart Border Gateway Protocol daemon</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon bgpd</command>
-          </leafNode>
-          <leafNode name="ospfd">
-            <properties>
-              <help>Restart OSPFv2 daemon</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ospfd</command>
-          </leafNode>
-          <leafNode name="ospf6d">
-            <properties>
-              <help>Restart OSPFv3 daemon</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ospf6d</command>
-          </leafNode>
-          <leafNode name="ripd">
-            <properties>
-              <help>Restart Routing Information Protocol daemon</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ripd</command>
-          </leafNode>
-          <leafNode name="ripngd">
-            <properties>
-              <help>Restart RIPng daemon</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ripngd</command>
-          </leafNode>
-          <leafNode name="staticd">
-            <properties>
-              <help>Restart Static Route daemon</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon staticd</command>
-          </leafNode>
-          <leafNode name="zebra">
-            <properties>
-              <help>Restart IP routing manager daemon</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon zebra</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/restart-frr.xml.in b/op-mode-definitions/restart-frr.xml.in
new file mode 100644
index 000000000..96ad1a650
--- /dev/null
+++ b/op-mode-definitions/restart-frr.xml.in
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="restart">
+    <children>
+      <node name="frr">
+        <properties>
+          <help>Restart FRRouting daemons</help>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart</command>
+        <children>
+          <leafNode name="bfdd">
+            <properties>
+              <help>Restart Bidirectional Forwarding Detection daemon</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon bfdd</command>
+          </leafNode>
+          <leafNode name="bgpd">
+            <properties>
+              <help>Restart Border Gateway Protocol daemon</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon bgpd</command>
+          </leafNode>
+          <leafNode name="ospfd">
+            <properties>
+              <help>Restart OSPFv2 daemon</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ospfd</command>
+          </leafNode>
+          <leafNode name="ospf6d">
+            <properties>
+              <help>Restart OSPFv3 daemon</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ospf6d</command>
+          </leafNode>
+          <leafNode name="ripd">
+            <properties>
+              <help>Restart Routing Information Protocol daemon</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ripd</command>
+          </leafNode>
+          <leafNode name="ripngd">
+            <properties>
+              <help>Restart RIPng daemon</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon ripngd</command>
+          </leafNode>
+          <leafNode name="staticd">
+            <properties>
+              <help>Restart Static Route daemon</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon staticd</command>
+          </leafNode>
+          <leafNode name="zebra">
+            <properties>
+              <help>Restart IP routing manager daemon</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/restart_frr.py --action restart --daemon zebra</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/restart.xml b/op-mode-definitions/restart.xml
deleted file mode 100644
index c74ec9013..000000000
--- a/op-mode-definitions/restart.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interfaceDefinition>
-  <node name="restart">
-    <properties>
-      <help>Restart individual service</help>
-    </properties>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/restart.xml.in b/op-mode-definitions/restart.xml.in
new file mode 100644
index 000000000..c74ec9013
--- /dev/null
+++ b/op-mode-definitions/restart.xml.in
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interfaceDefinition>
+  <node name="restart">
+    <properties>
+      <help>Restart individual service</help>
+    </properties>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-acceleration.xml b/op-mode-definitions/show-acceleration.xml
deleted file mode 100644
index d0dcea2d6..000000000
--- a/op-mode-definitions/show-acceleration.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="system">
-        <properties>
-          <help>Show system information</help>
-        </properties>
-        <children>
-          <node name="acceleration">
-            <properties>
-              <help>Acceleration components</help>
-            </properties>
-            <children>
-              <node name="qat">
-                <properties>
-                  <help>Intel QAT (Quick Assist Technology) Devices</help>
-                </properties>
-                <children>
-                  <tagNode name="device">
-                    <properties>
-                      <help>Show QAT information for a given acceleration device</help>
-                      <completionHelp>
-                        <script>${vyos_op_scripts_dir}/show_acceleration.py --dev_list</script>
-                      </completionHelp>
-                    </properties>
-                    <children>
-                      <node name="flows">
-                        <properties>
-                          <help>Intel QAT flows</help>
-                        </properties>
-                        <command>${vyos_op_scripts_dir}/show_acceleration.py --flow --dev $6</command>
-                      </node>
-                      <node name="config">
-                        <properties>
-                          <help>Intel QAT configuration</help>
-                        </properties>
-                        <command>${vyos_op_scripts_dir}/show_acceleration.py --conf --dev $6</command>
-                      </node>
-                    </children>
-                  </tagNode>
-                  <node name="status">
-                    <properties>
-                      <help>Intel QAT status</help>
-                    </properties>
-                    <command>${vyos_op_scripts_dir}/show_acceleration.py --status</command>
-                  </node>
-                  <node name="interrupts">
-                    <properties>
-                      <help>Intel QAT interrupts</help>
-                    </properties>
-                    <command>${vyos_op_scripts_dir}/show_acceleration.py --interrupts</command>
-                  </node>
-                </children>
-                <command>${vyos_op_scripts_dir}/show_acceleration.py --hw</command>
-              </node>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-acceleration.xml.in b/op-mode-definitions/show-acceleration.xml.in
new file mode 100644
index 000000000..d0dcea2d6
--- /dev/null
+++ b/op-mode-definitions/show-acceleration.xml.in
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="system">
+        <properties>
+          <help>Show system information</help>
+        </properties>
+        <children>
+          <node name="acceleration">
+            <properties>
+              <help>Acceleration components</help>
+            </properties>
+            <children>
+              <node name="qat">
+                <properties>
+                  <help>Intel QAT (Quick Assist Technology) Devices</help>
+                </properties>
+                <children>
+                  <tagNode name="device">
+                    <properties>
+                      <help>Show QAT information for a given acceleration device</help>
+                      <completionHelp>
+                        <script>${vyos_op_scripts_dir}/show_acceleration.py --dev_list</script>
+                      </completionHelp>
+                    </properties>
+                    <children>
+                      <node name="flows">
+                        <properties>
+                          <help>Intel QAT flows</help>
+                        </properties>
+                        <command>${vyos_op_scripts_dir}/show_acceleration.py --flow --dev $6</command>
+                      </node>
+                      <node name="config">
+                        <properties>
+                          <help>Intel QAT configuration</help>
+                        </properties>
+                        <command>${vyos_op_scripts_dir}/show_acceleration.py --conf --dev $6</command>
+                      </node>
+                    </children>
+                  </tagNode>
+                  <node name="status">
+                    <properties>
+                      <help>Intel QAT status</help>
+                    </properties>
+                    <command>${vyos_op_scripts_dir}/show_acceleration.py --status</command>
+                  </node>
+                  <node name="interrupts">
+                    <properties>
+                      <help>Intel QAT interrupts</help>
+                    </properties>
+                    <command>${vyos_op_scripts_dir}/show_acceleration.py --interrupts</command>
+                  </node>
+                </children>
+                <command>${vyos_op_scripts_dir}/show_acceleration.py --hw</command>
+              </node>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-bridge.xml b/op-mode-definitions/show-bridge.xml
deleted file mode 100644
index 8c1f7c398..000000000
--- a/op-mode-definitions/show-bridge.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <leafNode name="bridge">
-        <properties>
-          <help>Show bridging information</help>
-        </properties>
-        <command>/sbin/brctl show</command>
-      </leafNode>
-      <tagNode name="bridge">
-        <properties>
-          <help>Show bridge information for a given bridge interface</help>
-          <completionHelp>
-            <script>${vyos_completion_dir}/list_interfaces.py --type bridge</script>
-          </completionHelp>
-        </properties>
-        <command>/sbin/brctl show $3</command>
-        <children>
-          <leafNode name="macs">
-            <properties>
-              <help>Show bridge Media Access Control (MAC) address table</help>
-            </properties>
-            <command>/sbin/brctl showmacs $3</command>
-          </leafNode>
-          <leafNode name="spanning-tree">
-            <properties>
-              <help>Show bridge spanning tree information</help>
-            </properties>
-            <command>/sbin/brctl showstp $3</command>
-          </leafNode>
-        </children>
-      </tagNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-bridge.xml.in b/op-mode-definitions/show-bridge.xml.in
new file mode 100644
index 000000000..8c1f7c398
--- /dev/null
+++ b/op-mode-definitions/show-bridge.xml.in
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <leafNode name="bridge">
+        <properties>
+          <help>Show bridging information</help>
+        </properties>
+        <command>/sbin/brctl show</command>
+      </leafNode>
+      <tagNode name="bridge">
+        <properties>
+          <help>Show bridge information for a given bridge interface</help>
+          <completionHelp>
+            <script>${vyos_completion_dir}/list_interfaces.py --type bridge</script>
+          </completionHelp>
+        </properties>
+        <command>/sbin/brctl show $3</command>
+        <children>
+          <leafNode name="macs">
+            <properties>
+              <help>Show bridge Media Access Control (MAC) address table</help>
+            </properties>
+            <command>/sbin/brctl showmacs $3</command>
+          </leafNode>
+          <leafNode name="spanning-tree">
+            <properties>
+              <help>Show bridge spanning tree information</help>
+            </properties>
+            <command>/sbin/brctl showstp $3</command>
+          </leafNode>
+        </children>
+      </tagNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-configuration.xml b/op-mode-definitions/show-configuration.xml
deleted file mode 100644
index 318942ab0..000000000
--- a/op-mode-definitions/show-configuration.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="configuration">
-        <properties>
-          <help>Show available saved configurations</help>
-        </properties>
-        <!-- no admin check -->
-        <command>cli-shell-api showCfg --show-active-only --show-hide-secrets</command>
-        <children>
-          <node name="all">
-            <properties>
-              <help>Show running configuration (including default values)</help>
-            </properties>
-            <!-- no admin check -->
-            <command>cli-shell-api showCfg --show-show-defaults --show-active-only --show-hide-secrets</command>
-          </node>
-          <node name="commands">
-            <properties>
-              <help> Show running configuration as set commands </help>
-            </properties>
-            <!-- no admin check -->
-            <command>cli-shell-api showCfg --show-active-only | vyos-config-to-commands</command>
-          </node>
-          <node name="files">
-            <properties>
-              <help> Show available saved configurations </help>
-            </properties>
-            <!-- no admin check -->
-            <command>${vyos_op_scripts_dir}/show_configuration_files.sh</command>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-configuration.xml.in b/op-mode-definitions/show-configuration.xml.in
new file mode 100644
index 000000000..318942ab0
--- /dev/null
+++ b/op-mode-definitions/show-configuration.xml.in
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="configuration">
+        <properties>
+          <help>Show available saved configurations</help>
+        </properties>
+        <!-- no admin check -->
+        <command>cli-shell-api showCfg --show-active-only --show-hide-secrets</command>
+        <children>
+          <node name="all">
+            <properties>
+              <help>Show running configuration (including default values)</help>
+            </properties>
+            <!-- no admin check -->
+            <command>cli-shell-api showCfg --show-show-defaults --show-active-only --show-hide-secrets</command>
+          </node>
+          <node name="commands">
+            <properties>
+              <help> Show running configuration as set commands </help>
+            </properties>
+            <!-- no admin check -->
+            <command>cli-shell-api showCfg --show-active-only | vyos-config-to-commands</command>
+          </node>
+          <node name="files">
+            <properties>
+              <help> Show available saved configurations </help>
+            </properties>
+            <!-- no admin check -->
+            <command>${vyos_op_scripts_dir}/show_configuration_files.sh</command>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-console-server.xml b/op-mode-definitions/show-console-server.xml
deleted file mode 100644
index 77a7f3376..000000000
--- a/op-mode-definitions/show-console-server.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="log">
-        <children>
-          <leafNode name="console-server">
-            <properties>
-              <help>Show log for serial console server</help>
-            </properties>
-            <command>/usr/bin/journalctl -u conserver-server.service</command>
-          </leafNode>
-        </children>
-      </node>
-      <node name="console-server">
-        <properties>
-          <help>Show Console-Server information</help>
-        </properties>
-        <children>
-          <leafNode name="ports">
-            <properties>
-              <help>Examine console ports and configured baud rates</help>
-            </properties>
-            <command>/usr/bin/console -x</command>
-          </leafNode>
-          <leafNode name="user">
-            <properties>
-              <help>Show users on various consoles</help>
-            </properties>
-            <command>/usr/bin/console -u</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-console-server.xml.in b/op-mode-definitions/show-console-server.xml.in
new file mode 100644
index 000000000..77a7f3376
--- /dev/null
+++ b/op-mode-definitions/show-console-server.xml.in
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="log">
+        <children>
+          <leafNode name="console-server">
+            <properties>
+              <help>Show log for serial console server</help>
+            </properties>
+            <command>/usr/bin/journalctl -u conserver-server.service</command>
+          </leafNode>
+        </children>
+      </node>
+      <node name="console-server">
+        <properties>
+          <help>Show Console-Server information</help>
+        </properties>
+        <children>
+          <leafNode name="ports">
+            <properties>
+              <help>Examine console ports and configured baud rates</help>
+            </properties>
+            <command>/usr/bin/console -x</command>
+          </leafNode>
+          <leafNode name="user">
+            <properties>
+              <help>Show users on various consoles</help>
+            </properties>
+            <command>/usr/bin/console -u</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-environment.xml b/op-mode-definitions/show-environment.xml
deleted file mode 100644
index 95b658785..000000000
--- a/op-mode-definitions/show-environment.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="environment">
-        <properties>
-          <help>Show current system environmental conditions</help>
-        </properties>
-        <children>
-          <leafNode name="sensors">
-            <properties>
-              <help>Show hardware monitoring results</help>
-            </properties>
-            <!-- Linux always adds "hypervisor" to CPU flags -->
-	    <command>if ! grep -q hypervisor /proc/cpuinfo; then ${vyos_libexec_dir}/vyos-sudo.py ${vyos_op_scripts_dir}/show_sensors.py; else echo "VyOS running under hypervisor, no sensors available"; fi</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-environment.xml.in b/op-mode-definitions/show-environment.xml.in
new file mode 100644
index 000000000..95b658785
--- /dev/null
+++ b/op-mode-definitions/show-environment.xml.in
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="environment">
+        <properties>
+          <help>Show current system environmental conditions</help>
+        </properties>
+        <children>
+          <leafNode name="sensors">
+            <properties>
+              <help>Show hardware monitoring results</help>
+            </properties>
+            <!-- Linux always adds "hypervisor" to CPU flags -->
+	    <command>if ! grep -q hypervisor /proc/cpuinfo; then ${vyos_libexec_dir}/vyos-sudo.py ${vyos_op_scripts_dir}/show_sensors.py; else echo "VyOS running under hypervisor, no sensors available"; fi</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-hardware.xml b/op-mode-definitions/show-hardware.xml
deleted file mode 100644
index c3ff3a60f..000000000
--- a/op-mode-definitions/show-hardware.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="hardware">
-        <properties>
-          <help>Show system hardware details</help>
-        </properties>
-        <children>
-          <node name="cpu">
-            <properties>
-              <help>Show CPU info</help>
-            </properties>
-            <command>lscpu</command>
-            <children>
-              <node name="detail">
-                <properties>
-                  <help> Show system CPU details</help>
-                </properties>
-                <command>cat /proc/cpuinfo</command>
-              </node>
-              <node name="summary">
-                <properties>
-                  <help>Show CPU's on system</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/cpu_summary.py</command>
-              </node>
-            </children>
-          </node>
-          <node name="dmi">
-            <properties>
-              <help>Show system DMI details</help>
-            </properties>
-            <command>${vyatta_bindir}/vyatta-show-dmi</command>
-          </node>
-          <node name="mem">
-            <properties>
-              <help>Show system RAM details</help>
-            </properties>
-            <command>cat /proc/meminfo</command>
-          </node>
-          <node name="pci">
-            <properties>
-              <help>Show system PCI bus details</help>
-            </properties>
-            <command>lspci</command>
-            <children>
-              <node name="detail">
-                <properties>
-                  <help>Show verbose system PCI bus details</help>
-                </properties>
-                <command>lspci -vvv</command>
-              </node>
-            </children>
-          </node>
-          <node name="scsi">
-            <properties>
-              <help>Show SCSI device information</help>
-            </properties>
-            <command>lsscsi</command>
-            <children>
-              <node name="detail">
-                <properties>
-                  <help>Show detailed SCSI device information</help>
-                </properties>
-                <command>lsscsi -vvv</command>
-              </node>
-            </children>
-          </node>
-          <node name="usb">
-            <properties>
-              <help>Show peripherals connected to the USB bus</help>
-            </properties>
-            <command>/usr/bin/lsusb -t</command>
-            <children>
-              <node name="detail">
-                <properties>
-                  <help>Show detailed USB bus information</help>
-                </properties>
-                <command>/usr/bin/lsusb -v</command>
-              </node>
-              <leafNode name="serial">
-                <properties>
-                  <help>Show information about connected USB serial ports</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_usb_serial.py</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-hardware.xml.in b/op-mode-definitions/show-hardware.xml.in
new file mode 100644
index 000000000..0df2e4404
--- /dev/null
+++ b/op-mode-definitions/show-hardware.xml.in
@@ -0,0 +1,94 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="hardware">
+        <properties>
+          <help>Show system hardware details</help>
+        </properties>
+        <children>
+          <node name="cpu">
+            <properties>
+              <help>Show CPU info</help>
+            </properties>
+            <command>lscpu</command>
+            <children>
+              <node name="detail">
+                <properties>
+                  <help> Show system CPU details</help>
+                </properties>
+                <command>cat /proc/cpuinfo</command>
+              </node>
+              <node name="summary">
+                <properties>
+                  <help>Show system CPUs</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/cpu_summary.py</command>
+              </node>
+            </children>
+          </node>
+          <node name="dmi">
+            <properties>
+              <help>Show system DMI details</help>
+            </properties>
+            <command>${vyatta_bindir}/vyatta-show-dmi</command>
+          </node>
+          <node name="mem">
+            <properties>
+              <help>Show system RAM details</help>
+            </properties>
+            <command>cat /proc/meminfo</command>
+          </node>
+          <node name="pci">
+            <properties>
+              <help>Show system PCI bus details</help>
+            </properties>
+            <command>lspci</command>
+            <children>
+              <node name="detail">
+                <properties>
+                  <help>Show verbose system PCI bus details</help>
+                </properties>
+                <command>lspci -vvv</command>
+              </node>
+            </children>
+          </node>
+          <node name="scsi">
+            <properties>
+              <help>Show SCSI device information</help>
+            </properties>
+            <command>lsscsi</command>
+            <children>
+              <node name="detail">
+                <properties>
+                  <help>Show detailed SCSI device information</help>
+                </properties>
+                <command>lsscsi -vvv</command>
+              </node>
+            </children>
+          </node>
+          <node name="usb">
+            <properties>
+              <help>Show peripherals connected to the USB bus</help>
+            </properties>
+            <command>/usr/bin/lsusb -t</command>
+            <children>
+              <node name="detail">
+                <properties>
+                  <help>Show detailed USB bus information</help>
+                </properties>
+                <command>/usr/bin/lsusb -v</command>
+              </node>
+              <leafNode name="serial">
+                <properties>
+                  <help>Show information about connected USB serial ports</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_usb_serial.py</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-history.xml b/op-mode-definitions/show-history.xml
deleted file mode 100644
index 7fb286264..000000000
--- a/op-mode-definitions/show-history.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="history">
-        <properties>
-          <help>Show command history</help>
-        </properties>
-        <command>HISTTIMEFORMAT='%FT%T%z ' HISTFILE="$HOME/.bash_history" \set -o history; history</command>
-        <children>
-          <leafNode name="brief">
-            <properties>
-              <help>Show recent command history</help>
-            </properties>
-            <command>HISTTIMEFORMAT='%FT%T%z ' HISTFILE="$HOME/.bash_history" \set -o history; history 20</command>
-          </leafNode>
-        </children>
-      </node>
-
-      <tagNode name="history">
-        <properties>
-          <help>Show last N commands in history</help>
-          <completionHelp>
-            <list>&lt;NUMBER&gt;</list>
-          </completionHelp>
-        </properties>
-        <command>HISTTIMEFORMAT='%FT%T%z ' HISTFILE="$HOME/.bash_history" \set -o history; history $3</command>
-      </tagNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-history.xml.in b/op-mode-definitions/show-history.xml.in
new file mode 100644
index 000000000..7fb286264
--- /dev/null
+++ b/op-mode-definitions/show-history.xml.in
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="history">
+        <properties>
+          <help>Show command history</help>
+        </properties>
+        <command>HISTTIMEFORMAT='%FT%T%z ' HISTFILE="$HOME/.bash_history" \set -o history; history</command>
+        <children>
+          <leafNode name="brief">
+            <properties>
+              <help>Show recent command history</help>
+            </properties>
+            <command>HISTTIMEFORMAT='%FT%T%z ' HISTFILE="$HOME/.bash_history" \set -o history; history 20</command>
+          </leafNode>
+        </children>
+      </node>
+
+      <tagNode name="history">
+        <properties>
+          <help>Show last N commands in history</help>
+          <completionHelp>
+            <list>&lt;NUMBER&gt;</list>
+          </completionHelp>
+        </properties>
+        <command>HISTTIMEFORMAT='%FT%T%z ' HISTFILE="$HOME/.bash_history" \set -o history; history $3</command>
+      </tagNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-host.xml b/op-mode-definitions/show-host.xml
deleted file mode 100644
index eee1288a1..000000000
--- a/op-mode-definitions/show-host.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="host">
-        <properties>
-          <help>Show host information</help>
-        </properties>
-        <children>
-          <leafNode name="date">
-            <properties>
-              <help>Show host current date</help>
-            </properties>
-            <command>/bin/date</command>
-          </leafNode>
-          <leafNode name="domain">
-            <properties>
-              <help>Show domain name</help>
-            </properties>
-            <command>/bin/domainname -d</command>
-          </leafNode>
-          <leafNode name="name">
-            <properties>
-              <help>Show host name</help>
-            </properties>
-            <command>/bin/hostname</command>
-          </leafNode>
-          <tagNode name="lookup">
-            <properties>
-              <help>Lookup host information for hostname|IPv4 address</help>
-            </properties>
-            <command>/usr/bin/host $4</command>
-          </tagNode>
-          <leafNode name="os">
-            <properties>
-              <help>Show host operating system details</help>
-            </properties>
-            <command>/bin/uname -a</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-host.xml.in b/op-mode-definitions/show-host.xml.in
new file mode 100644
index 000000000..eee1288a1
--- /dev/null
+++ b/op-mode-definitions/show-host.xml.in
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="host">
+        <properties>
+          <help>Show host information</help>
+        </properties>
+        <children>
+          <leafNode name="date">
+            <properties>
+              <help>Show host current date</help>
+            </properties>
+            <command>/bin/date</command>
+          </leafNode>
+          <leafNode name="domain">
+            <properties>
+              <help>Show domain name</help>
+            </properties>
+            <command>/bin/domainname -d</command>
+          </leafNode>
+          <leafNode name="name">
+            <properties>
+              <help>Show host name</help>
+            </properties>
+            <command>/bin/hostname</command>
+          </leafNode>
+          <tagNode name="lookup">
+            <properties>
+              <help>Lookup host information for hostname|IPv4 address</help>
+            </properties>
+            <command>/usr/bin/host $4</command>
+          </tagNode>
+          <leafNode name="os">
+            <properties>
+              <help>Show host operating system details</help>
+            </properties>
+            <command>/bin/uname -a</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-bonding.xml b/op-mode-definitions/show-interfaces-bonding.xml
deleted file mode 100644
index f6d9b3508..000000000
--- a/op-mode-definitions/show-interfaces-bonding.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <tagNode name="bonding">
-            <properties>
-              <help>Show bonding interface information</help>
-              <completionHelp>
-                <path>interfaces bonding</path>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="brief">
-                <properties>
-                  <help>Show summary of the specified bonding interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
-              </leafNode>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed interface information</help>
-                </properties>
-                <command>if [ -f "/proc/net/bonding/$4" ]; then cat "/proc/net/bonding/$4"; else echo "Interface $4 does not exist!"; fi</command>
-              </leafNode>
-              <tagNode name="vif">
-                <properties>
-                  <help>Show specified virtual network interface (vif) information</help>
-                  <completionHelp>
-                    <path>interfaces bonding ${COMP_WORDS[3]} vif</path>
-                  </completionHelp>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4.$6"</command>
-                <children>
-                  <leafNode name="brief">
-                    <properties>
-                      <help>Show summary of specified virtual network interface (vif) information</help>
-                    </properties>
-                    <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4.$6" --action=show-brief</command>
-                  </leafNode>
-                </children>
-              </tagNode>
-              <leafNode name="xdp">
-                <properties>
-                  <help>Show eXpress Data Path statistics</help>
-                </properties>
-                <command>sudo ${vyos_op_scripts_dir}/show_xdp_stats.sh bonding "$4"</command>
-              </leafNode>
-            </children>
-          </tagNode>
-          <node name="bonding">
-            <properties>
-              <help>Show bonding interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=bonding --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed bonding interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=bonding --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-bonding.xml.in b/op-mode-definitions/show-interfaces-bonding.xml.in
new file mode 100644
index 000000000..f6d9b3508
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-bonding.xml.in
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <tagNode name="bonding">
+            <properties>
+              <help>Show bonding interface information</help>
+              <completionHelp>
+                <path>interfaces bonding</path>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="brief">
+                <properties>
+                  <help>Show summary of the specified bonding interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
+              </leafNode>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed interface information</help>
+                </properties>
+                <command>if [ -f "/proc/net/bonding/$4" ]; then cat "/proc/net/bonding/$4"; else echo "Interface $4 does not exist!"; fi</command>
+              </leafNode>
+              <tagNode name="vif">
+                <properties>
+                  <help>Show specified virtual network interface (vif) information</help>
+                  <completionHelp>
+                    <path>interfaces bonding ${COMP_WORDS[3]} vif</path>
+                  </completionHelp>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4.$6"</command>
+                <children>
+                  <leafNode name="brief">
+                    <properties>
+                      <help>Show summary of specified virtual network interface (vif) information</help>
+                    </properties>
+                    <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4.$6" --action=show-brief</command>
+                  </leafNode>
+                </children>
+              </tagNode>
+              <leafNode name="xdp">
+                <properties>
+                  <help>Show eXpress Data Path statistics</help>
+                </properties>
+                <command>sudo ${vyos_op_scripts_dir}/show_xdp_stats.sh bonding "$4"</command>
+              </leafNode>
+            </children>
+          </tagNode>
+          <node name="bonding">
+            <properties>
+              <help>Show bonding interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=bonding --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed bonding interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=bonding --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-bridge.xml b/op-mode-definitions/show-interfaces-bridge.xml
deleted file mode 100644
index cc4b248b6..000000000
--- a/op-mode-definitions/show-interfaces-bridge.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <tagNode name="bridge">
-            <properties>
-              <help>Show bridge interface information</help>
-              <completionHelp>
-                <path>interfaces bridge</path>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="brief">
-                <properties>
-                  <help>Show summary of the specified bridge interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
-              </leafNode>
-            </children>
-          </tagNode>
-          <node name="bridge">
-            <properties>
-              <help>Show bridge interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=bridge --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed bridge interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=bridge --action=show</command>
-              </leafNode>
-              <leafNode name="vlan">
-                <properties>
-                  <help>View the VLAN filter settings of the bridge</help>
-                </properties>
-                <command>/usr/sbin/bridge -c vlan show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-bridge.xml.in b/op-mode-definitions/show-interfaces-bridge.xml.in
new file mode 100644
index 000000000..cc4b248b6
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-bridge.xml.in
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <tagNode name="bridge">
+            <properties>
+              <help>Show bridge interface information</help>
+              <completionHelp>
+                <path>interfaces bridge</path>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="brief">
+                <properties>
+                  <help>Show summary of the specified bridge interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
+              </leafNode>
+            </children>
+          </tagNode>
+          <node name="bridge">
+            <properties>
+              <help>Show bridge interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=bridge --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed bridge interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=bridge --action=show</command>
+              </leafNode>
+              <leafNode name="vlan">
+                <properties>
+                  <help>View the VLAN filter settings of the bridge</help>
+                </properties>
+                <command>/usr/sbin/bridge -c vlan show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-dummy.xml b/op-mode-definitions/show-interfaces-dummy.xml
deleted file mode 100644
index 7c24c6921..000000000
--- a/op-mode-definitions/show-interfaces-dummy.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <tagNode name="dummy">
-            <properties>
-              <help>Show dummy interface information</help>
-              <completionHelp>
-                <path>interfaces dummy</path>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="brief">
-                <properties>
-                  <help>Show summary of the specified dummy interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
-              </leafNode>
-            </children>
-          </tagNode>
-          <node name="dummy">
-            <properties>
-              <help>Show dummy interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=dummy --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed dummy interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=dummy --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-dummy.xml.in b/op-mode-definitions/show-interfaces-dummy.xml.in
new file mode 100644
index 000000000..7c24c6921
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-dummy.xml.in
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <tagNode name="dummy">
+            <properties>
+              <help>Show dummy interface information</help>
+              <completionHelp>
+                <path>interfaces dummy</path>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="brief">
+                <properties>
+                  <help>Show summary of the specified dummy interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
+              </leafNode>
+            </children>
+          </tagNode>
+          <node name="dummy">
+            <properties>
+              <help>Show dummy interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=dummy --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed dummy interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=dummy --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-ethernet.xml b/op-mode-definitions/show-interfaces-ethernet.xml
deleted file mode 100644
index fc79f44bf..000000000
--- a/op-mode-definitions/show-interfaces-ethernet.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <tagNode name="ethernet">
-            <properties>
-              <help>Show ethernet interface information</help>
-              <completionHelp>
-                <path>interfaces ethernet</path>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="brief">
-                <properties>
-                  <help>Show summary of the specified ethernet interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
-              </leafNode>
-              <leafNode name="identify">
-                <properties>
-                  <help>Visually identify specified ethernet interface</help>
-                </properties>
-                <command>echo "Blinking interface $4 for 30 seconds."; /sbin/ethtool --identify "$4" 30</command>
-              </leafNode>
-              <node name="physical">
-                <properties>
-                  <help>Show physical device information for specified ethernet interface</help>
-                </properties>
-                <command>/sbin/ethtool "$4"; /sbin/ethtool -i "$4"</command>
-                <children>
-                  <leafNode name="offload">
-                    <properties>
-                      <help>Show physical device offloading capabilities</help>
-                    </properties>
-                    <command>/sbin/ethtool -k "$4" | sed -e 1d -e '/fixed/d' -e 's/^\t*//g' -e 's/://' | column -t -s' '</command>
-                  </leafNode>
-                </children>
-              </node>
-              <leafNode name="statistics">
-                <properties>
-                  <help>Show physical device statistics for specified ethernet interface</help>
-                </properties>
-                <command>/sbin/ethtool -S "$4"</command>
-              </leafNode>
-              <leafNode name="transceiver">
-                <properties>
-                  <help>Show transceiver information from modules (e.g SFP+, QSFP)</help>
-                </properties>
-                <command>/sbin/ethtool -m "$4"</command>
-              </leafNode>
-              <tagNode name="vif">
-                <properties>
-                  <help>Show specified virtual network interface (vif) information</help>
-                  <completionHelp>
-                    <path>interfaces ethernet ${COMP_WORDS[3]} vif</path>
-                  </completionHelp>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4.$6"</command>
-                <children>
-                  <leafNode name="brief">
-                    <properties>
-                      <help>Show summary of specified virtual network interface (vif) information</help>
-                    </properties>
-                    <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4.$6" --action=show-brief</command>
-                  </leafNode>
-                </children>
-              </tagNode>
-              <leafNode name="xdp">
-                <properties>
-                  <help>Show eXpress Data Path statistics</help>
-                </properties>
-                <command>sudo ${vyos_op_scripts_dir}/show_xdp_stats.sh ethernet "$4"</command>
-              </leafNode>
-            </children>
-          </tagNode>
-          <node name="ethernet">
-            <properties>
-              <help>Show ethernet interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=ethernet --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed ethernet interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=ethernet --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-ethernet.xml.in b/op-mode-definitions/show-interfaces-ethernet.xml.in
new file mode 100644
index 000000000..fc79f44bf
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-ethernet.xml.in
@@ -0,0 +1,97 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <tagNode name="ethernet">
+            <properties>
+              <help>Show ethernet interface information</help>
+              <completionHelp>
+                <path>interfaces ethernet</path>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="brief">
+                <properties>
+                  <help>Show summary of the specified ethernet interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
+              </leafNode>
+              <leafNode name="identify">
+                <properties>
+                  <help>Visually identify specified ethernet interface</help>
+                </properties>
+                <command>echo "Blinking interface $4 for 30 seconds."; /sbin/ethtool --identify "$4" 30</command>
+              </leafNode>
+              <node name="physical">
+                <properties>
+                  <help>Show physical device information for specified ethernet interface</help>
+                </properties>
+                <command>/sbin/ethtool "$4"; /sbin/ethtool -i "$4"</command>
+                <children>
+                  <leafNode name="offload">
+                    <properties>
+                      <help>Show physical device offloading capabilities</help>
+                    </properties>
+                    <command>/sbin/ethtool -k "$4" | sed -e 1d -e '/fixed/d' -e 's/^\t*//g' -e 's/://' | column -t -s' '</command>
+                  </leafNode>
+                </children>
+              </node>
+              <leafNode name="statistics">
+                <properties>
+                  <help>Show physical device statistics for specified ethernet interface</help>
+                </properties>
+                <command>/sbin/ethtool -S "$4"</command>
+              </leafNode>
+              <leafNode name="transceiver">
+                <properties>
+                  <help>Show transceiver information from modules (e.g SFP+, QSFP)</help>
+                </properties>
+                <command>/sbin/ethtool -m "$4"</command>
+              </leafNode>
+              <tagNode name="vif">
+                <properties>
+                  <help>Show specified virtual network interface (vif) information</help>
+                  <completionHelp>
+                    <path>interfaces ethernet ${COMP_WORDS[3]} vif</path>
+                  </completionHelp>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4.$6"</command>
+                <children>
+                  <leafNode name="brief">
+                    <properties>
+                      <help>Show summary of specified virtual network interface (vif) information</help>
+                    </properties>
+                    <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4.$6" --action=show-brief</command>
+                  </leafNode>
+                </children>
+              </tagNode>
+              <leafNode name="xdp">
+                <properties>
+                  <help>Show eXpress Data Path statistics</help>
+                </properties>
+                <command>sudo ${vyos_op_scripts_dir}/show_xdp_stats.sh ethernet "$4"</command>
+              </leafNode>
+            </children>
+          </tagNode>
+          <node name="ethernet">
+            <properties>
+              <help>Show ethernet interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=ethernet --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed ethernet interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=ethernet --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-input.xml b/op-mode-definitions/show-interfaces-input.xml
deleted file mode 100644
index 15e8203e5..000000000
--- a/op-mode-definitions/show-interfaces-input.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <tagNode name="input">
-            <properties>
-              <help>Show input interface information</help>
-              <completionHelp>
-                <path>interfaces input</path>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="brief">
-                <properties>
-                  <help>Show summary of the specified input interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
-              </leafNode>
-            </children>
-          </tagNode>
-          <node name="input">
-            <properties>
-              <help>Show input interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=input --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed input interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=input --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-input.xml.in b/op-mode-definitions/show-interfaces-input.xml.in
new file mode 100644
index 000000000..15e8203e5
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-input.xml.in
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <tagNode name="input">
+            <properties>
+              <help>Show input interface information</help>
+              <completionHelp>
+                <path>interfaces input</path>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="brief">
+                <properties>
+                  <help>Show summary of the specified input interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
+              </leafNode>
+            </children>
+          </tagNode>
+          <node name="input">
+            <properties>
+              <help>Show input interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=input --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed input interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=input --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-l2tpv3.xml b/op-mode-definitions/show-interfaces-l2tpv3.xml
deleted file mode 100644
index 60fee34a1..000000000
--- a/op-mode-definitions/show-interfaces-l2tpv3.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <tagNode name="l2tpv3">
-            <properties>
-              <help>Show L2TPv3 interface information</help>
-              <completionHelp>
-                <path>interfaces l2tpv3</path>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="brief">
-                <properties>
-                  <help>Show summary of the specified L2TPv3 interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
-              </leafNode>
-            </children>
-          </tagNode>
-          <node name="l2tpv3">
-            <properties>
-              <help>Show L2TPv3 interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=l2tpv3 --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed L2TPv3 interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=l2tpv3 --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-l2tpv3.xml.in b/op-mode-definitions/show-interfaces-l2tpv3.xml.in
new file mode 100644
index 000000000..60fee34a1
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-l2tpv3.xml.in
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <tagNode name="l2tpv3">
+            <properties>
+              <help>Show L2TPv3 interface information</help>
+              <completionHelp>
+                <path>interfaces l2tpv3</path>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="brief">
+                <properties>
+                  <help>Show summary of the specified L2TPv3 interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
+              </leafNode>
+            </children>
+          </tagNode>
+          <node name="l2tpv3">
+            <properties>
+              <help>Show L2TPv3 interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=l2tpv3 --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed L2TPv3 interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=l2tpv3 --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-loopback.xml b/op-mode-definitions/show-interfaces-loopback.xml
deleted file mode 100644
index b30b57909..000000000
--- a/op-mode-definitions/show-interfaces-loopback.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <tagNode name="loopback">
-            <properties>
-              <help>Show loopback interface information</help>
-              <completionHelp>
-                <path>interfaces loopback</path>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="brief">
-                <properties>
-                  <help>Show summary of the specified dummy interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
-              </leafNode>
-            </children>
-          </tagNode>
-          <node name="loopback">
-            <properties>
-              <help>Show loopback interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=loopback --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed dummy interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=dummy --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-loopback.xml.in b/op-mode-definitions/show-interfaces-loopback.xml.in
new file mode 100644
index 000000000..b30b57909
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-loopback.xml.in
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <tagNode name="loopback">
+            <properties>
+              <help>Show loopback interface information</help>
+              <completionHelp>
+                <path>interfaces loopback</path>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="brief">
+                <properties>
+                  <help>Show summary of the specified dummy interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
+              </leafNode>
+            </children>
+          </tagNode>
+          <node name="loopback">
+            <properties>
+              <help>Show loopback interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=loopback --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed dummy interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=dummy --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-macsec.xml b/op-mode-definitions/show-interfaces-macsec.xml
deleted file mode 100644
index 6aeab66af..000000000
--- a/op-mode-definitions/show-interfaces-macsec.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <node name="macsec">
-            <properties>
-              <help>Show MACsec interface information</help>
-              <completionHelp>
-                <path>interfaces macsec</path>
-              </completionHelp>
-            </properties>
-            <command>/usr/sbin/ip macsec show</command>
-          </node>
-          <tagNode name="macsec">
-            <properties>
-              <help>Show specified MACsec interface information</help>
-              <completionHelp>
-                <path>interfaces macsec</path>
-              </completionHelp>
-            </properties>
-            <command>/usr/sbin/ip macsec show $4</command>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-macsec.xml.in b/op-mode-definitions/show-interfaces-macsec.xml.in
new file mode 100644
index 000000000..6aeab66af
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-macsec.xml.in
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <node name="macsec">
+            <properties>
+              <help>Show MACsec interface information</help>
+              <completionHelp>
+                <path>interfaces macsec</path>
+              </completionHelp>
+            </properties>
+            <command>/usr/sbin/ip macsec show</command>
+          </node>
+          <tagNode name="macsec">
+            <properties>
+              <help>Show specified MACsec interface information</help>
+              <completionHelp>
+                <path>interfaces macsec</path>
+              </completionHelp>
+            </properties>
+            <command>/usr/sbin/ip macsec show $4</command>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-pppoe.xml b/op-mode-definitions/show-interfaces-pppoe.xml
deleted file mode 100644
index 393ca912f..000000000
--- a/op-mode-definitions/show-interfaces-pppoe.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <tagNode name="pppoe">
-            <properties>
-              <help>Show PPPoE interface information</help>
-              <completionHelp>
-                <path>interfaces pppoe</path>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="log">
-                <properties>
-                  <help>Show specified PPPoE interface log</help>
-                </properties>
-                <command>/usr/bin/journalctl -u "ppp@$4".service</command>
-              </leafNode>
-              <leafNode name="statistics">
-                <properties>
-                  <help>Show specified PPPoE interface statistics</help>
-                  <completionHelp>
-                    <path>interfaces pppoe</path>
-                  </completionHelp>
-                </properties>
-                <command>if [ -d "/sys/class/net/$4" ]; then /usr/sbin/pppstats "$4"; fi</command>
-              </leafNode>
-            </children>
-          </tagNode>
-          <node name="pppoe">
-            <properties>
-              <help>Show PPPoE interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=pppoe --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed PPPoE interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=pppoe --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-pppoe.xml.in b/op-mode-definitions/show-interfaces-pppoe.xml.in
new file mode 100644
index 000000000..393ca912f
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-pppoe.xml.in
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <tagNode name="pppoe">
+            <properties>
+              <help>Show PPPoE interface information</help>
+              <completionHelp>
+                <path>interfaces pppoe</path>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="log">
+                <properties>
+                  <help>Show specified PPPoE interface log</help>
+                </properties>
+                <command>/usr/bin/journalctl -u "ppp@$4".service</command>
+              </leafNode>
+              <leafNode name="statistics">
+                <properties>
+                  <help>Show specified PPPoE interface statistics</help>
+                  <completionHelp>
+                    <path>interfaces pppoe</path>
+                  </completionHelp>
+                </properties>
+                <command>if [ -d "/sys/class/net/$4" ]; then /usr/sbin/pppstats "$4"; fi</command>
+              </leafNode>
+            </children>
+          </tagNode>
+          <node name="pppoe">
+            <properties>
+              <help>Show PPPoE interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=pppoe --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed PPPoE interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=pppoe --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-pseudo-ethernet.xml b/op-mode-definitions/show-interfaces-pseudo-ethernet.xml
deleted file mode 100644
index 195944745..000000000
--- a/op-mode-definitions/show-interfaces-pseudo-ethernet.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <tagNode name="pseudo-ethernet">
-            <properties>
-              <help>Show pseudo-ethernet/MACvlan interface information</help>
-              <completionHelp>
-                <path>interfaces pseudo-ethernet</path>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="brief">
-                <properties>
-                  <help>Show summary of the specified pseudo-ethernet/MACvlan interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
-              </leafNode>
-            </children>
-          </tagNode>
-          <node name="pseudo-ethernet">
-            <properties>
-              <help>Show pseudo-ethernet/MACvlan interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=pseudo-ethernet --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed pseudo-ethernet/MACvlan interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=pseudo-ethernet --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-pseudo-ethernet.xml.in b/op-mode-definitions/show-interfaces-pseudo-ethernet.xml.in
new file mode 100644
index 000000000..195944745
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-pseudo-ethernet.xml.in
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <tagNode name="pseudo-ethernet">
+            <properties>
+              <help>Show pseudo-ethernet/MACvlan interface information</help>
+              <completionHelp>
+                <path>interfaces pseudo-ethernet</path>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="brief">
+                <properties>
+                  <help>Show summary of the specified pseudo-ethernet/MACvlan interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
+              </leafNode>
+            </children>
+          </tagNode>
+          <node name="pseudo-ethernet">
+            <properties>
+              <help>Show pseudo-ethernet/MACvlan interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=pseudo-ethernet --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed pseudo-ethernet/MACvlan interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=pseudo-ethernet --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-tunnel.xml b/op-mode-definitions/show-interfaces-tunnel.xml
deleted file mode 100644
index 416de0299..000000000
--- a/op-mode-definitions/show-interfaces-tunnel.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <tagNode name="tunnel">
-            <properties>
-              <help>Show tunnel interface information</help>
-              <completionHelp>
-                <path>interfaces tunnel</path>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="brief">
-                <properties>
-                  <help>Show summary of the specified tunnel interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
-              </leafNode>
-            </children>
-          </tagNode>
-          <node name="tunnel">
-            <properties>
-              <help>Show tunnel interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=tunnel --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed tunnel interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=tunnel --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-tunnel.xml.in b/op-mode-definitions/show-interfaces-tunnel.xml.in
new file mode 100644
index 000000000..416de0299
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-tunnel.xml.in
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <tagNode name="tunnel">
+            <properties>
+              <help>Show tunnel interface information</help>
+              <completionHelp>
+                <path>interfaces tunnel</path>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="brief">
+                <properties>
+                  <help>Show summary of the specified tunnel interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
+              </leafNode>
+            </children>
+          </tagNode>
+          <node name="tunnel">
+            <properties>
+              <help>Show tunnel interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=tunnel --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed tunnel interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=tunnel --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-vti.xml b/op-mode-definitions/show-interfaces-vti.xml
deleted file mode 100644
index f51be2d19..000000000
--- a/op-mode-definitions/show-interfaces-vti.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <tagNode name="vti">
-            <properties>
-              <help>Show vti interface information</help>
-              <completionHelp>
-                <path>interfaces vti</path>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="brief">
-                <properties>
-                  <help>Show summary of the specified vti interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
-              </leafNode>
-            </children>
-          </tagNode>
-          <node name="vti">
-            <properties>
-              <help>Show vti interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=vti --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed vti interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=vti --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-vti.xml.in b/op-mode-definitions/show-interfaces-vti.xml.in
new file mode 100644
index 000000000..f51be2d19
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-vti.xml.in
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <tagNode name="vti">
+            <properties>
+              <help>Show vti interface information</help>
+              <completionHelp>
+                <path>interfaces vti</path>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="brief">
+                <properties>
+                  <help>Show summary of the specified vti interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
+              </leafNode>
+            </children>
+          </tagNode>
+          <node name="vti">
+            <properties>
+              <help>Show vti interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=vti --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed vti interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=vti --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-vxlan.xml b/op-mode-definitions/show-interfaces-vxlan.xml
deleted file mode 100644
index 4e3cb93cd..000000000
--- a/op-mode-definitions/show-interfaces-vxlan.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <tagNode name="vxlan">
-            <properties>
-              <help>Show VXLAN interface information</help>
-              <completionHelp>
-                <path>interfaces vxlan</path>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="brief">
-                <properties>
-                  <help>Show summary of the specified VXLAN interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
-              </leafNode>
-            </children>
-          </tagNode>
-          <node name="vxlan">
-            <properties>
-              <help>Show VXLAN interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=vxlan --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed VXLAN interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=vxlan --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-vxlan.xml.in b/op-mode-definitions/show-interfaces-vxlan.xml.in
new file mode 100644
index 000000000..4e3cb93cd
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-vxlan.xml.in
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <tagNode name="vxlan">
+            <properties>
+              <help>Show VXLAN interface information</help>
+              <completionHelp>
+                <path>interfaces vxlan</path>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="brief">
+                <properties>
+                  <help>Show summary of the specified VXLAN interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
+              </leafNode>
+            </children>
+          </tagNode>
+          <node name="vxlan">
+            <properties>
+              <help>Show VXLAN interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=vxlan --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed VXLAN interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=vxlan --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-wirelessmodem.xml b/op-mode-definitions/show-interfaces-wirelessmodem.xml
deleted file mode 100644
index c0ab9c66f..000000000
--- a/op-mode-definitions/show-interfaces-wirelessmodem.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <tagNode name="wirelessmodem">
-            <properties>
-              <help>Show Wireless Modem (WWAN) interface information</help>
-              <completionHelp>
-                <path>interfaces wirelessmodem</path>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="log">
-                <properties>
-                  <help>Show specified WWAN interface log</help>
-                </properties>
-                <command>/usr/bin/journalctl -u "ppp@$4".service</command>
-              </leafNode>
-              <leafNode name="statistics">
-                <properties>
-                  <help>Show specified WWAN interface statistics</help>
-                  <completionHelp>
-                    <path>interfaces wirelessmodem</path>
-                  </completionHelp>
-                </properties>
-                <command>if [ -d "/sys/class/net/$4" ]; then /usr/sbin/pppstats "$4"; fi</command>
-              </leafNode>
-            </children>
-          </tagNode>
-          <node name="wirelessmodem">
-            <properties>
-              <help>Show Wireless Modem (WWAN) interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=wirelessmodem --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed Wireless Modem (WWAN( interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=wirelessmodem --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces-wirelessmodem.xml.in b/op-mode-definitions/show-interfaces-wirelessmodem.xml.in
new file mode 100644
index 000000000..c0ab9c66f
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-wirelessmodem.xml.in
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <tagNode name="wirelessmodem">
+            <properties>
+              <help>Show Wireless Modem (WWAN) interface information</help>
+              <completionHelp>
+                <path>interfaces wirelessmodem</path>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="log">
+                <properties>
+                  <help>Show specified WWAN interface log</help>
+                </properties>
+                <command>/usr/bin/journalctl -u "ppp@$4".service</command>
+              </leafNode>
+              <leafNode name="statistics">
+                <properties>
+                  <help>Show specified WWAN interface statistics</help>
+                  <completionHelp>
+                    <path>interfaces wirelessmodem</path>
+                  </completionHelp>
+                </properties>
+                <command>if [ -d "/sys/class/net/$4" ]; then /usr/sbin/pppstats "$4"; fi</command>
+              </leafNode>
+            </children>
+          </tagNode>
+          <node name="wirelessmodem">
+            <properties>
+              <help>Show Wireless Modem (WWAN) interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=wirelessmodem --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed Wireless Modem (WWAN( interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=wirelessmodem --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces.xml b/op-mode-definitions/show-interfaces.xml
deleted file mode 100644
index 39b0f0a2c..000000000
--- a/op-mode-definitions/show-interfaces.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <properties>
-          <help>Show network interface information</help>
-        </properties>
-        <command>${vyos_op_scripts_dir}/show_interfaces.py --action=show-brief</command>
-        <children>
-          <leafNode name="counters">
-            <properties>
-              <help>Show network interface counters</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --action=show-count</command>
-          </leafNode>
-          <leafNode name="detail">
-            <properties>
-              <help>Show detailed information of all interfaces</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --action=show</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-interfaces.xml.in b/op-mode-definitions/show-interfaces.xml.in
new file mode 100644
index 000000000..39b0f0a2c
--- /dev/null
+++ b/op-mode-definitions/show-interfaces.xml.in
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <properties>
+          <help>Show network interface information</help>
+        </properties>
+        <command>${vyos_op_scripts_dir}/show_interfaces.py --action=show-brief</command>
+        <children>
+          <leafNode name="counters">
+            <properties>
+              <help>Show network interface counters</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --action=show-count</command>
+          </leafNode>
+          <leafNode name="detail">
+            <properties>
+              <help>Show detailed information of all interfaces</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --action=show</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-access-paths-prefix-community-lists.xml b/op-mode-definitions/show-ip-access-paths-prefix-community-lists.xml
deleted file mode 100644
index a5ec65c94..000000000
--- a/op-mode-definitions/show-ip-access-paths-prefix-community-lists.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ip">
-        <properties>
-          <help>Show IPv4 routing information</help>
-        </properties>
-        <children>
-          <leafNode name="access-list">
-            <properties>
-              <help>Show all IP access-lists</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip access-list"</command>
-          </leafNode>
-          <tagNode name="access-list">
-            <properties>
-              <help>Show all IP access-lists</help>
-              <completionHelp>
-                <path>policy access-list</path>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip access-list $4"</command>
-          </tagNode>
-          <leafNode name="as-path-access-list">
-            <properties>
-              <help>Show all as-path-access-lists</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip as-path-access-list"</command>
-          </leafNode>
-          <tagNode name="as-path-access-list">
-            <properties>
-              <help>Show all as-path-access-lists</help>
-              <completionHelp>
-                <path>policy as-path-list</path>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip as-path-access-list $4"</command>
-          </tagNode>
-          <leafNode name="community-list">
-            <properties>
-              <help>Show IP community-lists</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show bgp community-list"</command>
-          </leafNode>
-          <tagNode name="community-list">
-            <properties>
-              <help>Show IP community-lists</help>
-              <completionHelp>
-                <path>policy community-list</path>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/vtysh -c "show bgp community-list $4 detail"</command>
-          </tagNode>
-          <leafNode name="extcommunity-list">
-            <properties>
-              <help>Show extended IP community-lists</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show bgp extcommunity-list"</command>
-          </leafNode>
-          <tagNode name="extcommunity-list">
-            <properties>
-              <help>Show extended IP community-lists</help>
-              <completionHelp>
-                <path>policy extcommunity-list</path>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/vtysh -c "show bgp extcommunity-list $4 detail"</command>
-          </tagNode>
-          <leafNode name="forwarding">
-            <properties>
-              <help>Show IP forwarding status</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip forwarding"</command>
-          </leafNode>
-          <leafNode name="large-community-list">
-            <properties>
-              <help>Show IP large-community-lists</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show bgp large-community-list"</command>
-          </leafNode>
-          <tagNode name="large-community-list">
-            <properties>
-              <help>Show IP large-community-lists</help>
-              <completionHelp>
-                <path>policy large-community-list</path>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/vtysh -c "show bgp large-community-list $4 detail"</command>
-          </tagNode>
-          <leafNode name="prefix-list">
-            <properties>
-              <help>Show all IP prefix-lists</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip prefix-list"</command>
-          </leafNode>
-          <tagNode name="prefix-list">
-            <properties>
-              <help>Show all IP prefix-lists</help>
-              <completionHelp>
-                <path>policy prefix-list</path>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip prefix-list $4"</command>
-          </tagNode>
-          <leafNode name="protocol">
-            <properties>
-              <help>Show IP route-maps per protocol</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip protocol"</command>
-          </leafNode>
-         </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-access-paths-prefix-community-lists.xml.in b/op-mode-definitions/show-ip-access-paths-prefix-community-lists.xml.in
new file mode 100644
index 000000000..a5ec65c94
--- /dev/null
+++ b/op-mode-definitions/show-ip-access-paths-prefix-community-lists.xml.in
@@ -0,0 +1,116 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ip">
+        <properties>
+          <help>Show IPv4 routing information</help>
+        </properties>
+        <children>
+          <leafNode name="access-list">
+            <properties>
+              <help>Show all IP access-lists</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip access-list"</command>
+          </leafNode>
+          <tagNode name="access-list">
+            <properties>
+              <help>Show all IP access-lists</help>
+              <completionHelp>
+                <path>policy access-list</path>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip access-list $4"</command>
+          </tagNode>
+          <leafNode name="as-path-access-list">
+            <properties>
+              <help>Show all as-path-access-lists</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip as-path-access-list"</command>
+          </leafNode>
+          <tagNode name="as-path-access-list">
+            <properties>
+              <help>Show all as-path-access-lists</help>
+              <completionHelp>
+                <path>policy as-path-list</path>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip as-path-access-list $4"</command>
+          </tagNode>
+          <leafNode name="community-list">
+            <properties>
+              <help>Show IP community-lists</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show bgp community-list"</command>
+          </leafNode>
+          <tagNode name="community-list">
+            <properties>
+              <help>Show IP community-lists</help>
+              <completionHelp>
+                <path>policy community-list</path>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/vtysh -c "show bgp community-list $4 detail"</command>
+          </tagNode>
+          <leafNode name="extcommunity-list">
+            <properties>
+              <help>Show extended IP community-lists</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show bgp extcommunity-list"</command>
+          </leafNode>
+          <tagNode name="extcommunity-list">
+            <properties>
+              <help>Show extended IP community-lists</help>
+              <completionHelp>
+                <path>policy extcommunity-list</path>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/vtysh -c "show bgp extcommunity-list $4 detail"</command>
+          </tagNode>
+          <leafNode name="forwarding">
+            <properties>
+              <help>Show IP forwarding status</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip forwarding"</command>
+          </leafNode>
+          <leafNode name="large-community-list">
+            <properties>
+              <help>Show IP large-community-lists</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show bgp large-community-list"</command>
+          </leafNode>
+          <tagNode name="large-community-list">
+            <properties>
+              <help>Show IP large-community-lists</help>
+              <completionHelp>
+                <path>policy large-community-list</path>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/vtysh -c "show bgp large-community-list $4 detail"</command>
+          </tagNode>
+          <leafNode name="prefix-list">
+            <properties>
+              <help>Show all IP prefix-lists</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip prefix-list"</command>
+          </leafNode>
+          <tagNode name="prefix-list">
+            <properties>
+              <help>Show all IP prefix-lists</help>
+              <completionHelp>
+                <path>policy prefix-list</path>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip prefix-list $4"</command>
+          </tagNode>
+          <leafNode name="protocol">
+            <properties>
+              <help>Show IP route-maps per protocol</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip protocol"</command>
+          </leafNode>
+         </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-bgp.xml b/op-mode-definitions/show-ip-bgp.xml
deleted file mode 100644
index 5eb2ae56e..000000000
--- a/op-mode-definitions/show-ip-bgp.xml
+++ /dev/null
@@ -1,342 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ip">
-        <children>
-          <node name="bgp">
-            <properties>
-              <help>Show Border Gateway Protocol (BGP) information</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip bgp"</command>
-            <children>
-              <leafNode name="attribute-info">
-                <properties>
-                  <help>Show BGP attribute information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp attribute-info"</command>
-              </leafNode>
-              <leafNode name="cidr-only">
-                <properties>
-                  <help>Display only routes with non-natural netmasks</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp cidr-only"</command>
-              </leafNode>
-              <node name="community">
-                <properties>
-                  <help>Show BGP routes matching the communities</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp community"</command>
-              </node>
-              <tagNode name="community">
-                <properties>
-                  <help>Display routes matching the specified communities</help>
-                  <completionHelp>
-                    <list>&lt;AA:NN&gt; local-AS no-advertise no-export</list> 
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp community $5"</command>
-              </tagNode>
-              <leafNode name="community-info">
-                <properties>
-                  <help>List all bgp community information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp community-info"</command>
-              </leafNode>
-              <tagNode name="community-list">
-                <properties>
-                  <help>Show BGP routes matching specified community list</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp community-list $5"</command>
-                <children>
-                  <leafNode name="exact-match">
-                    <properties>
-                      <help>Show BGP routes exactly matching specified community list</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip bgp community-list $5 exact-match"</command>
-                  </leafNode>
-                </children>
-              </tagNode>
-              <leafNode name="dampened-paths">
-                <properties>
-                  <help>Show dampened BGP paths</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp dampening dampened-paths"</command>
-              </leafNode>
-              <tagNode name="filter-list">
-                <properties>
-                  <help>Show BGP information for specified word</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp filter-list $5"</command>
-              </tagNode>
-              <leafNode name="flap-statistics">
-                <properties>
-                  <help>Show flap statistics of routes</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp dampening flap-statistics"</command>
-              </leafNode>
-              <node name="ipv4">
-                <properties>
-                  <help>Show BGP IPv4 information</help>
-                </properties>
-                <children>
-                  <node name="unicast">
-                    <properties>
-                      <help>Show BGP IPv4 unicast information</help>
-                    </properties>
-                    <children>
-                      <leafNode name="cidr-only">
-                        <properties>
-                          <help>Display only routes with non-natural netmasks</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast cidr-only"</command>
-                      </leafNode>
-                      <node name="community">  <!--  START new code -->
-                        <properties>
-                          <help>Show BGP routes matching the communities</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast community"</command>
-                      </node>
-                      <tagNode name="community"> 
-                        <properties>
-                          <help>Display routes matching the specified communities</help>
-                          <completionHelp>
-                            <list>&lt;AA:NN&gt; local-AS no-advertise no-export</list> 
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast community $7"</command>
-                      </tagNode>
-                      <tagNode name="community-list">
-                        <properties>
-                          <help>Show BGP routes matching specified community list</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast community-list $7"</command>
-                        <children>
-                          <leafNode name="exact-match">
-                            <properties>
-                              <help>Show BGP routes exactly matching specified community list</help>
-                            </properties>
-                            <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast community-list $7 exact-match"</command>
-                          </leafNode>
-                        </children>
-                      </tagNode>
-                      <tagNode name="filter-list">
-                        <properties>
-                          <help>Show BGP information for specified word</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip bgp filter-list $5"</command>
-                      </tagNode>
-                      <tagNode name="neighbors">
-                        <properties>
-                          <help>Show detailed BGP IPv4 unicast neighbor information</help>
-                          <completionHelp>
-                            <script>vtysh -c "show ip bgp ipv4 unicast summary" | awk '{print $1}' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"</script>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast neighbors $7"</command>
-                        <children>
-                          <leafNode name="advertised-routes">
-                            <properties>
-                              <help>Show routes advertised to a BGP neighbor</help>
-                            </properties>
-                            <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast neighbor $7 advertised-routes"</command>
-                          </leafNode>
-                          <leafNode name="prefix-counts">
-                            <properties>
-                              <help>Show detailed prefix count information</help>
-                            </properties>
-                            <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast neighbor $7 prefix-counts"</command>
-                          </leafNode>
-                          <leafNode name="received-routes">
-                            <properties>
-                              <help>Show the received routes from neighbor</help>
-                            </properties>
-                            <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast neighbor $7 received-routes"</command>
-                          </leafNode>
-                          <leafNode name="routes">
-                            <properties>
-                              <help>Show routes learned from neighbor</help>
-                            </properties>
-                            <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast neighbor $7 routes"</command>
-                          </leafNode>
-                        </children>
-                      </tagNode>                 
-                      <leafNode name="paths">
-                        <properties>
-                          <help>Show BGP path information</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast paths"</command>
-                      </leafNode>
-                       <tagNode name="prefix-list">
-                        <properties>
-                          <help>Show BGP routes matching the specified prefix list</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast prefix-list $7"</command>
-                      </tagNode>
-                      <tagNode name="regexp">
-                        <properties>
-                          <help>Show BGP routes matching the specified AS path regular expression</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast regexp $5"</command>
-                      </tagNode>
-                      <tagNode name="route-map">
-                        <properties>
-                          <help>Show BGP routes matching the specified route map</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip bgp route-map $5"</command>
-                      </tagNode>
-                      <leafNode name="summary">
-                        <properties>
-                          <help>Show summary of BGP information</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip bgp summary"</command>
-                      </leafNode>           
-                    </children>
-                  </node>
-                  <tagNode name="unicast">
-                    <properties>
-                      <help>Show BGP information for specified IP address or prefix</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip bgp $6"</command>
-                  </tagNode>
-                </children>
-              </node>
-              <node name="large-community">
-                <properties>
-                  <help>Show BGP routes matching the specified large-communities</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp large-community"</command>
-              </node>
-              <leafNode name="large-community-info">
-                <properties>
-                  <help>Show BGP large-community information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp large-community-info"</command>
-              </leafNode>
-              <tagNode name="large-community-list">
-                <properties>
-                  <help>Show BGP routes matching the specified large-community list</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp large-community-list $5"</command>
-              </tagNode>
-              <leafNode name="memory">
-                <properties>
-                  <help>Show BGP memory usage</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp memory"</command>
-              </leafNode>           
-              <tagNode name="neighbors">
-                <properties>
-                  <help>Show detailed BGP IPv4 unicast neighbor information</help>
-                  <completionHelp>
-                    <script>vtysh -c "show ip bgp summary" | awk '{print $1}' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"</script>
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp neighbors $5"</command>
-                <children>
-                  <leafNode name="advertised-routes">
-                    <properties>
-                      <help>Show routes advertised to a BGP neighbor</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 advertised-routes"</command>
-                  </leafNode>
-                  <leafNode name="dampened-routes">
-                    <properties>
-                      <help>Show dampened routes received from BGP neighbor</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 dampened-routes"</command>
-                  </leafNode>
-                  <leafNode name="flap-statistics">
-                    <properties>
-                      <help>Show flap statistics of the routes learned from BGP neighbor</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 flap-statistics"</command>
-                  </leafNode>
-                  <leafNode name="prefix-counts">
-                    <properties>
-                      <help>Show detailed prefix count information for BGP neighbor</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 prefix-counts"</command>
-                  </leafNode>
-                  <node name="received">
-                    <properties>
-                      <help>Show information received from BGP neighbor</help>
-                    </properties>
-                    <children>
-                      <leafNode name="prefix-filter">
-                        <properties>
-                          <help>Show prefixlist filter</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 received prefix-filter"</command>
-                      </leafNode>
-                    </children>
-                  </node>
-                  <leafNode name="received-routes">
-                    <properties>
-                      <help>Show received routes from BGP neighbor</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 received-routes"</command>
-                  </leafNode>
-                  <leafNode name="routes">
-                    <properties>
-                      <help>Show routes learned from BGP neighbor</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 routes"</command>
-                  </leafNode>
-                </children>
-              </tagNode>           
-              <leafNode name="paths">
-                <properties>
-                  <help>Show BGP path information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp paths"</command>
-              </leafNode>
-              <tagNode name="prefix-list">
-                <properties>
-                  <help>Show BGP routes matching the specified prefix list</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp prefix-list $5"</command>
-              </tagNode>
-              <tagNode name="regexp">
-                <properties>
-                  <help>Show BGP routes matching the specified AS path regular expression</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp regexp $5"</command>
-              </tagNode>
-              <tagNode name="route-map">
-                <properties>
-                  <help>Show BGP routes matching the specified route map</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp route-map $5"</command>
-              </tagNode>
-              <leafNode name="statistics">
-                <properties>
-                  <help>Show summary of BGP information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp statistics"</command>
-              </leafNode>
-              <leafNode name="summary">
-                <properties>
-                  <help>Show summary of BGP information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip bgp summary"</command>
-              </leafNode>
-            </children>
-          </node>
-          <tagNode name="bgp">
-            <properties>
-              <help>Show BGP information for specified IP address or prefix</help>
-              <completionHelp>
-                <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip bgp $4"</command>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-bgp.xml.in b/op-mode-definitions/show-ip-bgp.xml.in
new file mode 100644
index 000000000..a92a78266
--- /dev/null
+++ b/op-mode-definitions/show-ip-bgp.xml.in
@@ -0,0 +1,342 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ip">
+        <children>
+          <node name="bgp">
+            <properties>
+              <help>Show Border Gateway Protocol (BGP) information</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip bgp"</command>
+            <children>
+              <leafNode name="attribute-info">
+                <properties>
+                  <help>Show BGP attribute information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp attribute-info"</command>
+              </leafNode>
+              <leafNode name="cidr-only">
+                <properties>
+                  <help>Display only routes with non-natural netmasks</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp cidr-only"</command>
+              </leafNode>
+              <node name="community">
+                <properties>
+                  <help>Show BGP routes matching the communities</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp community"</command>
+              </node>
+              <tagNode name="community">
+                <properties>
+                  <help>Display routes matching the specified communities</help>
+                  <completionHelp>
+                    <list>&lt;AA:NN&gt; local-AS no-advertise no-export</list>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp community $5"</command>
+              </tagNode>
+              <leafNode name="community-info">
+                <properties>
+                  <help>List all bgp community information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp community-info"</command>
+              </leafNode>
+              <tagNode name="community-list">
+                <properties>
+                  <help>Show BGP routes matching specified community list</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp community-list $5"</command>
+                <children>
+                  <leafNode name="exact-match">
+                    <properties>
+                      <help>Show BGP routes exactly matching specified community list</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip bgp community-list $5 exact-match"</command>
+                  </leafNode>
+                </children>
+              </tagNode>
+              <leafNode name="dampened-paths">
+                <properties>
+                  <help>Show dampened BGP paths</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp dampening dampened-paths"</command>
+              </leafNode>
+              <tagNode name="filter-list">
+                <properties>
+                  <help>Show BGP information for specified word</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp filter-list $5"</command>
+              </tagNode>
+              <leafNode name="flap-statistics">
+                <properties>
+                  <help>Show flap statistics of routes</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp dampening flap-statistics"</command>
+              </leafNode>
+              <node name="ipv4">
+                <properties>
+                  <help>Show BGP IPv4 information</help>
+                </properties>
+                <children>
+                  <node name="unicast">
+                    <properties>
+                      <help>Show BGP IPv4 unicast information</help>
+                    </properties>
+                    <children>
+                      <leafNode name="cidr-only">
+                        <properties>
+                          <help>Display only routes with non-natural netmasks</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast cidr-only"</command>
+                      </leafNode>
+                      <node name="community">  <!--  START new code -->
+                        <properties>
+                          <help>Show BGP routes matching the communities</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast community"</command>
+                      </node>
+                      <tagNode name="community">
+                        <properties>
+                          <help>Display routes matching the specified communities</help>
+                          <completionHelp>
+                            <list>&lt;AA:NN&gt; local-AS no-advertise no-export</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast community $7"</command>
+                      </tagNode>
+                      <tagNode name="community-list">
+                        <properties>
+                          <help>Show BGP routes matching specified community list</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast community-list $7"</command>
+                        <children>
+                          <leafNode name="exact-match">
+                            <properties>
+                              <help>Show BGP routes exactly matching specified community list</help>
+                            </properties>
+                            <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast community-list $7 exact-match"</command>
+                          </leafNode>
+                        </children>
+                      </tagNode>
+                      <tagNode name="filter-list">
+                        <properties>
+                          <help>Show BGP information for specified word</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip bgp filter-list $5"</command>
+                      </tagNode>
+                      <tagNode name="neighbors">
+                        <properties>
+                          <help>Show detailed BGP IPv4 unicast neighbor information</help>
+                          <completionHelp>
+                            <script>vtysh -c "show ip bgp ipv4 unicast summary" | awk '{print $1}' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"</script>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast neighbors $7"</command>
+                        <children>
+                          <leafNode name="advertised-routes">
+                            <properties>
+                              <help>Show routes advertised to a BGP neighbor</help>
+                            </properties>
+                            <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast neighbor $7 advertised-routes"</command>
+                          </leafNode>
+                          <leafNode name="prefix-counts">
+                            <properties>
+                              <help>Show detailed prefix count information</help>
+                            </properties>
+                            <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast neighbor $7 prefix-counts"</command>
+                          </leafNode>
+                          <leafNode name="received-routes">
+                            <properties>
+                              <help>Show the received routes from neighbor</help>
+                            </properties>
+                            <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast neighbor $7 received-routes"</command>
+                          </leafNode>
+                          <leafNode name="routes">
+                            <properties>
+                              <help>Show routes learned from neighbor</help>
+                            </properties>
+                            <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast neighbor $7 routes"</command>
+                          </leafNode>
+                        </children>
+                      </tagNode>
+                      <leafNode name="paths">
+                        <properties>
+                          <help>Show BGP path information</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast paths"</command>
+                      </leafNode>
+                       <tagNode name="prefix-list">
+                        <properties>
+                          <help>Show BGP routes matching the specified prefix list</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast prefix-list $7"</command>
+                      </tagNode>
+                      <tagNode name="regexp">
+                        <properties>
+                          <help>Show BGP routes matching the specified AS path regular expression</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip bgp ipv4 unicast regexp $5"</command>
+                      </tagNode>
+                      <tagNode name="route-map">
+                        <properties>
+                          <help>Show BGP routes matching the specified route map</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip bgp route-map $5"</command>
+                      </tagNode>
+                      <leafNode name="summary">
+                        <properties>
+                          <help>Show summary of BGP information</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip bgp summary"</command>
+                      </leafNode>
+                    </children>
+                  </node>
+                  <tagNode name="unicast">
+                    <properties>
+                      <help>Show BGP information for specified IP address or prefix</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip bgp $6"</command>
+                  </tagNode>
+                </children>
+              </node>
+              <node name="large-community">
+                <properties>
+                  <help>Show BGP routes matching the specified large-communities</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp large-community"</command>
+              </node>
+              <leafNode name="large-community-info">
+                <properties>
+                  <help>Show BGP large-community information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp large-community-info"</command>
+              </leafNode>
+              <tagNode name="large-community-list">
+                <properties>
+                  <help>Show BGP routes matching the specified large-community list</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp large-community-list $5"</command>
+              </tagNode>
+              <leafNode name="memory">
+                <properties>
+                  <help>Show BGP memory usage</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp memory"</command>
+              </leafNode>
+              <tagNode name="neighbors">
+                <properties>
+                  <help>Show detailed BGP IPv4 unicast neighbor information</help>
+                  <completionHelp>
+                    <script>vtysh -c "show ip bgp summary" | awk '{print $1}' | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"</script>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp neighbors $5"</command>
+                <children>
+                  <leafNode name="advertised-routes">
+                    <properties>
+                      <help>Show routes advertised to a BGP neighbor</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 advertised-routes"</command>
+                  </leafNode>
+                  <leafNode name="dampened-routes">
+                    <properties>
+                      <help>Show dampened routes received from BGP neighbor</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 dampened-routes"</command>
+                  </leafNode>
+                  <leafNode name="flap-statistics">
+                    <properties>
+                      <help>Show flap statistics of the routes learned from BGP neighbor</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 flap-statistics"</command>
+                  </leafNode>
+                  <leafNode name="prefix-counts">
+                    <properties>
+                      <help>Show detailed prefix count information for BGP neighbor</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 prefix-counts"</command>
+                  </leafNode>
+                  <node name="received">
+                    <properties>
+                      <help>Show information received from BGP neighbor</help>
+                    </properties>
+                    <children>
+                      <leafNode name="prefix-filter">
+                        <properties>
+                          <help>Show prefixlist filter</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 received prefix-filter"</command>
+                      </leafNode>
+                    </children>
+                  </node>
+                  <leafNode name="received-routes">
+                    <properties>
+                      <help>Show received routes from BGP neighbor</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 received-routes"</command>
+                  </leafNode>
+                  <leafNode name="routes">
+                    <properties>
+                      <help>Show routes learned from BGP neighbor</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip bgp neighbor $5 routes"</command>
+                  </leafNode>
+                </children>
+              </tagNode>
+              <leafNode name="paths">
+                <properties>
+                  <help>Show BGP path information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp paths"</command>
+              </leafNode>
+              <tagNode name="prefix-list">
+                <properties>
+                  <help>Show BGP routes matching the specified prefix list</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp prefix-list $5"</command>
+              </tagNode>
+              <tagNode name="regexp">
+                <properties>
+                  <help>Show BGP routes matching the specified AS path regular expression</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp regexp $5"</command>
+              </tagNode>
+              <tagNode name="route-map">
+                <properties>
+                  <help>Show BGP routes matching the specified route map</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp route-map $5"</command>
+              </tagNode>
+              <leafNode name="statistics">
+                <properties>
+                  <help>Show summary of BGP information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp statistics"</command>
+              </leafNode>
+              <leafNode name="summary">
+                <properties>
+                  <help>Show summary of BGP information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip bgp summary"</command>
+              </leafNode>
+            </children>
+          </node>
+          <tagNode name="bgp">
+            <properties>
+              <help>Show BGP information for specified IP address or prefix</help>
+              <completionHelp>
+                <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip bgp $4"</command>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-igmp.xml b/op-mode-definitions/show-ip-igmp.xml
deleted file mode 100644
index b8f2f9107..000000000
--- a/op-mode-definitions/show-ip-igmp.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ip">
-        <children>
-          <node name="igmp">
-            <properties>
-              <help>Show IGMP (Internet Group Management Protocol) information</help>
-            </properties>
-            <children>
-              <leafNode name="groups">
-                <properties>
-                  <help>IGMP groups information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip igmp groups"</command>
-              </leafNode>
-              <leafNode name="interfaces">
-                <properties>
-                  <help>IGMP interfaces information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip igmp interface"</command>
-              </leafNode>
-              <leafNode name="join">
-                <properties>
-                  <help>IGMP static join information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip igmp join"</command>
-              </leafNode>
-              <leafNode name="sources">
-                <properties>
-                  <help>IGMP sources information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip igmp sources"</command>
-              </leafNode>
-              <leafNode name="statistics">
-                <properties>
-                  <help>IGMP statistics</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip igmp statistics"</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-igmp.xml.in b/op-mode-definitions/show-ip-igmp.xml.in
new file mode 100644
index 000000000..b8f2f9107
--- /dev/null
+++ b/op-mode-definitions/show-ip-igmp.xml.in
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ip">
+        <children>
+          <node name="igmp">
+            <properties>
+              <help>Show IGMP (Internet Group Management Protocol) information</help>
+            </properties>
+            <children>
+              <leafNode name="groups">
+                <properties>
+                  <help>IGMP groups information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip igmp groups"</command>
+              </leafNode>
+              <leafNode name="interfaces">
+                <properties>
+                  <help>IGMP interfaces information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip igmp interface"</command>
+              </leafNode>
+              <leafNode name="join">
+                <properties>
+                  <help>IGMP static join information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip igmp join"</command>
+              </leafNode>
+              <leafNode name="sources">
+                <properties>
+                  <help>IGMP sources information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip igmp sources"</command>
+              </leafNode>
+              <leafNode name="statistics">
+                <properties>
+                  <help>IGMP statistics</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip igmp statistics"</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-multicast.xml b/op-mode-definitions/show-ip-multicast.xml
deleted file mode 100644
index 5331d2e35..000000000
--- a/op-mode-definitions/show-ip-multicast.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ip">
-        <children>
-          <node name="multicast">
-            <properties>
-              <help>Show IP multicast</help>
-            </properties>
-            <children>
-              <leafNode name="interface">
-                <properties>
-                  <help>Show multicast interfaces</help>
-                </properties>
-                <command>if ps -C igmpproxy &amp;&gt;/dev/null; then ${vyos_op_scripts_dir}/show_igmpproxy.py --interface; else echo IGMP proxy not configured; fi</command>
-              </leafNode>
-              <leafNode name="mfc">
-                <properties>
-                  <help>Show multicast fowarding cache</help>
-                </properties>
-                <command>if ps -C igmpproxy &amp;&gt;/dev/null; then ${vyos_op_scripts_dir}/show_igmpproxy.py --mfc; else echo IGMP proxy not configured; fi</command>
-              </leafNode>
-              <leafNode name="summary">
-                <properties>
-                  <help>IP multicast information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip multicast"</command>
-              </leafNode>
-              <leafNode name="route">
-                <properties>
-                  <help>IP multicast routing table</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip mroute"</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-multicast.xml.in b/op-mode-definitions/show-ip-multicast.xml.in
new file mode 100644
index 000000000..5331d2e35
--- /dev/null
+++ b/op-mode-definitions/show-ip-multicast.xml.in
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ip">
+        <children>
+          <node name="multicast">
+            <properties>
+              <help>Show IP multicast</help>
+            </properties>
+            <children>
+              <leafNode name="interface">
+                <properties>
+                  <help>Show multicast interfaces</help>
+                </properties>
+                <command>if ps -C igmpproxy &amp;&gt;/dev/null; then ${vyos_op_scripts_dir}/show_igmpproxy.py --interface; else echo IGMP proxy not configured; fi</command>
+              </leafNode>
+              <leafNode name="mfc">
+                <properties>
+                  <help>Show multicast fowarding cache</help>
+                </properties>
+                <command>if ps -C igmpproxy &amp;&gt;/dev/null; then ${vyos_op_scripts_dir}/show_igmpproxy.py --mfc; else echo IGMP proxy not configured; fi</command>
+              </leafNode>
+              <leafNode name="summary">
+                <properties>
+                  <help>IP multicast information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip multicast"</command>
+              </leafNode>
+              <leafNode name="route">
+                <properties>
+                  <help>IP multicast routing table</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip mroute"</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-ospf.xml b/op-mode-definitions/show-ip-ospf.xml
deleted file mode 100644
index 15fa1db6c..000000000
--- a/op-mode-definitions/show-ip-ospf.xml
+++ /dev/null
@@ -1,579 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ip">
-        <properties>
-          <help>Show IPv4 routing information</help>
-        </properties>
-        <children>
-          <node name="ospf">
-            <properties>
-              <help>Show IPv4 Open Shortest Path First (OSPF) routing information</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip ospf"</command>
-            <children>
-              <leafNode name="border-routers">
-                <properties>
-                  <help>Show IPv4 OSPF border-routers information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip ospf border-routers"</command>
-              </leafNode>
-              <node name="database">
-                <properties>
-                  <help>Show IPv4 OSPF database information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip ospf database"</command>
-                <children>
-                  <node name="asbr-summary">
-                    <properties>
-                      <help>Show IPv4 OSPF ASBR summary database</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database asbr-summary"</command>
-                    <children>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF ASBR summary database for given address of advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database asbr-summary adv-router $7"</command>
-                      </tagNode>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF ASBR summary database for given address of advertised router</help>
-                        </properties>
-                      </node>
-                    </children>
-                  </node>
-                  <tagNode name="asbr-summary">
-                    <properties>
-                      <help>Show IPv4 OSPF ASBR summary database information of given address</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database asbr-summary $6"</command>
-                    <children>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show advertising router link states</help>
-                        </properties>
-                      </node>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF ASBR summary database of given address for given advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database asbr-summary $6 adv-router $8"</command>
-                      </tagNode>
-                      <leafNode name="self-originate">
-                        <properties>
-                          <help>Show summary of self-originate IPv4 OSPF ASBR database</help>
-                        </properties>
-                        <command>show ip ospf database asbr-summary $6 self-originate</command>
-                      </leafNode> 
-                    </children>
-                  </tagNode>
-                  <node name="external">
-                    <properties>
-                      <help>Show IPv4 OSPF external database</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database external"</command>
-                    <children>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF external database for specified IP address of advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database external adv-router $7"</command>
-                      </tagNode>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF external database for specified IP address of advertised router</help>
-                        </properties>
-                      </node>
-                    </children>
-                  </node>
-                  <tagNode name="external">
-                    <properties>
-                      <help>Show IPv4 OSPF external database information of specified IP address</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database external $6"</command>
-                    <children>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show advertising router link states</help>
-                        </properties>
-                      </node>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF external database of specified IP address for specified advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database external $6 adv-router $8"</command>
-                      </tagNode>
-                      <leafNode name="self-originate">
-                        <properties>
-                          <help>Show self-originate IPv4 OSPF external database</help>
-                        </properties>
-                        <command>show ip ospf database external $6 self-originate</command>
-                      </leafNode> 
-                    </children>
-                  </tagNode>
-                  <leafNode name="max-age">
-                    <properties>
-                      <help>Show IPv4 OSPF max-age database</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database max-age"</command>
-                  </leafNode>
-                  <node name="network">
-                    <properties>
-                      <help>Show IPv4 OSPF network database</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database network"</command>
-                    <children>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF network database for specified IP address of advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database network adv-router $7"</command>
-                      </tagNode>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF network database for given address of advertised router</help>
-                        </properties>
-                      </node>
-                    </children>
-                  </node>
-                  <tagNode name="network">
-                    <properties>
-                      <help>Show IPv4 OSPF network database information of specified IP address</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database network $6"</command>
-                    <children>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show advertising router link states</help>
-                        </properties>
-                      </node>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF network database of specified IP address for specified advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database network $6 adv-router $8"</command>
-                      </tagNode>
-                      <leafNode name="self-originate">
-                        <properties>
-                          <help>Show self-originate IPv4 OSPF network database</help>
-                        </properties>
-                        <command>show ip ospf database network $6 self-originate</command>
-                      </leafNode> 
-                    </children>
-                  </tagNode>
-                  <node name="nssa-external">
-                    <properties>
-                      <help>Show IPv4 OSPF NSSA external database</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database nssa-external"</command>
-                    <children>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF NSSA external database for specified IP address of advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database nssa-external adv-router $7"</command>
-                      </tagNode>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF NSSA external database for specified IP address of advertised router</help>
-                        </properties>
-                      </node>
-                    </children>
-                  </node>
-                  <tagNode name="nssa-external">
-                    <properties>
-                      <help>Show IPv4 OSPF NSSA external database information of specified IP address</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database nssa-external $6"</command>
-                    <children>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show advertising router link states</help>
-                        </properties>
-                      </node>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF NSSA external database of specified IP address for specified advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database nssa-external $6 adv-router $8"</command>
-                      </tagNode>
-                      <leafNode name="self-originate">
-                        <properties>
-                          <help>Show self-originate IPv4 OSPF NSSA external database</help>
-                        </properties>
-                        <command>show ip ospf database nssa-external $6 self-originate</command>
-                      </leafNode> 
-                    </children>
-                  </tagNode>
-                  <node name="opaque-area">
-                    <properties>
-                      <help>Show IPv4 OSPF opaque-area database</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database opaque-area"</command>
-                    <children>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF opaque-area database for specified IP address of advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database opaque-area adv-router $7"</command>
-                      </tagNode>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF opaque-area database for specified IP address of advertised router</help>
-                        </properties>
-                      </node>
-                    </children>
-                  </node>
-                  <tagNode name="opaque-area">
-                    <properties>
-                      <help>Show IPv4 OSPF opaque-area database information of specified IP address</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database opaque-area $6"</command>
-                    <children>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show advertising router link states</help>
-                        </properties>
-                      </node>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF opaque-area database of specified IP address for specified advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database opaque-area $6 adv-router $8"</command>
-                      </tagNode>
-                      <leafNode name="self-originate">
-                        <properties>
-                          <help>Show self-originate IPv4 OSPF opaque-area database</help>
-                        </properties>
-                        <command>show ip ospf database opaque-area $6 self-originate</command>
-                      </leafNode> 
-                    </children>
-                  </tagNode>
-                  <node name="opaque-as">
-                    <properties>
-                      <help>Show IPv4 OSPF opaque-as database</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database opaque-as"</command>
-                    <children>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF opaque-as database for specified IP address of advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database opaque-as adv-router $7"</command>
-                      </tagNode>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF opaque-as database for specified IP address of advertised router</help>
-                        </properties>
-                      </node>
-                    </children>
-                  </node>
-                  <tagNode name="opaque-as">
-                    <properties>
-                      <help>Show IPv4 OSPF opaque-as database information of specified IP address</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database opaque-as $6"</command>
-                    <children>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show advertising router link states</help>
-                        </properties>
-                      </node>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF opaque-as database of specified IP address for specified advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database opaque-as $6 adv-router $8"</command>
-                      </tagNode>
-                      <leafNode name="self-originate">
-                        <properties>
-                          <help>Show self-originate IPv4 OSPF opaque-as database</help>
-                        </properties>
-                        <command>show ip ospf database opaque-as $6 self-originate</command>
-                      </leafNode> 
-                    </children>
-                  </tagNode>
-                  <node name="opaque-link">
-                    <properties>
-                      <help>Show IPv4 OSPF opaque-link database</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database opaque-link"</command>
-                    <children>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF opaque-link database for specified IP address of advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database opaque-link adv-router $7"</command>
-                      </tagNode>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF opaque-link database for specified IP address of advertised router</help>
-                        </properties>
-                      </node>
-                    </children>
-                  </node>
-                  <tagNode name="opaque-link">
-                    <properties>
-                      <help>Show IPv4 OSPF opaque-link database information of specified IP address</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database opaque-link $6"</command>
-                    <children>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show advertising router link states</help>
-                        </properties>
-                      </node>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF opaque-link database of specified IP address for specified advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database opaque-link $6 adv-router $8"</command>
-                      </tagNode>
-                      <leafNode name="self-originate">
-                        <properties>
-                          <help>Show self-originate IPv4 OSPF opaque-link database</help>
-                        </properties>
-                        <command>show ip ospf database opaque-link $6 self-originate</command>
-                      </leafNode> 
-                    </children>
-                  </tagNode>
-                  <node name="router">
-                    <properties>
-                      <help>Show IPv4 OSPF router database</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database router"</command>
-                    <children>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF router database for specified IP address of advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database router adv-router $7"</command>
-                      </tagNode>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF router database for specified IP address of advertised router</help>
-                        </properties>
-                      </node>
-                    </children>
-                  </node>
-                  <tagNode name="router">
-                    <properties>
-                      <help>Show IPv4 OSPF router database information of specified IP address</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database router $6"</command>
-                    <children>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show advertising router link states</help>
-                        </properties>
-                      </node>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF router database of specified IP address for specified advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database router $6 adv-router $8"</command>
-                      </tagNode>
-                      <leafNode name="self-originate">
-                        <properties>
-                          <help>Show self-originate IPv4 OSPF router database</help>
-                        </properties>
-                        <command>show ip ospf database router $6 self-originate</command>
-                      </leafNode> 
-                    </children>
-                  </tagNode>
-                  <leafNode name="self-originate">
-                    <properties>
-                      <help>Show IPv4 OSPF self-originate database</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database self-originate"</command>
-                  </leafNode>
-                  <node name="summary">
-                    <properties>
-                      <help>Show summary of IPv4 OSPF database</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database summary"</command>
-                    <children>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF summary database for specified IP address of advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database summary adv-router $7"</command>
-                      </tagNode>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF summary database for specified IP address of advertised router</help>
-                        </properties>
-                      </node>
-                    </children>
-                  </node>
-                  <tagNode name="summary">
-                    <properties>
-                      <help>Show IPv4 OSPF summary database information of specified IP address</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf database summary $6"</command>
-                    <children>
-                      <node name="adv-router">
-                        <properties>
-                          <help>Show advertising router link states</help>
-                        </properties>
-                      </node>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Show IPv4 OSPF summary database of specified IP address for specified advertised router</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show ip ospf database summary $6 adv-router $8"</command>
-                      </tagNode>
-                      <leafNode name="self-originate">
-                        <properties>
-                          <help>Show self-originate IPv4 OSPF summary database</help>
-                        </properties>
-                        <command>show ip ospf database summary $6 self-originate</command>
-                      </leafNode> 
-                    </children>
-                  </tagNode>
-                </children>
-              </node>
-              <node name="interface">
-                <properties>
-                  <help>Show IPv4 OSPF interface information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip ospf interface"</command>
-              </node>
-              <tagNode name="interface">
-                <properties>
-                  <help>Show IPv4 OSPF information for specified interface</help>
-                  <completionHelp>
-                    <script>${vyos_completion_dir}/list_interfaces.py</script>
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip ospf interface $5"</command>
-              </tagNode>
-              <node name="neighbor">
-                <properties>
-                  <help>Show IPv4 OSPF neighbor information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip ospf neighbor"</command>
-                <children>
-                  <tagNode name="address">
-                    <properties>
-                      <help>Show IPv4 OSPF neighbor information for specified IP address</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf neighbor $6"</command>
-                  </tagNode>
-                  <node name="detail">
-                    <properties>
-                      <help>Show detailed IPv4 OSPF neighbor information</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show ip ospf neighbor detail"</command>
-                  </node>
-                </children>
-              </node>
-              <tagNode name="neighbor">
-                <properties>
-                  <help>Show IPv4 OSPF neighbor information for specified IP address or interface</help>
-                  <completionHelp>
-                    <list>&lt;x.x.x.x&gt;</list>
-                    <script>${vyos_completion_dir}/list_interfaces.py</script>
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip ospf neighbor $5"</command>
-              </tagNode>
-              <leafNode name="route">
-                <properties>
-                  <help>Show IPv4 OSPF route information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip ospf route"</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-ospf.xml.in b/op-mode-definitions/show-ip-ospf.xml.in
new file mode 100644
index 000000000..50628d18e
--- /dev/null
+++ b/op-mode-definitions/show-ip-ospf.xml.in
@@ -0,0 +1,579 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ip">
+        <properties>
+          <help>Show IPv4 routing information</help>
+        </properties>
+        <children>
+          <node name="ospf">
+            <properties>
+              <help>Show IPv4 Open Shortest Path First (OSPF) routing information</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip ospf"</command>
+            <children>
+              <leafNode name="border-routers">
+                <properties>
+                  <help>Show IPv4 OSPF border-routers information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip ospf border-routers"</command>
+              </leafNode>
+              <node name="database">
+                <properties>
+                  <help>Show IPv4 OSPF database information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip ospf database"</command>
+                <children>
+                  <node name="asbr-summary">
+                    <properties>
+                      <help>Show IPv4 OSPF ASBR summary database</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database asbr-summary"</command>
+                    <children>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF ASBR summary database for given address of advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database asbr-summary adv-router $7"</command>
+                      </tagNode>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF ASBR summary database for given address of advertised router</help>
+                        </properties>
+                      </node>
+                    </children>
+                  </node>
+                  <tagNode name="asbr-summary">
+                    <properties>
+                      <help>Show IPv4 OSPF ASBR summary database information of given address</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database asbr-summary $6"</command>
+                    <children>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show advertising router link states</help>
+                        </properties>
+                      </node>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF ASBR summary database of given address for given advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database asbr-summary $6 adv-router $8"</command>
+                      </tagNode>
+                      <leafNode name="self-originate">
+                        <properties>
+                          <help>Show summary of self-originate IPv4 OSPF ASBR database</help>
+                        </properties>
+                        <command>show ip ospf database asbr-summary $6 self-originate</command>
+                      </leafNode>
+                    </children>
+                  </tagNode>
+                  <node name="external">
+                    <properties>
+                      <help>Show IPv4 OSPF external database</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database external"</command>
+                    <children>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF external database for specified IP address of advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database external adv-router $7"</command>
+                      </tagNode>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF external database for specified IP address of advertised router</help>
+                        </properties>
+                      </node>
+                    </children>
+                  </node>
+                  <tagNode name="external">
+                    <properties>
+                      <help>Show IPv4 OSPF external database information of specified IP address</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database external $6"</command>
+                    <children>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show advertising router link states</help>
+                        </properties>
+                      </node>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF external database of specified IP address for specified advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database external $6 adv-router $8"</command>
+                      </tagNode>
+                      <leafNode name="self-originate">
+                        <properties>
+                          <help>Show self-originate IPv4 OSPF external database</help>
+                        </properties>
+                        <command>show ip ospf database external $6 self-originate</command>
+                      </leafNode>
+                    </children>
+                  </tagNode>
+                  <leafNode name="max-age">
+                    <properties>
+                      <help>Show IPv4 OSPF max-age database</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database max-age"</command>
+                  </leafNode>
+                  <node name="network">
+                    <properties>
+                      <help>Show IPv4 OSPF network database</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database network"</command>
+                    <children>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF network database for specified IP address of advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database network adv-router $7"</command>
+                      </tagNode>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF network database for given address of advertised router</help>
+                        </properties>
+                      </node>
+                    </children>
+                  </node>
+                  <tagNode name="network">
+                    <properties>
+                      <help>Show IPv4 OSPF network database information of specified IP address</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database network $6"</command>
+                    <children>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show advertising router link states</help>
+                        </properties>
+                      </node>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF network database of specified IP address for specified advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database network $6 adv-router $8"</command>
+                      </tagNode>
+                      <leafNode name="self-originate">
+                        <properties>
+                          <help>Show self-originate IPv4 OSPF network database</help>
+                        </properties>
+                        <command>show ip ospf database network $6 self-originate</command>
+                      </leafNode>
+                    </children>
+                  </tagNode>
+                  <node name="nssa-external">
+                    <properties>
+                      <help>Show IPv4 OSPF NSSA external database</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database nssa-external"</command>
+                    <children>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF NSSA external database for specified IP address of advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database nssa-external adv-router $7"</command>
+                      </tagNode>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF NSSA external database for specified IP address of advertised router</help>
+                        </properties>
+                      </node>
+                    </children>
+                  </node>
+                  <tagNode name="nssa-external">
+                    <properties>
+                      <help>Show IPv4 OSPF NSSA external database information of specified IP address</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database nssa-external $6"</command>
+                    <children>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show advertising router link states</help>
+                        </properties>
+                      </node>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF NSSA external database of specified IP address for specified advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database nssa-external $6 adv-router $8"</command>
+                      </tagNode>
+                      <leafNode name="self-originate">
+                        <properties>
+                          <help>Show self-originate IPv4 OSPF NSSA external database</help>
+                        </properties>
+                        <command>show ip ospf database nssa-external $6 self-originate</command>
+                      </leafNode>
+                    </children>
+                  </tagNode>
+                  <node name="opaque-area">
+                    <properties>
+                      <help>Show IPv4 OSPF opaque-area database</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database opaque-area"</command>
+                    <children>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF opaque-area database for specified IP address of advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database opaque-area adv-router $7"</command>
+                      </tagNode>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF opaque-area database for specified IP address of advertised router</help>
+                        </properties>
+                      </node>
+                    </children>
+                  </node>
+                  <tagNode name="opaque-area">
+                    <properties>
+                      <help>Show IPv4 OSPF opaque-area database information of specified IP address</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database opaque-area $6"</command>
+                    <children>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show advertising router link states</help>
+                        </properties>
+                      </node>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF opaque-area database of specified IP address for specified advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database opaque-area $6 adv-router $8"</command>
+                      </tagNode>
+                      <leafNode name="self-originate">
+                        <properties>
+                          <help>Show self-originate IPv4 OSPF opaque-area database</help>
+                        </properties>
+                        <command>show ip ospf database opaque-area $6 self-originate</command>
+                      </leafNode>
+                    </children>
+                  </tagNode>
+                  <node name="opaque-as">
+                    <properties>
+                      <help>Show IPv4 OSPF opaque-as database</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database opaque-as"</command>
+                    <children>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF opaque-as database for specified IP address of advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database opaque-as adv-router $7"</command>
+                      </tagNode>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF opaque-as database for specified IP address of advertised router</help>
+                        </properties>
+                      </node>
+                    </children>
+                  </node>
+                  <tagNode name="opaque-as">
+                    <properties>
+                      <help>Show IPv4 OSPF opaque-as database information of specified IP address</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database opaque-as $6"</command>
+                    <children>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show advertising router link states</help>
+                        </properties>
+                      </node>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF opaque-as database of specified IP address for specified advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database opaque-as $6 adv-router $8"</command>
+                      </tagNode>
+                      <leafNode name="self-originate">
+                        <properties>
+                          <help>Show self-originate IPv4 OSPF opaque-as database</help>
+                        </properties>
+                        <command>show ip ospf database opaque-as $6 self-originate</command>
+                      </leafNode>
+                    </children>
+                  </tagNode>
+                  <node name="opaque-link">
+                    <properties>
+                      <help>Show IPv4 OSPF opaque-link database</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database opaque-link"</command>
+                    <children>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF opaque-link database for specified IP address of advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database opaque-link adv-router $7"</command>
+                      </tagNode>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF opaque-link database for specified IP address of advertised router</help>
+                        </properties>
+                      </node>
+                    </children>
+                  </node>
+                  <tagNode name="opaque-link">
+                    <properties>
+                      <help>Show IPv4 OSPF opaque-link database information of specified IP address</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database opaque-link $6"</command>
+                    <children>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show advertising router link states</help>
+                        </properties>
+                      </node>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF opaque-link database of specified IP address for specified advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database opaque-link $6 adv-router $8"</command>
+                      </tagNode>
+                      <leafNode name="self-originate">
+                        <properties>
+                          <help>Show self-originate IPv4 OSPF opaque-link database</help>
+                        </properties>
+                        <command>show ip ospf database opaque-link $6 self-originate</command>
+                      </leafNode>
+                    </children>
+                  </tagNode>
+                  <node name="router">
+                    <properties>
+                      <help>Show IPv4 OSPF router database</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database router"</command>
+                    <children>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF router database for specified IP address of advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database router adv-router $7"</command>
+                      </tagNode>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF router database for specified IP address of advertised router</help>
+                        </properties>
+                      </node>
+                    </children>
+                  </node>
+                  <tagNode name="router">
+                    <properties>
+                      <help>Show IPv4 OSPF router database information of specified IP address</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database router $6"</command>
+                    <children>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show advertising router link states</help>
+                        </properties>
+                      </node>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF router database of specified IP address for specified advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database router $6 adv-router $8"</command>
+                      </tagNode>
+                      <leafNode name="self-originate">
+                        <properties>
+                          <help>Show self-originate IPv4 OSPF router database</help>
+                        </properties>
+                        <command>show ip ospf database router $6 self-originate</command>
+                      </leafNode>
+                    </children>
+                  </tagNode>
+                  <leafNode name="self-originate">
+                    <properties>
+                      <help>Show IPv4 OSPF self-originate database</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database self-originate"</command>
+                  </leafNode>
+                  <node name="summary">
+                    <properties>
+                      <help>Show summary of IPv4 OSPF database</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database summary"</command>
+                    <children>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF summary database for specified IP address of advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database summary adv-router $7"</command>
+                      </tagNode>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF summary database for specified IP address of advertised router</help>
+                        </properties>
+                      </node>
+                    </children>
+                  </node>
+                  <tagNode name="summary">
+                    <properties>
+                      <help>Show IPv4 OSPF summary database information of specified IP address</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf database summary $6"</command>
+                    <children>
+                      <node name="adv-router">
+                        <properties>
+                          <help>Show advertising router link states</help>
+                        </properties>
+                      </node>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Show IPv4 OSPF summary database of specified IP address for specified advertised router</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show ip ospf database summary $6 adv-router $8"</command>
+                      </tagNode>
+                      <leafNode name="self-originate">
+                        <properties>
+                          <help>Show self-originate IPv4 OSPF summary database</help>
+                        </properties>
+                        <command>show ip ospf database summary $6 self-originate</command>
+                      </leafNode>
+                    </children>
+                  </tagNode>
+                </children>
+              </node>
+              <node name="interface">
+                <properties>
+                  <help>Show IPv4 OSPF interface information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip ospf interface"</command>
+              </node>
+              <tagNode name="interface">
+                <properties>
+                  <help>Show IPv4 OSPF information for specified interface</help>
+                  <completionHelp>
+                    <script>${vyos_completion_dir}/list_interfaces.py</script>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip ospf interface $5"</command>
+              </tagNode>
+              <node name="neighbor">
+                <properties>
+                  <help>Show IPv4 OSPF neighbor information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip ospf neighbor"</command>
+                <children>
+                  <tagNode name="address">
+                    <properties>
+                      <help>Show IPv4 OSPF neighbor information for specified IP address</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf neighbor $6"</command>
+                  </tagNode>
+                  <node name="detail">
+                    <properties>
+                      <help>Show detailed IPv4 OSPF neighbor information</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show ip ospf neighbor detail"</command>
+                  </node>
+                </children>
+              </node>
+              <tagNode name="neighbor">
+                <properties>
+                  <help>Show IPv4 OSPF neighbor information for specified IP address or interface</help>
+                  <completionHelp>
+                    <list>&lt;x.x.x.x&gt;</list>
+                    <script>${vyos_completion_dir}/list_interfaces.py</script>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip ospf neighbor $5"</command>
+              </tagNode>
+              <leafNode name="route">
+                <properties>
+                  <help>Show IPv4 OSPF route information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip ospf route"</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-pim.xml b/op-mode-definitions/show-ip-pim.xml
deleted file mode 100644
index 3f4edc779..000000000
--- a/op-mode-definitions/show-ip-pim.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ip">
-        <children>
-          <node name="pim">
-            <properties>
-              <help>Show PIM (Protocol Independent Multicast) information</help>
-            </properties>
-            <children>
-              <leafNode name="interfaces">
-                <properties>
-                  <help>PIM interfaces information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip pim interface"</command>
-              </leafNode>
-              <leafNode name="join">
-                <properties>
-                  <help>PIM join information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip pim join"</command>
-              </leafNode>
-              <leafNode name="neighbor">
-                <properties>
-                  <help>PIM neighbor information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip pim neighbor"</command>
-              </leafNode>
-              <leafNode name="nexthop">
-                <properties>
-                  <help>PIM cached nexthop rpf information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip pim nexthop"</command>
-              </leafNode>
-              <leafNode name="state">
-                <properties>
-                  <help>PIM state information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip pim state"</command>
-              </leafNode>
-              <leafNode name="statistics">
-                <properties>
-                  <help>PIM statistics</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip pim statistics"</command>
-              </leafNode>
-              <leafNode name="rp">
-                <properties>
-                  <help>PIM RP (Rendevous Point) information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip pim rp-info"</command>
-              </leafNode>
-              <leafNode name="rpf">
-                <properties>
-                  <help>PIM cached source rpf information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip pim rpf"</command>
-              </leafNode>
-              <leafNode name="upstream">
-                <properties>
-                  <help>PIM upstream information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip pim upstream"</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-pim.xml.in b/op-mode-definitions/show-ip-pim.xml.in
new file mode 100644
index 000000000..3f4edc779
--- /dev/null
+++ b/op-mode-definitions/show-ip-pim.xml.in
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ip">
+        <children>
+          <node name="pim">
+            <properties>
+              <help>Show PIM (Protocol Independent Multicast) information</help>
+            </properties>
+            <children>
+              <leafNode name="interfaces">
+                <properties>
+                  <help>PIM interfaces information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip pim interface"</command>
+              </leafNode>
+              <leafNode name="join">
+                <properties>
+                  <help>PIM join information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip pim join"</command>
+              </leafNode>
+              <leafNode name="neighbor">
+                <properties>
+                  <help>PIM neighbor information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip pim neighbor"</command>
+              </leafNode>
+              <leafNode name="nexthop">
+                <properties>
+                  <help>PIM cached nexthop rpf information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip pim nexthop"</command>
+              </leafNode>
+              <leafNode name="state">
+                <properties>
+                  <help>PIM state information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip pim state"</command>
+              </leafNode>
+              <leafNode name="statistics">
+                <properties>
+                  <help>PIM statistics</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip pim statistics"</command>
+              </leafNode>
+              <leafNode name="rp">
+                <properties>
+                  <help>PIM RP (Rendevous Point) information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip pim rp-info"</command>
+              </leafNode>
+              <leafNode name="rpf">
+                <properties>
+                  <help>PIM cached source rpf information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip pim rpf"</command>
+              </leafNode>
+              <leafNode name="upstream">
+                <properties>
+                  <help>PIM upstream information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip pim upstream"</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-ports.xml b/op-mode-definitions/show-ip-ports.xml
deleted file mode 100644
index a74b68ffc..000000000
--- a/op-mode-definitions/show-ip-ports.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ip">
-        <children>
-          <leafNode name="ports">
-            <properties>
-              <help>Show IP ports in use by various system services</help>
-            </properties>
-            <command>sudo /usr/bin/netstat -tulnp</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-ports.xml.in b/op-mode-definitions/show-ip-ports.xml.in
new file mode 100644
index 000000000..a74b68ffc
--- /dev/null
+++ b/op-mode-definitions/show-ip-ports.xml.in
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ip">
+        <children>
+          <leafNode name="ports">
+            <properties>
+              <help>Show IP ports in use by various system services</help>
+            </properties>
+            <command>sudo /usr/bin/netstat -tulnp</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-rip.xml b/op-mode-definitions/show-ip-rip.xml
deleted file mode 100644
index b61ab10a7..000000000
--- a/op-mode-definitions/show-ip-rip.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ip">
-        <properties>
-          <help>Show IPv4 routing information</help>
-        </properties>
-        <children>
-          <node name="rip">
-            <properties>
-              <help>Show Routing Information Protocol (RIP) information</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip rip"</command>
-            <children>
-              <leafNode name="status">
-                <properties>
-                  <help>Show RIP protocol status</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip rip status"</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-rip.xml.in b/op-mode-definitions/show-ip-rip.xml.in
new file mode 100644
index 000000000..b61ab10a7
--- /dev/null
+++ b/op-mode-definitions/show-ip-rip.xml.in
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ip">
+        <properties>
+          <help>Show IPv4 routing information</help>
+        </properties>
+        <children>
+          <node name="rip">
+            <properties>
+              <help>Show Routing Information Protocol (RIP) information</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip rip"</command>
+            <children>
+              <leafNode name="status">
+                <properties>
+                  <help>Show RIP protocol status</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip rip status"</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-route.xml b/op-mode-definitions/show-ip-route.xml
deleted file mode 100644
index a98048785..000000000
--- a/op-mode-definitions/show-ip-route.xml
+++ /dev/null
@@ -1,166 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ip">
-        <properties>
-          <help>Show IPv4 routing information</help>
-        </properties>
-        <children>
-          <node name="route">
-            <properties>
-              <help>Show IP routes</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip route"</command>
-            <children>
-              <leafNode name="bgp">
-                <properties>
-                  <help>Show IP BGP routes</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip route bgp"</command>
-              </leafNode>
-              <node name="cache">
-                <properties>
-                  <help>Show kernel route cache</help>
-                </properties>
-                <command>ip -s route list cache</command>
-              </node>
-              <tagNode name="cache">
-                <properties>
-                  <help>Show kernel route cache for a given route</help>
-                  <completionHelp>
-                    <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>ip -s route list cache $5</command>
-              </tagNode>
-              <leafNode name="connected">
-                <properties>
-                  <help>Show IP connected routes</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip route connected"</command>
-              </leafNode>
-              <node name="forward">
-                <properties>
-                  <help>Show kernel route table</help>
-                </properties>
-                <command>ip route list</command>
-              </node>
-              <tagNode name="forward">
-                <properties>
-                  <help>Show kernel route table for a given route</help>
-                  <completionHelp>
-                    <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>ip -s route list $5</command>
-              </tagNode>
-              <leafNode name="isis">
-                <properties>
-                  <help>Show IP IS-IS routes</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip route isis"</command>
-              </leafNode>
-              <leafNode name="kernel">
-                <properties>
-                  <help>Show IP kernel routes</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip route kernel"</command>
-              </leafNode>
-              <leafNode name="ospf">
-                <properties>
-                  <help>Show IP OSPF routes</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip route ospf"</command>
-              </leafNode>
-              <leafNode name="rip">
-                <properties>
-                  <help>Show IP RIP routes</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip route rip"</command>
-              </leafNode>
-              <leafNode name="static">
-                <properties>
-                  <help>Show IP static routes</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip route static"</command>
-              </leafNode>
-              <leafNode name="summary">
-                <properties>
-                  <help>Show IP routes summary</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip route summary"</command>
-              </leafNode>
-              <leafNode name="supernets-only">
-                <properties>
-                  <help>Show IP supernet routes</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip route supernets-only"</command>
-              </leafNode>
-              <node name="table">
-                <properties>
-                  <help>Show IP routes in policy table</help>
-                </properties>
-              </node>
-              <tagNode name="table">
-                <properties>
-                  <help>Show IP routes in policy table</help>
-                  <completionHelp>
-                    <list>&lt;1-200&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip route table $5"</command>
-              </tagNode>
-              <node name="tag">
-                <properties>
-                  <help>Show only routes with tag</help>
-                </properties>
-              </node>
-              <tagNode name="tag">
-                <properties>
-                  <help>Tag value</help>
-                  <completionHelp>
-                    <list>&lt;1-4294967295&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip route tag $5"</command>
-              </tagNode>
-              <node name="vrf">
-                <properties>
-                  <help>Show IP routes in VRF</help>
-                </properties>
-              </node>
-              <tagNode name="vrf">
-                <properties>
-                  <help>Show IP routes in VRF</help>
-                  <completionHelp>
-                    <list>&lt;vrf&gt;</list>
-                    <path>vrf name</path>
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip route vrf $5"</command>
-              </tagNode>
-            </children>
-          </node>
-          <tagNode name="route">
-            <properties>
-              <help>Show IP routes of specified IP address or prefix</help>
-              <completionHelp>
-                <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/vtysh -c "show ip route $4"</command>
-            <children>
-              <leafNode name="longer-prefixes">
-                <properties>
-                  <help>Show longer prefixes of routes for specified IP address or prefix</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show ip route $4 longer-prefixes"</command>
-              </leafNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ip-route.xml.in b/op-mode-definitions/show-ip-route.xml.in
new file mode 100644
index 000000000..a98048785
--- /dev/null
+++ b/op-mode-definitions/show-ip-route.xml.in
@@ -0,0 +1,166 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ip">
+        <properties>
+          <help>Show IPv4 routing information</help>
+        </properties>
+        <children>
+          <node name="route">
+            <properties>
+              <help>Show IP routes</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip route"</command>
+            <children>
+              <leafNode name="bgp">
+                <properties>
+                  <help>Show IP BGP routes</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip route bgp"</command>
+              </leafNode>
+              <node name="cache">
+                <properties>
+                  <help>Show kernel route cache</help>
+                </properties>
+                <command>ip -s route list cache</command>
+              </node>
+              <tagNode name="cache">
+                <properties>
+                  <help>Show kernel route cache for a given route</help>
+                  <completionHelp>
+                    <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>ip -s route list cache $5</command>
+              </tagNode>
+              <leafNode name="connected">
+                <properties>
+                  <help>Show IP connected routes</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip route connected"</command>
+              </leafNode>
+              <node name="forward">
+                <properties>
+                  <help>Show kernel route table</help>
+                </properties>
+                <command>ip route list</command>
+              </node>
+              <tagNode name="forward">
+                <properties>
+                  <help>Show kernel route table for a given route</help>
+                  <completionHelp>
+                    <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>ip -s route list $5</command>
+              </tagNode>
+              <leafNode name="isis">
+                <properties>
+                  <help>Show IP IS-IS routes</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip route isis"</command>
+              </leafNode>
+              <leafNode name="kernel">
+                <properties>
+                  <help>Show IP kernel routes</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip route kernel"</command>
+              </leafNode>
+              <leafNode name="ospf">
+                <properties>
+                  <help>Show IP OSPF routes</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip route ospf"</command>
+              </leafNode>
+              <leafNode name="rip">
+                <properties>
+                  <help>Show IP RIP routes</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip route rip"</command>
+              </leafNode>
+              <leafNode name="static">
+                <properties>
+                  <help>Show IP static routes</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip route static"</command>
+              </leafNode>
+              <leafNode name="summary">
+                <properties>
+                  <help>Show IP routes summary</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip route summary"</command>
+              </leafNode>
+              <leafNode name="supernets-only">
+                <properties>
+                  <help>Show IP supernet routes</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip route supernets-only"</command>
+              </leafNode>
+              <node name="table">
+                <properties>
+                  <help>Show IP routes in policy table</help>
+                </properties>
+              </node>
+              <tagNode name="table">
+                <properties>
+                  <help>Show IP routes in policy table</help>
+                  <completionHelp>
+                    <list>&lt;1-200&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip route table $5"</command>
+              </tagNode>
+              <node name="tag">
+                <properties>
+                  <help>Show only routes with tag</help>
+                </properties>
+              </node>
+              <tagNode name="tag">
+                <properties>
+                  <help>Tag value</help>
+                  <completionHelp>
+                    <list>&lt;1-4294967295&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip route tag $5"</command>
+              </tagNode>
+              <node name="vrf">
+                <properties>
+                  <help>Show IP routes in VRF</help>
+                </properties>
+              </node>
+              <tagNode name="vrf">
+                <properties>
+                  <help>Show IP routes in VRF</help>
+                  <completionHelp>
+                    <list>&lt;vrf&gt;</list>
+                    <path>vrf name</path>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip route vrf $5"</command>
+              </tagNode>
+            </children>
+          </node>
+          <tagNode name="route">
+            <properties>
+              <help>Show IP routes of specified IP address or prefix</help>
+              <completionHelp>
+                <list>&lt;x.x.x.x&gt; &lt;x.x.x.x/x&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/vtysh -c "show ip route $4"</command>
+            <children>
+              <leafNode name="longer-prefixes">
+                <properties>
+                  <help>Show longer prefixes of routes for specified IP address or prefix</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show ip route $4 longer-prefixes"</command>
+              </leafNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ipv6-bgp.xml b/op-mode-definitions/show-ipv6-bgp.xml
deleted file mode 100644
index aad61b97a..000000000
--- a/op-mode-definitions/show-ipv6-bgp.xml
+++ /dev/null
@@ -1,203 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ipv6">
-        <properties>
-          <help>Show IPv6 routing information</help>
-        </properties>
-        <children>
-          <node name="bgp">
-            <properties>
-              <help>Show Border Gateway Protocol (BGP) information</help>
-            </properties>
-            <command>vtysh -c "show bgp ipv6"</command>
-            <children>
-              <leafNode name="summary">
-                <properties>
-                  <help>Show summary of BGP neighbor status</help>
-                </properties>
-                <command>vtysh -c "show bgp ipv6 summary"</command>
-              </leafNode>
-              <tagNode name="regexp">
-                <properties>
-                  <help>Show routes matching AS path regular expression</help>
-                </properties>
-                <command>vtysh -c "show bgp ipv6 regexp $5"</command>
-              </tagNode>
-              <tagNode name="prefix-list">
-                <properties>
-                  <help>Show routes matching the IPv6 prefix-list name</help>
-                  <completionHelp>
-                    <path>policy prefix-list6</path>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "show bgp ipv6 prefix-list $5"</command>
-              </tagNode>
-              <tagNode name="neighbors">
-                <properties>
-                  <help>Show detailed information on TCP and BGP neighbor connections for given address</help>
-                  <completionHelp>
-                    <script>vtysh -c "show bgp ipv6 summary" | awk '{print $1}' | grep -oE "\b([0-9a-f]{1,4}\:{0,2}){0,20}\b"</script>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "show bgp ipv6 neighbor $5"</command>
-                <children>
-                  <leafNode name="advertised-routes">
-                    <properties>
-                      <help>Show routes advertised to a BGP neighbor</help>
-                    </properties>
-                    <command>vtysh -c "show bgp ipv6 neighbor $5 advertised-routes"</command>
-                  </leafNode>
-                  <leafNode name="filtered-routes">
-                    <properties>
-                      <help>Show routes filtered from a BGP neighbor</help>
-                    </properties>
-                    <command>vtysh -c "show bgp ipv6 neighbor $5 filtered-routes"</command>
-                  </leafNode>
-                  <leafNode name="dampened-routes">
-                    <properties>
-                      <help>Show dampened routes received from BGP neighbor</help>
-                    </properties>
-                    <command>vtysh -c "show bgp ipv6 neighbor $5 dampened-routes"</command>
-                  </leafNode>
-                  <leafNode name="flap-statistics">
-                    <properties>
-                      <help>Show flap statistics of the routes learned from BGP neighbor</help>
-                    </properties>
-                    <command>vtysh -c "show bgp ipv6 neighbor $5 flap-statistics"</command>
-                  </leafNode>
-                  <leafNode name="prefix-counts">
-                    <properties>
-                      <help>Show detailed prefix count information for BGP neighbor</help>
-                    </properties>
-                    <command>vtysh -c "show bgp ipv6 neighbor $5 prefix-counts"</command>
-                  </leafNode>
-                  <node name="received">
-                    <properties>
-                      <help>Show information received from BGP neighbor</help>
-                    </properties>
-                    <children>
-                      <leafNode name="prefix-filter">
-                        <properties>
-                          <help>Show prefixlist filter</help>
-                        </properties>
-                        <command>vtysh -c "show bgp ipv6 neighbor $5 received prefix-filter"</command>
-                      </leafNode>
-                    </children>
-                  </node>
-                  <leafNode name="received-routes">
-                    <properties>
-                      <help>Show received routes from BGP neighbor</help>
-                    </properties>
-                    <command>vtysh -c "show bgp ipv6 neighbor $5 received-routes"</command>
-                  </leafNode>
-                  <leafNode name="routes">
-                    <properties>
-                      <help>Show routes learned from BGP neighbor</help>
-                    </properties>
-                    <command>vtysh -c "show bgp ipv6 neighbor $5 routes"</command>
-                  </leafNode>
-                </children>
-              </tagNode>
-              <tagNode name="large-community">
-                <properties>
-                  <help>Show routes matching the large-community-list number or name</help>
-                </properties>
-                <command>vtysh -c "show bgp ipv6 large-community-list $5"</command>
-                <children>
-                  <node name="exact-match">
-                    <properties>
-                      <help>Show routes matching the large-community-list number or name</help>
-                    </properties>
-                    <command>vtysh -c "show bgp ipv6 large-community-list $5 exact-match"</command>
-                  </node>
-                </children>
-              </tagNode>
-              <tagNode name="large-community-list">
-                <properties>
-                  <help>Show routes matching the large-community-list number or name</help>
-                </properties>
-                <command>vtysh -c "show bgp ipv6 large-community-list $5"</command>
-                <children>
-                  <node name="exact-match">
-                    <properties>
-                      <help>Show routes matching the large-community-list number or name</help>
-                    </properties>
-                    <command>vtysh -c "show bgp ipv6 large-community-list $5 exact-match"</command>
-                  </node>
-                </children>
-              </tagNode>
-              <tagNode name="filter-list">
-                <properties>
-                  <help>Show routes conforming to regular expression access list name</help>
-                </properties>
-                <command>vtysh -c "show bgp ipv6 filter-list $5"</command>
-              </tagNode>
-              <tagNode name="community">
-                <properties>
-                  <help>Show BGP information for specified community number</help>
-                  <completionHelp>
-                    <list>&lt;AA:NN&gt; local-AS no-advertise no-export</list>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "show bgp ipv6 community $5"</command>
-                <children>
-                  <node name="exact-match">
-                    <properties>
-                      <help>Show routes from community that exactly matches the community number</help>
-                    </properties>
-                    <command>vtysh -c "show bgp ipv6 community $5 exact-match"</command>
-                  </node>
-                </children>
-              </tagNode>
-              <tagNode name="community-list">
-                <properties>
-                  <help>Show routes matching the community-list number or name</help>
-                </properties>
-                <command>vtysh -c "show bgp ipv6 community-list $5"</command>
-                <children>
-                  <node name="exact-match">
-                    <properties>
-                      <help>Show routes exactly matching the community-list name or number</help>
-                    </properties>
-                    <command>vtysh -c "show bgp ipv6 community-list $5 exact-match"</command>
-                  </node>
-                </children>
-              </tagNode>
-              <tagNode name="route-map">
-                <properties>
-                  <help>Show BGP routes matching the specified route map</help>
-                  <completionHelp>
-                    <path>policy route-map</path>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "show bgp ipv6 route-map $5"</command>
-              </tagNode>
-            </children>
-          </node>
-          <tagNode name="bgp">
-            <properties>
-              <help>Show BGP information for specified IP address or prefix</help>
-              <completionHelp>
-                <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>vtysh -c "show bgp ipv6 $4"</command>
-            <children>
-              <node name="longer-prefixes">
-                <properties>
-                  <help>Show route and more specific routes</help>
-                  <completionHelp>
-                    <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "show bgp ipv6 $4 longer-prefixes"</command>
-              </node>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ipv6-bgp.xml.in b/op-mode-definitions/show-ipv6-bgp.xml.in
new file mode 100644
index 000000000..aad61b97a
--- /dev/null
+++ b/op-mode-definitions/show-ipv6-bgp.xml.in
@@ -0,0 +1,203 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ipv6">
+        <properties>
+          <help>Show IPv6 routing information</help>
+        </properties>
+        <children>
+          <node name="bgp">
+            <properties>
+              <help>Show Border Gateway Protocol (BGP) information</help>
+            </properties>
+            <command>vtysh -c "show bgp ipv6"</command>
+            <children>
+              <leafNode name="summary">
+                <properties>
+                  <help>Show summary of BGP neighbor status</help>
+                </properties>
+                <command>vtysh -c "show bgp ipv6 summary"</command>
+              </leafNode>
+              <tagNode name="regexp">
+                <properties>
+                  <help>Show routes matching AS path regular expression</help>
+                </properties>
+                <command>vtysh -c "show bgp ipv6 regexp $5"</command>
+              </tagNode>
+              <tagNode name="prefix-list">
+                <properties>
+                  <help>Show routes matching the IPv6 prefix-list name</help>
+                  <completionHelp>
+                    <path>policy prefix-list6</path>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "show bgp ipv6 prefix-list $5"</command>
+              </tagNode>
+              <tagNode name="neighbors">
+                <properties>
+                  <help>Show detailed information on TCP and BGP neighbor connections for given address</help>
+                  <completionHelp>
+                    <script>vtysh -c "show bgp ipv6 summary" | awk '{print $1}' | grep -oE "\b([0-9a-f]{1,4}\:{0,2}){0,20}\b"</script>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "show bgp ipv6 neighbor $5"</command>
+                <children>
+                  <leafNode name="advertised-routes">
+                    <properties>
+                      <help>Show routes advertised to a BGP neighbor</help>
+                    </properties>
+                    <command>vtysh -c "show bgp ipv6 neighbor $5 advertised-routes"</command>
+                  </leafNode>
+                  <leafNode name="filtered-routes">
+                    <properties>
+                      <help>Show routes filtered from a BGP neighbor</help>
+                    </properties>
+                    <command>vtysh -c "show bgp ipv6 neighbor $5 filtered-routes"</command>
+                  </leafNode>
+                  <leafNode name="dampened-routes">
+                    <properties>
+                      <help>Show dampened routes received from BGP neighbor</help>
+                    </properties>
+                    <command>vtysh -c "show bgp ipv6 neighbor $5 dampened-routes"</command>
+                  </leafNode>
+                  <leafNode name="flap-statistics">
+                    <properties>
+                      <help>Show flap statistics of the routes learned from BGP neighbor</help>
+                    </properties>
+                    <command>vtysh -c "show bgp ipv6 neighbor $5 flap-statistics"</command>
+                  </leafNode>
+                  <leafNode name="prefix-counts">
+                    <properties>
+                      <help>Show detailed prefix count information for BGP neighbor</help>
+                    </properties>
+                    <command>vtysh -c "show bgp ipv6 neighbor $5 prefix-counts"</command>
+                  </leafNode>
+                  <node name="received">
+                    <properties>
+                      <help>Show information received from BGP neighbor</help>
+                    </properties>
+                    <children>
+                      <leafNode name="prefix-filter">
+                        <properties>
+                          <help>Show prefixlist filter</help>
+                        </properties>
+                        <command>vtysh -c "show bgp ipv6 neighbor $5 received prefix-filter"</command>
+                      </leafNode>
+                    </children>
+                  </node>
+                  <leafNode name="received-routes">
+                    <properties>
+                      <help>Show received routes from BGP neighbor</help>
+                    </properties>
+                    <command>vtysh -c "show bgp ipv6 neighbor $5 received-routes"</command>
+                  </leafNode>
+                  <leafNode name="routes">
+                    <properties>
+                      <help>Show routes learned from BGP neighbor</help>
+                    </properties>
+                    <command>vtysh -c "show bgp ipv6 neighbor $5 routes"</command>
+                  </leafNode>
+                </children>
+              </tagNode>
+              <tagNode name="large-community">
+                <properties>
+                  <help>Show routes matching the large-community-list number or name</help>
+                </properties>
+                <command>vtysh -c "show bgp ipv6 large-community-list $5"</command>
+                <children>
+                  <node name="exact-match">
+                    <properties>
+                      <help>Show routes matching the large-community-list number or name</help>
+                    </properties>
+                    <command>vtysh -c "show bgp ipv6 large-community-list $5 exact-match"</command>
+                  </node>
+                </children>
+              </tagNode>
+              <tagNode name="large-community-list">
+                <properties>
+                  <help>Show routes matching the large-community-list number or name</help>
+                </properties>
+                <command>vtysh -c "show bgp ipv6 large-community-list $5"</command>
+                <children>
+                  <node name="exact-match">
+                    <properties>
+                      <help>Show routes matching the large-community-list number or name</help>
+                    </properties>
+                    <command>vtysh -c "show bgp ipv6 large-community-list $5 exact-match"</command>
+                  </node>
+                </children>
+              </tagNode>
+              <tagNode name="filter-list">
+                <properties>
+                  <help>Show routes conforming to regular expression access list name</help>
+                </properties>
+                <command>vtysh -c "show bgp ipv6 filter-list $5"</command>
+              </tagNode>
+              <tagNode name="community">
+                <properties>
+                  <help>Show BGP information for specified community number</help>
+                  <completionHelp>
+                    <list>&lt;AA:NN&gt; local-AS no-advertise no-export</list>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "show bgp ipv6 community $5"</command>
+                <children>
+                  <node name="exact-match">
+                    <properties>
+                      <help>Show routes from community that exactly matches the community number</help>
+                    </properties>
+                    <command>vtysh -c "show bgp ipv6 community $5 exact-match"</command>
+                  </node>
+                </children>
+              </tagNode>
+              <tagNode name="community-list">
+                <properties>
+                  <help>Show routes matching the community-list number or name</help>
+                </properties>
+                <command>vtysh -c "show bgp ipv6 community-list $5"</command>
+                <children>
+                  <node name="exact-match">
+                    <properties>
+                      <help>Show routes exactly matching the community-list name or number</help>
+                    </properties>
+                    <command>vtysh -c "show bgp ipv6 community-list $5 exact-match"</command>
+                  </node>
+                </children>
+              </tagNode>
+              <tagNode name="route-map">
+                <properties>
+                  <help>Show BGP routes matching the specified route map</help>
+                  <completionHelp>
+                    <path>policy route-map</path>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "show bgp ipv6 route-map $5"</command>
+              </tagNode>
+            </children>
+          </node>
+          <tagNode name="bgp">
+            <properties>
+              <help>Show BGP information for specified IP address or prefix</help>
+              <completionHelp>
+                <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>vtysh -c "show bgp ipv6 $4"</command>
+            <children>
+              <node name="longer-prefixes">
+                <properties>
+                  <help>Show route and more specific routes</help>
+                  <completionHelp>
+                    <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "show bgp ipv6 $4 longer-prefixes"</command>
+              </node>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ipv6-ospfv3.xml b/op-mode-definitions/show-ipv6-ospfv3.xml
deleted file mode 100644
index 36bb5b40e..000000000
--- a/op-mode-definitions/show-ipv6-ospfv3.xml
+++ /dev/null
@@ -1,777 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ipv6">
-        <properties>
-          <help>Show IPv6 routing information</help>
-        </properties>
-        <children>
-          <node name="ospfv3">
-            <properties>
-              <help>Show IPv6 Open Shortest Path First (OSPF)</help>
-            </properties>
-            <command>vtysh -c "show ipv6 ospf6"</command>
-            <children>
-              <node name="area">
-                <properties>
-                  <help>Show Shortest Path First tree information</help>
-                </properties>
-                <command>vtysh -c "show ipv6 ospf6 spf tree"</command>
-              </node>
-              <tagNode name="area">
-                <properties>
-                  <help>Area ID (as an IPv4 notation)</help>
-                  <completionHelp>
-                    <path>protocols ospfv3 area</path>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "show ipv6 ospf6 area $4 spf tree"</command>
-                <children>
-                  <tagNode name="router">
-                    <properties>
-                      <help> Simulate view point (Router ID)</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 simulate spf-tree $7 $4 $5"</command>
-                  </tagNode>
-                </children>
-              </tagNode>
-              <node name="border-routers">
-                <properties>
-                  <help>Show OSPFv3 border-router (ABR and ASBR) information</help>
-                </properties>
-                <command>vtysh -c "show ipv6 ospf6 border-routers"</command>
-                <children>
-                  <node name="detail">
-                    <properties>
-                      <help>Show OSPFv3 detailed border-router information</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 border-routers detail"</command>
-                  </node>
-                </children>
-              </node>
-              <tagNode name="border-routers">
-                <properties>
-                  <help>Border router ID</help>
-                  <completionHelp>
-                    <list>&lt;x.x.x.x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "show ipv6 ospf6 border-routers $5"</command>
-              </tagNode>
-              <node name="database">
-                <properties>
-                  <help>Show OSPFv3 Link state database information</help>
-                </properties>
-                <command>vtysh -c "show ipv6 ospf6 database"</command>
-                <children>
-                  <tagNode name="adv-router">
-                    <properties>
-                      <help>Search by Advertising Router ID</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <children>
-                      <tagNode name="linkstate-id">
-                        <properties>
-                          <help>Search by Link state ID</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <children>
-                          <node name="detail">
-                            <properties>
-                              <help>Show details of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database adv-router $6 linkstate-id $8 detail"</command>
-                          </node>
-                          <node name="dump">
-                            <properties>
-                              <help>Show dump of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database adv-router $6 linkstate-id $8 dump"</command>
-                          </node>
-                          <node name="internal">
-                            <properties>
-                              <help>Show LSAs internal information</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database adv-router $6 linkstate-id $8 internal"</command>
-                          </node>
-                        </children>
-                      </tagNode>
-                    </children>
-                  </tagNode>
-                  <node name="any">
-                    <properties>
-                      <help>Search by Any Link state Type</help>
-                    </properties>
-                    <children>
-                      <tagNode name="any">
-                        <properties>
-                          <help>Search by Link state ID</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <children>
-                          <node name="detail">
-                            <properties>
-                              <help>Show details of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database * * $7 detail"</command>
-                          </node>
-                          <node name="dump">
-                            <properties>
-                              <help>Show dump of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database * * $7 dump"</command>
-                          </node>
-                          <node name="internal">
-                            <properties>
-                              <help>Show LSAs internal information</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database * * $7 internal"</command>
-                          </node>
-                        </children>
-                      </tagNode>
-                    </children>
-                  </node>
-                  <tagNode name="any">
-                    <properties>
-                      <help>Search by Link state ID</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 database * $6"</command>
-                    <children>
-                      <node name="detail">
-                        <properties>
-                          <help>Show details of LSAs</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database * $6 detail"</command>
-                      </node>
-                      <node name="dump">
-                        <properties>
-                          <help>Show dump of LSAs</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database * $6 dump"</command>
-                      </node>
-                      <node name="internal">
-                        <properties>
-                          <help>Show LSAs internal information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database * $6 internal"</command>
-                      </node>
-                      <node name="node.tag">
-                        <properties>
-                          <help>Search by Advertising Router ID</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database * $6 $7"</command>
-                        <children>
-                          <node name="detail">
-                            <properties>
-                              <help>Show details of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database * $6 $7 detail"</command>
-                          </node>
-                          <node name="dump">
-                            <properties>
-                              <help>Show dump of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database * $6 $7 dump"</command>
-                          </node>
-                          <node name="internal">
-                            <properties>
-                              <help>Show LSAs internal information</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database * $6 $7 internal"</command>
-                          </node>
-                        </children>
-                      </node>
-                    </children>
-                  </tagNode>
-
-
-
-
-
-                  <node name="as-external">
-                    <properties>
-                      <help>Show AS-External LSAs</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 database as-external"</command>
-                    <children>
-                      <tagNode name="adv-router">
-                        <properties>
-                          <help>Search by Advertising Router ID</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <children>
-                          <tagNode name="linkstate-id">
-                            <properties>
-                              <help>Search by Link state ID</help>
-                              <completionHelp>
-                                <list>&lt;x.x.x.x&gt;</list>
-                              </completionHelp>
-                            </properties>
-                            <children>
-                              <node name="dump">
-                                <properties>
-                                  <help>Show dump of LSAs</help>
-                                </properties>
-                                <command>vtysh -c "show ipv6 ospf6 database as-external adv-router $7 linkstate-id $9 dump"</command>
-                              </node>
-                              <node name="internal">
-                                <properties>
-                                  <help>Show LSAs internal information</help>
-                                </properties>
-                                <command>vtysh -c "show ipv6 ospf6 database as-external adv-router $7 linkstate-id $9 internal"</command>
-                              </node>
-                            </children>
-                          </tagNode>
-                        </children>
-                      </tagNode>
-                      <tagNode name="any">
-                        <properties>
-                          <help>Search by Advertising Router ID</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database as-external * $7"</command>
-                        <children>
-                          <node name="detail">
-                            <properties>
-                              <help>Show details of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database as-external * $7 detail"</command>
-                          </node>
-                          <node name="dump">
-                            <properties>
-                              <help>Show dump of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database as-external * $7 dump"</command>
-                          </node>
-                          <node name="internal">
-                            <properties>
-                              <help>Show LSAs internal information</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database as-external * $7 internal"</command>
-                          </node>
-                        </children>
-                      </tagNode>
-                      <node name="detail">
-                        <properties>
-                          <help>Show details of LSAs</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database as-external detail"</command>
-                      </node>
-                      <node name="dump">
-                        <properties>
-                          <help>Show dump of LSAs</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database as-external dump"</command>
-                      </node>
-                      <node name="internal">
-                        <properties>
-                          <help>Show LSAs internal information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database as-external internal"</command>
-                      </node>
-                      <tagNode name="linkstate-id">
-                        <properties>
-                          <help>Search by Link state ID</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <children>
-                          <node name="detail">
-                            <properties>
-                              <help>Show details of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database as-external linkstate-id $7 detail"</command>
-                          </node>
-                          <node name="dump">
-                            <properties>
-                              <help>Show dump of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database as-external linkstate-id $7 dump"</command>
-                          </node>
-                          <node name="internal">
-                            <properties>
-                              <help>Show LSAs internal information</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database as-external linkstate-id $7 internal"</command>
-                          </node>
-                        </children>
-                      </tagNode>
-                      <node name="self-originated">
-                        <properties>
-                          <help>Show Self-originated LSAs</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database as-external self-originated"</command>
-                        <children>
-                          <node name="detail">
-                            <properties>
-                              <help>Show details of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database as-external self-originated detail"</command>
-                          </node>
-                          <node name="dump">
-                            <properties>
-                              <help>Show dump of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database as-external self-originated dump"</command>
-                          </node>
-                          <node name="internal">
-                            <properties>
-                              <help>Show LSAs internal information</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database as-external self-originated internal"</command>
-                          </node>
-                          <tagNode name="linkstate-id">
-                            <properties>
-                              <help>Search by Link state ID</help>
-                              <completionHelp>
-                                <list>&lt;x.x.x.x&gt;</list>
-                              </completionHelp>
-                            </properties>
-                            <children>
-                              <node name="detail">
-                                <properties>
-                                  <help>Show details of LSAs</help>
-                                </properties>
-                                <command>vtysh -c "show ipv6 ospf6 database as-external self-originated linkstate-id $8 detail"</command>
-                              </node>
-                              <node name="dump">
-                                <properties>
-                                  <help>Show dump of LSAs</help>
-                                </properties>
-                                <command>vtysh -c "show ipv6 ospf6 database as-external self-originated linkstate-id $8 dump"</command>
-                              </node>
-                              <node name="internal">
-                                <properties>
-                                  <help>Show LSAs internal information</help>
-                                </properties>
-                                <command>vtysh -c "show ipv6 ospf6 database as-external self-originated linkstate-id $8 internal"</command>
-                              </node>
-                            </children>
-                          </tagNode>
-                        </children>
-                      </node>
-                    </children>
-                  </node>
-                  <tagNode name="as-external">
-                    <properties>
-                      <help>Search by Advertising Router IDs</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <children>
-                      <node name="detail">
-                        <properties>
-                          <help>Show details of LSAs</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database as-external $6 detail"</command>
-                      </node>
-                      <node name="dump">
-                        <properties>
-                          <help>Show dump of LSAs</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database as-external $6 dump"</command>
-                      </node>
-                      <node name="internal">
-                        <properties>
-                          <help>Show LSAs internal information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database as-external $6 internal"</command>
-                      </node>
-                      <node name="self-originated">
-                        <properties>
-                          <help>Show Self-originated LSAs</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database as-external $6 self-originated"</command>
-                        <children>
-                          <node name="detail">
-                            <properties>
-                              <help>Show details of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database as-external $6 self-originated detail"</command>
-                          </node>
-                          <node name="dump">
-                            <properties>
-                              <help>Show dump of LSAs</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database as-external $6 self-originated dump"</command>
-                          </node>
-                          <node name="internal">
-                            <properties>
-                              <help>Show LSAs internal information</help>
-                            </properties>
-                            <command>vtysh -c "show ipv6 ospf6 database as-external $6 self-originated internal"</command>
-                          </node>
-                        </children>
-                      </node>
-                      <node name="node.tag">
-                        <properties>
-                          <help>Search by Advertising Router ID</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt;</list>
-                          </completionHelp>
-                        </properties>
-                        <children>
-                          <node name="dump">
-                            <properties>
-                              <help>Show dump of LSAs</help>
-                            </properties>
-                            <command>echo vtysh -c "show ipv6 ospf6 database as-external $6 $7 dump"</command>
-                          </node>
-                          <node name="internal">
-                            <properties>
-                              <help>Show LSAs internal information</help>
-                            </properties>
-                            <command>echo vtysh -c "show ipv6 ospf6 database as-external $6 $7 internal"</command>
-                          </node>
-                        </children>
-                      </node>
-                    </children>
-                  </tagNode>
-                  <node name="detail">
-                    <properties>
-                      <help>Show details of LSAs</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 database detail"</command>
-                  </node>
-                  <node name="dump">
-                    <properties>
-                      <help>Show dump of LSAs</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 database dump"</command>
-                  </node>
-                  <tagNode name="linkstate-id">
-                    <properties>
-                      <help>Search by Link state ID</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <children>
-                      <node name="detail">
-                        <properties>
-                          <help>Show details of LSAs</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database linkstate-id $6 detail"</command>
-                      </node>
-                      <node name="dump">
-                        <properties>
-                          <help>Show dump of LSAs</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database linkstate-id $6 dump"</command>
-                      </node>
-                      <node name="internal">
-                        <properties>
-                          <help>Show LSAs internal information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database linkstate-id $6 internal"</command>
-                      </node>
-                    </children>
-                  </tagNode>
-                  <node name="self-originated">
-                    <properties>
-                      <help>Show Self-originated LSAs</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 database self-originated"</command>
-                    <children>
-                      <node name="detail">
-                        <properties>
-                          <help>Show details of LSAs</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database self-originated detail"</command>
-                      </node>
-                      <node name="dump">
-                        <properties>
-                          <help>Show dump of LSAs</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database self-originated dump"</command>
-                      </node>
-                      <node name="internal">
-                        <properties>
-                          <help>Show LSAs internal information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 database self-originated internal"</command>
-                      </node>
-                    </children>
-                  </node>
-                </children>
-              </node>
-              <node name="interface">
-                <properties>
-                  <help>Show OSPFv3 interface information</help>
-                </properties>
-                <command>vtysh -c "show ipv6 ospf6 interface"</command>
-                <children>
-                  <node name="prefix">
-                    <properties>
-                      <help>Show connected prefixes to advertise</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 interface prefix"</command>
-                    <children>
-                      <node name="detail">
-                        <properties>
-                          <help>More detailed interface prefix information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 interface prefix detail"</command>
-                      </node>
-                    </children>
-                  </node>
-                  <tagNode name="prefix">
-                    <properties>
-                      <help>Show interface prefix route specific information</help>
-                      <completionHelp>
-                        <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 interface prefix $6"</command>
-                    <children>
-                      <node name="detail">
-                        <properties>
-                          <help>More detailed information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 interface prefix $6 detail"</command>
-                      </node>
-                      <node name="match">
-                        <properties>
-                          <help>Matched interface prefix information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 interface prefix $6 match"</command>
-                      </node>
-                    </children>
-                  </tagNode>
-                </children>
-              </node>
-              <tagNode name="interface">
-                <properties>
-                  <help>Specific insterface to examine</help>
-                  <completionHelp>
-                    <script>${vyos_completion_dir}/list_interfaces.py</script>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "show ipv6 ospf6 interface $5"</command>
-                <children>
-                  <node name="prefix">
-                    <properties>
-                      <help>Show connected prefixes to advertise</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 interface $5 prefix"</command>
-                    <children>
-                      <node name="detail">
-                        <properties>
-                          <help>More detailed interface prefix information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 interface $5 prefix detail"</command>
-                      </node>
-                    </children>
-                  </node>
-                  <tagNode name="prefix">
-                    <properties>
-                      <help>Show interface prefix route specific information</help>
-                      <completionHelp>
-                        <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
-                      </completionHelp>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 interface $5 prefix $7"</command>
-                    <children>
-                      <node name="detail">
-                        <properties>
-                          <help>More detailed information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 interface $5 prefix $7 detail"</command>
-                      </node>
-                      <node name="match">
-                        <properties>
-                          <help>Matched interface prefix information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 interface $5 prefix $7 match"</command>
-                      </node>
-                    </children>
-                  </tagNode>
-                </children>
-              </tagNode>
-              <node name="linkstate">
-                <properties>
-                  <help>Show OSPFv3 linkstate routing information</help>
-                </properties>
-                <children>
-                  <node name="detail">
-                    <properties>
-                      <help>Show detailed linkstate information</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 linkstate detail"</command>
-                  </node>
-                  <node name="network">
-                    <properties>
-                      <help>Show linkstate Network information</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 linkstate network"</command>
-                  </node>
-                  <node name="router">
-                    <properties>
-                      <help>Show linkstate Router information</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 linkstate router"</command>
-                  </node>
-                </children>
-              </node>
-              <node name="neighbor">
-                <properties>
-                  <help>Show OSPFv3 neighbor information</help>
-                </properties>
-                <command>vtysh -c "show ipv6 ospf6 neighbor"</command>
-                <children>
-                  <node name="detail">
-                    <properties>
-                      <help>Show detailed neighbor information</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 neighbor detail"</command>
-                  </node>
-                  <node name="drchoice">
-                    <properties>
-                      <help>Show neighbor DR choice information</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 neighbor drchoice"</command>
-                  </node>
-                </children>
-              </node>
-              <node name="redistribute">
-                <properties>
-                  <help>Show OSPFv3 redistribute external information</help>
-                </properties>
-                <command>vtysh -c "show ipv6 ospf6 redistribute"</command>
-              </node>
-              <node name="route">
-                <properties>
-                  <help>Show OSPFv3 routing table information</help>
-                </properties>
-                <command>vtysh -c "show ipv6 ospf6 route"</command>
-                <children>
-                  <node name="external-1">
-                    <properties>
-                      <help>Show Type-1 External route information</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 route external-1"</command>
-                    <children>
-                      <node name="detail">
-                        <properties>
-                          <help>Show detailed Type-1 External route information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 route external-1 detail"</command>
-                      </node>
-                    </children>
-                  </node>
-                  <node name="external-2">
-                    <properties>
-                      <help>Show Type-2 External route information</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 route external-2"</command>
-                    <children>
-                      <node name="detail">
-                        <properties>
-                          <help>Show detailed Type-2 External route information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 route external-2 detail"</command>
-                      </node>
-                    </children>
-                  </node>
-                  <node name="inter-area">
-                    <properties>
-                      <help>Show Inter-Area route information</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 route inter-area"</command>
-                    <children>
-                      <node name="detail">
-                        <properties>
-                          <help>Show detailed Inter-Area route information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 route inter-area detail"</command>
-                      </node>
-                    </children>
-                  </node>
-                  <node name="intra-area">
-                    <properties>
-                      <help>Show Intra-Area route information</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 route intra-area"</command>
-                    <children>
-                      <node name="detail">
-                        <properties>
-                          <help>Show detailed Intra-Area route information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 route intra-area detail"</command>
-                      </node>
-                    </children>
-                  </node>
-                  <node name="detail">
-                    <properties>
-                      <help>Show detailed route information</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 route detail"</command>
-                  </node>
-                  <node name="summary">
-                    <properties>
-                      <help>Show route table summary</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 route summary"</command>
-                  </node>
-                </children>
-              </node>
-              <tagNode name="route">
-                <properties>
-                  <help>Show specified route/prefix information</help>
-                  <completionHelp>
-                    <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "show ipv6 ospf6 route $5"</command>
-                <children>
-                  <node name="longer">
-                    <properties>
-                      <help>Show routes longer than specified prefix</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 route $5 longer"</command>
-                  </node>
-                  <node name="match">
-                    <properties>
-                      <help>Show routes matching specified prefix</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 ospf6 route $5 match"</command>
-                    <children>
-                      <node name="detail">
-                        <properties>
-                          <help>Detailed information</help>
-                        </properties>
-                        <command>vtysh -c "show ipv6 ospf6 route $5 match detail"</command>
-                      </node>
-                    </children>
-                  </node>
-                </children>
-              </tagNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ipv6-ospfv3.xml.in b/op-mode-definitions/show-ipv6-ospfv3.xml.in
new file mode 100644
index 000000000..36bb5b40e
--- /dev/null
+++ b/op-mode-definitions/show-ipv6-ospfv3.xml.in
@@ -0,0 +1,777 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ipv6">
+        <properties>
+          <help>Show IPv6 routing information</help>
+        </properties>
+        <children>
+          <node name="ospfv3">
+            <properties>
+              <help>Show IPv6 Open Shortest Path First (OSPF)</help>
+            </properties>
+            <command>vtysh -c "show ipv6 ospf6"</command>
+            <children>
+              <node name="area">
+                <properties>
+                  <help>Show Shortest Path First tree information</help>
+                </properties>
+                <command>vtysh -c "show ipv6 ospf6 spf tree"</command>
+              </node>
+              <tagNode name="area">
+                <properties>
+                  <help>Area ID (as an IPv4 notation)</help>
+                  <completionHelp>
+                    <path>protocols ospfv3 area</path>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "show ipv6 ospf6 area $4 spf tree"</command>
+                <children>
+                  <tagNode name="router">
+                    <properties>
+                      <help> Simulate view point (Router ID)</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 simulate spf-tree $7 $4 $5"</command>
+                  </tagNode>
+                </children>
+              </tagNode>
+              <node name="border-routers">
+                <properties>
+                  <help>Show OSPFv3 border-router (ABR and ASBR) information</help>
+                </properties>
+                <command>vtysh -c "show ipv6 ospf6 border-routers"</command>
+                <children>
+                  <node name="detail">
+                    <properties>
+                      <help>Show OSPFv3 detailed border-router information</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 border-routers detail"</command>
+                  </node>
+                </children>
+              </node>
+              <tagNode name="border-routers">
+                <properties>
+                  <help>Border router ID</help>
+                  <completionHelp>
+                    <list>&lt;x.x.x.x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "show ipv6 ospf6 border-routers $5"</command>
+              </tagNode>
+              <node name="database">
+                <properties>
+                  <help>Show OSPFv3 Link state database information</help>
+                </properties>
+                <command>vtysh -c "show ipv6 ospf6 database"</command>
+                <children>
+                  <tagNode name="adv-router">
+                    <properties>
+                      <help>Search by Advertising Router ID</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <children>
+                      <tagNode name="linkstate-id">
+                        <properties>
+                          <help>Search by Link state ID</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <children>
+                          <node name="detail">
+                            <properties>
+                              <help>Show details of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database adv-router $6 linkstate-id $8 detail"</command>
+                          </node>
+                          <node name="dump">
+                            <properties>
+                              <help>Show dump of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database adv-router $6 linkstate-id $8 dump"</command>
+                          </node>
+                          <node name="internal">
+                            <properties>
+                              <help>Show LSAs internal information</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database adv-router $6 linkstate-id $8 internal"</command>
+                          </node>
+                        </children>
+                      </tagNode>
+                    </children>
+                  </tagNode>
+                  <node name="any">
+                    <properties>
+                      <help>Search by Any Link state Type</help>
+                    </properties>
+                    <children>
+                      <tagNode name="any">
+                        <properties>
+                          <help>Search by Link state ID</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <children>
+                          <node name="detail">
+                            <properties>
+                              <help>Show details of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database * * $7 detail"</command>
+                          </node>
+                          <node name="dump">
+                            <properties>
+                              <help>Show dump of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database * * $7 dump"</command>
+                          </node>
+                          <node name="internal">
+                            <properties>
+                              <help>Show LSAs internal information</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database * * $7 internal"</command>
+                          </node>
+                        </children>
+                      </tagNode>
+                    </children>
+                  </node>
+                  <tagNode name="any">
+                    <properties>
+                      <help>Search by Link state ID</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 database * $6"</command>
+                    <children>
+                      <node name="detail">
+                        <properties>
+                          <help>Show details of LSAs</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database * $6 detail"</command>
+                      </node>
+                      <node name="dump">
+                        <properties>
+                          <help>Show dump of LSAs</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database * $6 dump"</command>
+                      </node>
+                      <node name="internal">
+                        <properties>
+                          <help>Show LSAs internal information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database * $6 internal"</command>
+                      </node>
+                      <node name="node.tag">
+                        <properties>
+                          <help>Search by Advertising Router ID</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database * $6 $7"</command>
+                        <children>
+                          <node name="detail">
+                            <properties>
+                              <help>Show details of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database * $6 $7 detail"</command>
+                          </node>
+                          <node name="dump">
+                            <properties>
+                              <help>Show dump of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database * $6 $7 dump"</command>
+                          </node>
+                          <node name="internal">
+                            <properties>
+                              <help>Show LSAs internal information</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database * $6 $7 internal"</command>
+                          </node>
+                        </children>
+                      </node>
+                    </children>
+                  </tagNode>
+
+
+
+
+
+                  <node name="as-external">
+                    <properties>
+                      <help>Show AS-External LSAs</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 database as-external"</command>
+                    <children>
+                      <tagNode name="adv-router">
+                        <properties>
+                          <help>Search by Advertising Router ID</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <children>
+                          <tagNode name="linkstate-id">
+                            <properties>
+                              <help>Search by Link state ID</help>
+                              <completionHelp>
+                                <list>&lt;x.x.x.x&gt;</list>
+                              </completionHelp>
+                            </properties>
+                            <children>
+                              <node name="dump">
+                                <properties>
+                                  <help>Show dump of LSAs</help>
+                                </properties>
+                                <command>vtysh -c "show ipv6 ospf6 database as-external adv-router $7 linkstate-id $9 dump"</command>
+                              </node>
+                              <node name="internal">
+                                <properties>
+                                  <help>Show LSAs internal information</help>
+                                </properties>
+                                <command>vtysh -c "show ipv6 ospf6 database as-external adv-router $7 linkstate-id $9 internal"</command>
+                              </node>
+                            </children>
+                          </tagNode>
+                        </children>
+                      </tagNode>
+                      <tagNode name="any">
+                        <properties>
+                          <help>Search by Advertising Router ID</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database as-external * $7"</command>
+                        <children>
+                          <node name="detail">
+                            <properties>
+                              <help>Show details of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database as-external * $7 detail"</command>
+                          </node>
+                          <node name="dump">
+                            <properties>
+                              <help>Show dump of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database as-external * $7 dump"</command>
+                          </node>
+                          <node name="internal">
+                            <properties>
+                              <help>Show LSAs internal information</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database as-external * $7 internal"</command>
+                          </node>
+                        </children>
+                      </tagNode>
+                      <node name="detail">
+                        <properties>
+                          <help>Show details of LSAs</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database as-external detail"</command>
+                      </node>
+                      <node name="dump">
+                        <properties>
+                          <help>Show dump of LSAs</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database as-external dump"</command>
+                      </node>
+                      <node name="internal">
+                        <properties>
+                          <help>Show LSAs internal information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database as-external internal"</command>
+                      </node>
+                      <tagNode name="linkstate-id">
+                        <properties>
+                          <help>Search by Link state ID</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <children>
+                          <node name="detail">
+                            <properties>
+                              <help>Show details of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database as-external linkstate-id $7 detail"</command>
+                          </node>
+                          <node name="dump">
+                            <properties>
+                              <help>Show dump of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database as-external linkstate-id $7 dump"</command>
+                          </node>
+                          <node name="internal">
+                            <properties>
+                              <help>Show LSAs internal information</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database as-external linkstate-id $7 internal"</command>
+                          </node>
+                        </children>
+                      </tagNode>
+                      <node name="self-originated">
+                        <properties>
+                          <help>Show Self-originated LSAs</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database as-external self-originated"</command>
+                        <children>
+                          <node name="detail">
+                            <properties>
+                              <help>Show details of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database as-external self-originated detail"</command>
+                          </node>
+                          <node name="dump">
+                            <properties>
+                              <help>Show dump of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database as-external self-originated dump"</command>
+                          </node>
+                          <node name="internal">
+                            <properties>
+                              <help>Show LSAs internal information</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database as-external self-originated internal"</command>
+                          </node>
+                          <tagNode name="linkstate-id">
+                            <properties>
+                              <help>Search by Link state ID</help>
+                              <completionHelp>
+                                <list>&lt;x.x.x.x&gt;</list>
+                              </completionHelp>
+                            </properties>
+                            <children>
+                              <node name="detail">
+                                <properties>
+                                  <help>Show details of LSAs</help>
+                                </properties>
+                                <command>vtysh -c "show ipv6 ospf6 database as-external self-originated linkstate-id $8 detail"</command>
+                              </node>
+                              <node name="dump">
+                                <properties>
+                                  <help>Show dump of LSAs</help>
+                                </properties>
+                                <command>vtysh -c "show ipv6 ospf6 database as-external self-originated linkstate-id $8 dump"</command>
+                              </node>
+                              <node name="internal">
+                                <properties>
+                                  <help>Show LSAs internal information</help>
+                                </properties>
+                                <command>vtysh -c "show ipv6 ospf6 database as-external self-originated linkstate-id $8 internal"</command>
+                              </node>
+                            </children>
+                          </tagNode>
+                        </children>
+                      </node>
+                    </children>
+                  </node>
+                  <tagNode name="as-external">
+                    <properties>
+                      <help>Search by Advertising Router IDs</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <children>
+                      <node name="detail">
+                        <properties>
+                          <help>Show details of LSAs</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database as-external $6 detail"</command>
+                      </node>
+                      <node name="dump">
+                        <properties>
+                          <help>Show dump of LSAs</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database as-external $6 dump"</command>
+                      </node>
+                      <node name="internal">
+                        <properties>
+                          <help>Show LSAs internal information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database as-external $6 internal"</command>
+                      </node>
+                      <node name="self-originated">
+                        <properties>
+                          <help>Show Self-originated LSAs</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database as-external $6 self-originated"</command>
+                        <children>
+                          <node name="detail">
+                            <properties>
+                              <help>Show details of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database as-external $6 self-originated detail"</command>
+                          </node>
+                          <node name="dump">
+                            <properties>
+                              <help>Show dump of LSAs</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database as-external $6 self-originated dump"</command>
+                          </node>
+                          <node name="internal">
+                            <properties>
+                              <help>Show LSAs internal information</help>
+                            </properties>
+                            <command>vtysh -c "show ipv6 ospf6 database as-external $6 self-originated internal"</command>
+                          </node>
+                        </children>
+                      </node>
+                      <node name="node.tag">
+                        <properties>
+                          <help>Search by Advertising Router ID</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt;</list>
+                          </completionHelp>
+                        </properties>
+                        <children>
+                          <node name="dump">
+                            <properties>
+                              <help>Show dump of LSAs</help>
+                            </properties>
+                            <command>echo vtysh -c "show ipv6 ospf6 database as-external $6 $7 dump"</command>
+                          </node>
+                          <node name="internal">
+                            <properties>
+                              <help>Show LSAs internal information</help>
+                            </properties>
+                            <command>echo vtysh -c "show ipv6 ospf6 database as-external $6 $7 internal"</command>
+                          </node>
+                        </children>
+                      </node>
+                    </children>
+                  </tagNode>
+                  <node name="detail">
+                    <properties>
+                      <help>Show details of LSAs</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 database detail"</command>
+                  </node>
+                  <node name="dump">
+                    <properties>
+                      <help>Show dump of LSAs</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 database dump"</command>
+                  </node>
+                  <tagNode name="linkstate-id">
+                    <properties>
+                      <help>Search by Link state ID</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <children>
+                      <node name="detail">
+                        <properties>
+                          <help>Show details of LSAs</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database linkstate-id $6 detail"</command>
+                      </node>
+                      <node name="dump">
+                        <properties>
+                          <help>Show dump of LSAs</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database linkstate-id $6 dump"</command>
+                      </node>
+                      <node name="internal">
+                        <properties>
+                          <help>Show LSAs internal information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database linkstate-id $6 internal"</command>
+                      </node>
+                    </children>
+                  </tagNode>
+                  <node name="self-originated">
+                    <properties>
+                      <help>Show Self-originated LSAs</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 database self-originated"</command>
+                    <children>
+                      <node name="detail">
+                        <properties>
+                          <help>Show details of LSAs</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database self-originated detail"</command>
+                      </node>
+                      <node name="dump">
+                        <properties>
+                          <help>Show dump of LSAs</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database self-originated dump"</command>
+                      </node>
+                      <node name="internal">
+                        <properties>
+                          <help>Show LSAs internal information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 database self-originated internal"</command>
+                      </node>
+                    </children>
+                  </node>
+                </children>
+              </node>
+              <node name="interface">
+                <properties>
+                  <help>Show OSPFv3 interface information</help>
+                </properties>
+                <command>vtysh -c "show ipv6 ospf6 interface"</command>
+                <children>
+                  <node name="prefix">
+                    <properties>
+                      <help>Show connected prefixes to advertise</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 interface prefix"</command>
+                    <children>
+                      <node name="detail">
+                        <properties>
+                          <help>More detailed interface prefix information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 interface prefix detail"</command>
+                      </node>
+                    </children>
+                  </node>
+                  <tagNode name="prefix">
+                    <properties>
+                      <help>Show interface prefix route specific information</help>
+                      <completionHelp>
+                        <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 interface prefix $6"</command>
+                    <children>
+                      <node name="detail">
+                        <properties>
+                          <help>More detailed information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 interface prefix $6 detail"</command>
+                      </node>
+                      <node name="match">
+                        <properties>
+                          <help>Matched interface prefix information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 interface prefix $6 match"</command>
+                      </node>
+                    </children>
+                  </tagNode>
+                </children>
+              </node>
+              <tagNode name="interface">
+                <properties>
+                  <help>Specific insterface to examine</help>
+                  <completionHelp>
+                    <script>${vyos_completion_dir}/list_interfaces.py</script>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "show ipv6 ospf6 interface $5"</command>
+                <children>
+                  <node name="prefix">
+                    <properties>
+                      <help>Show connected prefixes to advertise</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 interface $5 prefix"</command>
+                    <children>
+                      <node name="detail">
+                        <properties>
+                          <help>More detailed interface prefix information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 interface $5 prefix detail"</command>
+                      </node>
+                    </children>
+                  </node>
+                  <tagNode name="prefix">
+                    <properties>
+                      <help>Show interface prefix route specific information</help>
+                      <completionHelp>
+                        <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
+                      </completionHelp>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 interface $5 prefix $7"</command>
+                    <children>
+                      <node name="detail">
+                        <properties>
+                          <help>More detailed information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 interface $5 prefix $7 detail"</command>
+                      </node>
+                      <node name="match">
+                        <properties>
+                          <help>Matched interface prefix information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 interface $5 prefix $7 match"</command>
+                      </node>
+                    </children>
+                  </tagNode>
+                </children>
+              </tagNode>
+              <node name="linkstate">
+                <properties>
+                  <help>Show OSPFv3 linkstate routing information</help>
+                </properties>
+                <children>
+                  <node name="detail">
+                    <properties>
+                      <help>Show detailed linkstate information</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 linkstate detail"</command>
+                  </node>
+                  <node name="network">
+                    <properties>
+                      <help>Show linkstate Network information</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 linkstate network"</command>
+                  </node>
+                  <node name="router">
+                    <properties>
+                      <help>Show linkstate Router information</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 linkstate router"</command>
+                  </node>
+                </children>
+              </node>
+              <node name="neighbor">
+                <properties>
+                  <help>Show OSPFv3 neighbor information</help>
+                </properties>
+                <command>vtysh -c "show ipv6 ospf6 neighbor"</command>
+                <children>
+                  <node name="detail">
+                    <properties>
+                      <help>Show detailed neighbor information</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 neighbor detail"</command>
+                  </node>
+                  <node name="drchoice">
+                    <properties>
+                      <help>Show neighbor DR choice information</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 neighbor drchoice"</command>
+                  </node>
+                </children>
+              </node>
+              <node name="redistribute">
+                <properties>
+                  <help>Show OSPFv3 redistribute external information</help>
+                </properties>
+                <command>vtysh -c "show ipv6 ospf6 redistribute"</command>
+              </node>
+              <node name="route">
+                <properties>
+                  <help>Show OSPFv3 routing table information</help>
+                </properties>
+                <command>vtysh -c "show ipv6 ospf6 route"</command>
+                <children>
+                  <node name="external-1">
+                    <properties>
+                      <help>Show Type-1 External route information</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 route external-1"</command>
+                    <children>
+                      <node name="detail">
+                        <properties>
+                          <help>Show detailed Type-1 External route information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 route external-1 detail"</command>
+                      </node>
+                    </children>
+                  </node>
+                  <node name="external-2">
+                    <properties>
+                      <help>Show Type-2 External route information</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 route external-2"</command>
+                    <children>
+                      <node name="detail">
+                        <properties>
+                          <help>Show detailed Type-2 External route information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 route external-2 detail"</command>
+                      </node>
+                    </children>
+                  </node>
+                  <node name="inter-area">
+                    <properties>
+                      <help>Show Inter-Area route information</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 route inter-area"</command>
+                    <children>
+                      <node name="detail">
+                        <properties>
+                          <help>Show detailed Inter-Area route information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 route inter-area detail"</command>
+                      </node>
+                    </children>
+                  </node>
+                  <node name="intra-area">
+                    <properties>
+                      <help>Show Intra-Area route information</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 route intra-area"</command>
+                    <children>
+                      <node name="detail">
+                        <properties>
+                          <help>Show detailed Intra-Area route information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 route intra-area detail"</command>
+                      </node>
+                    </children>
+                  </node>
+                  <node name="detail">
+                    <properties>
+                      <help>Show detailed route information</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 route detail"</command>
+                  </node>
+                  <node name="summary">
+                    <properties>
+                      <help>Show route table summary</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 route summary"</command>
+                  </node>
+                </children>
+              </node>
+              <tagNode name="route">
+                <properties>
+                  <help>Show specified route/prefix information</help>
+                  <completionHelp>
+                    <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "show ipv6 ospf6 route $5"</command>
+                <children>
+                  <node name="longer">
+                    <properties>
+                      <help>Show routes longer than specified prefix</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 route $5 longer"</command>
+                  </node>
+                  <node name="match">
+                    <properties>
+                      <help>Show routes matching specified prefix</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 ospf6 route $5 match"</command>
+                    <children>
+                      <node name="detail">
+                        <properties>
+                          <help>Detailed information</help>
+                        </properties>
+                        <command>vtysh -c "show ipv6 ospf6 route $5 match detail"</command>
+                      </node>
+                    </children>
+                  </node>
+                </children>
+              </tagNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ipv6-prefix-list.xml b/op-mode-definitions/show-ipv6-prefix-list.xml
deleted file mode 100644
index e003ad110..000000000
--- a/op-mode-definitions/show-ipv6-prefix-list.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ipv6">
-        <properties>
-          <help>Show IPv6 routing information</help>
-        </properties>
-        <children>
-          <node name="prefix-list">
-            <properties>
-              <help>Show IPv6 prefix-lists</help>
-            </properties>
-            <command>vtysh -c "show ipv6 prefix-list"</command>
-            <children>
-              <node name="detail">
-                <properties>
-                  <help>Show detail of IPv6 prefix-lists</help>
-                </properties>
-                <command>vtysh -c "show ipv6 prefix-list detail"</command>
-              </node>
-              <tagNode name="detail">
-                <properties>
-                  <help>Show detail of specified IPv6 prefix-list</help>
-                </properties>
-                <command>vtysh -c "show ipv6 prefix-list detail $5"</command>
-              </tagNode>
-              <node name="summary">
-                <properties>
-                  <help>Show summary of IPv6 prefix-lists</help>
-                </properties>
-                <command>vtysh -c "show ipv6 prefix-list summary"</command>
-              </node>
-              <tagNode name="summary">
-                <properties>
-                  <help>Show summary of specified IPv6 prefix-list</help>
-                </properties>
-                <command>vtysh -c "show ipv6 prefix-list summary $5"</command>
-              </tagNode>
-            </children>
-          </node>
-          <tagNode name="prefix-list">
-            <properties>
-              <help>Show specified IPv6 prefix-list</help>
-              <completionHelp>
-                <list>WORD</list>
-              </completionHelp>
-            </properties>
-            <command>vtysh -c "show ipv6 prefix-list $4"</command>
-            <children>
-              <node name="node.tag">
-                <properties>
-                  <help>Show select prefix of specified IPv6 prefix-list</help>
-                  <completionHelp>
-                    <list>&lt;h:h:h:h:h:h:h:h/x&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "show ipv6 prefix-list $4 $5"</command>
-                <children>
-                  <node name="first-match">
-                    <properties>
-                      <help>Show first-match from select prefix of named IPv6 prefix-list</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 prefix-list $4 $5 first-match"</command>
-                  </node>
-                  <node name="longer">
-                    <properties>
-                      <help>Show longer match of select prefix from named IPv6 prefix-list</help>
-                    </properties>
-                    <command>vtysh -c "show ipv6 prefix-list $4 $5 longer"</command>
-                  </node>
-                </children>
-              </node>
-              <node name="seq">
-                <properties>
-                  <help>Show specified sequence from specified IPv6 prefix-list</help>
-                </properties>
-                <command>vtysh -c "show ipv6 prefix-list $4 seq"</command>
-              </node>
-              <tagNode name="seq">
-                <properties>
-                  <help>Show specified sequence from specified IPv6 prefix-list</help>
-                </properties>
-                <command>vtysh -c "show ipv6 prefix-list $4 seq $6"</command>
-              </tagNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ipv6-prefix-list.xml.in b/op-mode-definitions/show-ipv6-prefix-list.xml.in
new file mode 100644
index 000000000..e003ad110
--- /dev/null
+++ b/op-mode-definitions/show-ipv6-prefix-list.xml.in
@@ -0,0 +1,92 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ipv6">
+        <properties>
+          <help>Show IPv6 routing information</help>
+        </properties>
+        <children>
+          <node name="prefix-list">
+            <properties>
+              <help>Show IPv6 prefix-lists</help>
+            </properties>
+            <command>vtysh -c "show ipv6 prefix-list"</command>
+            <children>
+              <node name="detail">
+                <properties>
+                  <help>Show detail of IPv6 prefix-lists</help>
+                </properties>
+                <command>vtysh -c "show ipv6 prefix-list detail"</command>
+              </node>
+              <tagNode name="detail">
+                <properties>
+                  <help>Show detail of specified IPv6 prefix-list</help>
+                </properties>
+                <command>vtysh -c "show ipv6 prefix-list detail $5"</command>
+              </tagNode>
+              <node name="summary">
+                <properties>
+                  <help>Show summary of IPv6 prefix-lists</help>
+                </properties>
+                <command>vtysh -c "show ipv6 prefix-list summary"</command>
+              </node>
+              <tagNode name="summary">
+                <properties>
+                  <help>Show summary of specified IPv6 prefix-list</help>
+                </properties>
+                <command>vtysh -c "show ipv6 prefix-list summary $5"</command>
+              </tagNode>
+            </children>
+          </node>
+          <tagNode name="prefix-list">
+            <properties>
+              <help>Show specified IPv6 prefix-list</help>
+              <completionHelp>
+                <list>WORD</list>
+              </completionHelp>
+            </properties>
+            <command>vtysh -c "show ipv6 prefix-list $4"</command>
+            <children>
+              <node name="node.tag">
+                <properties>
+                  <help>Show select prefix of specified IPv6 prefix-list</help>
+                  <completionHelp>
+                    <list>&lt;h:h:h:h:h:h:h:h/x&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "show ipv6 prefix-list $4 $5"</command>
+                <children>
+                  <node name="first-match">
+                    <properties>
+                      <help>Show first-match from select prefix of named IPv6 prefix-list</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 prefix-list $4 $5 first-match"</command>
+                  </node>
+                  <node name="longer">
+                    <properties>
+                      <help>Show longer match of select prefix from named IPv6 prefix-list</help>
+                    </properties>
+                    <command>vtysh -c "show ipv6 prefix-list $4 $5 longer"</command>
+                  </node>
+                </children>
+              </node>
+              <node name="seq">
+                <properties>
+                  <help>Show specified sequence from specified IPv6 prefix-list</help>
+                </properties>
+                <command>vtysh -c "show ipv6 prefix-list $4 seq"</command>
+              </node>
+              <tagNode name="seq">
+                <properties>
+                  <help>Show specified sequence from specified IPv6 prefix-list</help>
+                </properties>
+                <command>vtysh -c "show ipv6 prefix-list $4 seq $6"</command>
+              </tagNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ipv6-route.xml b/op-mode-definitions/show-ipv6-route.xml
deleted file mode 100644
index fafd615ea..000000000
--- a/op-mode-definitions/show-ipv6-route.xml
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ipv6">
-        <properties>
-          <help>Show IPv6 routing information</help>
-        </properties>
-        <children>
-          <tagNode name="route">
-            <properties>
-              <help>Show IPv6 routes of given address or prefix</help>
-              <completionHelp>
-                <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
-              </completionHelp>
-            </properties>
-            <children>
-              <node name="longer-prefixes">
-                <properties>
-                  <help>Show longer prefixes of routes for given address or prefix</help>
-                </properties>
-                <command>vtysh -c "show ipv6 route $4 longer-prefixes"</command>
-              </node>
-            </children>
-            <command>vtysh -c "show ipv6 route $4"</command>
-          </tagNode>
-          <node name="route">
-            <properties>
-              <help>Show IPv6 routes</help>
-            </properties>
-            <command>vtysh -c "show ipv6 route"</command>
-            <children>
-              <node name="bgp">
-                <properties>
-                  <help>Show IPv6 BGP routes</help>
-                </properties>
-                <command>vtysh -c "show ipv6 route bgp"</command>
-              </node>
-              <node name="connected">
-                <properties>
-                  <help>Show IPv6 connected routes</help>
-                </properties>
-                <command>vtysh -c "show ipv6 route connected"</command>
-              </node>
-              <node name="isis">
-                <properties>
-                  <help>Show IPv6 IS-IS routes</help>
-                </properties>
-                <command>vtysh -c "show ipv6 route isis"</command>
-              </node>
-              <node name="kernel">
-                <properties>
-                  <help>Show IPv6 Kernel routes</help>
-                </properties>
-                <command>vtysh -c "show ipv6 route kernel"</command>
-              </node>
-              <node name="ospfv3">
-                <properties>
-                  <help>Show IPv6 OSPF routes</help>
-                </properties>
-                <command>vtysh -c "show ipv6 route ospf6"</command>
-              </node>
-              <node name="ripng">
-                <properties>
-                  <help>Show IPv6 RIPNG routes</help>
-                </properties>
-                <command>vtysh -c "show ipv6 route ripng"</command>
-              </node>
-              <node name="static">
-                <properties>
-                  <help>Show IPv6 static routes</help>
-                </properties>
-                <command>vtysh -c "show ipv6 route static"</command>
-              </node>
-              <node name="summary">
-                <properties>
-                  <help>Show IPv6 routes summary</help>
-                </properties>
-                <command>vtysh -c "show ipv6 route summary"</command>
-              </node>
-              <node name="table">
-                <properties>
-                  <help>Show IPv6 routes in policy tables</help>
-                </properties>
-                <command>vtysh -c "show ipv6 route table all"</command>
-              </node>
-              <tagNode name="table">
-                <properties>
-                  <help>Show IPv6 routes in specific policy table</help>
-                  <completionHelp>
-                    <path>protocols static table</path>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "show ipv6 route table $5"</command>
-              </tagNode>
-              <node name="vrf">
-                <properties>
-                  <help>Show IPv6 routes in VRFs</help>
-                </properties>
-                <command>vtysh -c "show ipv6 route vrf all"</command>
-              </node>
-              <tagNode name="vrf">
-                <properties>
-                  <help>Show IPv6 routes in specific VRF</help>
-                  <completionHelp>
-                    <path>vrf name</path>
-                  </completionHelp>
-                </properties>
-                <command>vtysh -c "show ipv6 route vrf $5"</command>
-              </tagNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ipv6-route.xml.in b/op-mode-definitions/show-ipv6-route.xml.in
new file mode 100644
index 000000000..fafd615ea
--- /dev/null
+++ b/op-mode-definitions/show-ipv6-route.xml.in
@@ -0,0 +1,117 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ipv6">
+        <properties>
+          <help>Show IPv6 routing information</help>
+        </properties>
+        <children>
+          <tagNode name="route">
+            <properties>
+              <help>Show IPv6 routes of given address or prefix</help>
+              <completionHelp>
+                <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
+              </completionHelp>
+            </properties>
+            <children>
+              <node name="longer-prefixes">
+                <properties>
+                  <help>Show longer prefixes of routes for given address or prefix</help>
+                </properties>
+                <command>vtysh -c "show ipv6 route $4 longer-prefixes"</command>
+              </node>
+            </children>
+            <command>vtysh -c "show ipv6 route $4"</command>
+          </tagNode>
+          <node name="route">
+            <properties>
+              <help>Show IPv6 routes</help>
+            </properties>
+            <command>vtysh -c "show ipv6 route"</command>
+            <children>
+              <node name="bgp">
+                <properties>
+                  <help>Show IPv6 BGP routes</help>
+                </properties>
+                <command>vtysh -c "show ipv6 route bgp"</command>
+              </node>
+              <node name="connected">
+                <properties>
+                  <help>Show IPv6 connected routes</help>
+                </properties>
+                <command>vtysh -c "show ipv6 route connected"</command>
+              </node>
+              <node name="isis">
+                <properties>
+                  <help>Show IPv6 IS-IS routes</help>
+                </properties>
+                <command>vtysh -c "show ipv6 route isis"</command>
+              </node>
+              <node name="kernel">
+                <properties>
+                  <help>Show IPv6 Kernel routes</help>
+                </properties>
+                <command>vtysh -c "show ipv6 route kernel"</command>
+              </node>
+              <node name="ospfv3">
+                <properties>
+                  <help>Show IPv6 OSPF routes</help>
+                </properties>
+                <command>vtysh -c "show ipv6 route ospf6"</command>
+              </node>
+              <node name="ripng">
+                <properties>
+                  <help>Show IPv6 RIPNG routes</help>
+                </properties>
+                <command>vtysh -c "show ipv6 route ripng"</command>
+              </node>
+              <node name="static">
+                <properties>
+                  <help>Show IPv6 static routes</help>
+                </properties>
+                <command>vtysh -c "show ipv6 route static"</command>
+              </node>
+              <node name="summary">
+                <properties>
+                  <help>Show IPv6 routes summary</help>
+                </properties>
+                <command>vtysh -c "show ipv6 route summary"</command>
+              </node>
+              <node name="table">
+                <properties>
+                  <help>Show IPv6 routes in policy tables</help>
+                </properties>
+                <command>vtysh -c "show ipv6 route table all"</command>
+              </node>
+              <tagNode name="table">
+                <properties>
+                  <help>Show IPv6 routes in specific policy table</help>
+                  <completionHelp>
+                    <path>protocols static table</path>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "show ipv6 route table $5"</command>
+              </tagNode>
+              <node name="vrf">
+                <properties>
+                  <help>Show IPv6 routes in VRFs</help>
+                </properties>
+                <command>vtysh -c "show ipv6 route vrf all"</command>
+              </node>
+              <tagNode name="vrf">
+                <properties>
+                  <help>Show IPv6 routes in specific VRF</help>
+                  <completionHelp>
+                    <path>vrf name</path>
+                  </completionHelp>
+                </properties>
+                <command>vtysh -c "show ipv6 route vrf $5"</command>
+              </tagNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ipv6.xml b/op-mode-definitions/show-ipv6.xml
deleted file mode 100644
index a59c8df0c..000000000
--- a/op-mode-definitions/show-ipv6.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ipv6">
-        <properties>
-          <help>Show IPv6 routing information</help>
-        </properties>
-        <children>
-          <node name="access-list">
-            <properties>
-              <help>Show all IPv6 access-lists</help>
-            </properties>
-            <command>vtysh -c "show ipv6 access-list"</command>
-          </node>
-          <tagNode name="access-list">
-            <properties>
-              <help>Show specified IPv6 access-list</help>
-              <completionHelp>
-                <list>WORD</list>
-              </completionHelp>
-            </properties>
-            <command>vtysh -c "show ipv6 access-list $4"</command>
-          </tagNode>
-          <node name="forwarding">
-            <properties>
-              <help>Show IPv6 forwarding status</help>
-            </properties>
-            <command>vtysh -c "show ipv6 forwarding"</command>
-          </node>
-          <node name="ripng">
-            <properties>
-              <help>Show RIPNG protocol information</help>
-            </properties>
-            <command>vtysh -c "show ipv6 ripng"</command>
-            <children>
-              <node name="status">
-                <properties>
-                  <help>Show RIPNG protocol status</help>
-                </properties>
-                <command>vtysh -c "show ipv6 ripng status"</command>
-              </node>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ipv6.xml.in b/op-mode-definitions/show-ipv6.xml.in
new file mode 100644
index 000000000..a59c8df0c
--- /dev/null
+++ b/op-mode-definitions/show-ipv6.xml.in
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ipv6">
+        <properties>
+          <help>Show IPv6 routing information</help>
+        </properties>
+        <children>
+          <node name="access-list">
+            <properties>
+              <help>Show all IPv6 access-lists</help>
+            </properties>
+            <command>vtysh -c "show ipv6 access-list"</command>
+          </node>
+          <tagNode name="access-list">
+            <properties>
+              <help>Show specified IPv6 access-list</help>
+              <completionHelp>
+                <list>WORD</list>
+              </completionHelp>
+            </properties>
+            <command>vtysh -c "show ipv6 access-list $4"</command>
+          </tagNode>
+          <node name="forwarding">
+            <properties>
+              <help>Show IPv6 forwarding status</help>
+            </properties>
+            <command>vtysh -c "show ipv6 forwarding"</command>
+          </node>
+          <node name="ripng">
+            <properties>
+              <help>Show RIPNG protocol information</help>
+            </properties>
+            <command>vtysh -c "show ipv6 ripng"</command>
+            <children>
+              <node name="status">
+                <properties>
+                  <help>Show RIPNG protocol status</help>
+                </properties>
+                <command>vtysh -c "show ipv6 ripng status"</command>
+              </node>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-isis.xml b/op-mode-definitions/show-isis.xml
deleted file mode 100644
index 4e308730f..000000000
--- a/op-mode-definitions/show-isis.xml
+++ /dev/null
@@ -1,191 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="isis">
-        <properties>
-          <help>IS-IS routing protocol</help>
-        </properties>
-        <children>
-          <node name="database">
-            <properties>
-              <help>Show IS-IS link state database</help>
-            </properties>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show isis database detail"</command>
-              </leafNode>
-            </children>
-            <command>/usr/bin/vtysh -c "show isis database"</command>
-          </node>
-          <tagNode name="database">
-            <properties>
-              <help>Show IS-IS link state database PDU</help>
-              <completionHelp>
-                <list>lsp-id detail</list>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/vtysh -c "show isis database $4"</command>
-          </tagNode>
-          <leafNode name="hostname">
-            <properties>
-              <help>Show IS-IS dynamic hostname mapping</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show isis hostname"</command>
-          </leafNode>
-          <node name="interface">
-            <properties>
-              <help>Show IS-IS interfaces</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_interfaces.py</script>
-              </completionHelp>
-            </properties>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show isis interface detail"</command>
-              </leafNode>
-            </children>
-            <command>/usr/bin/vtysh -c "show isis interface"</command>
-          </node>
-          <tagNode name="interface">
-            <properties>
-              <help>Show specific IS-IS interface</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_interfaces.py</script>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/vtysh -c "show isis interface $4"</command>
-          </tagNode>
-          <node name="traffic-engineering">
-            <properties>
-              <help>Show IS-IS MPLS traffic engineering information</help>
-            </properties>
-            <children>
-              <leafNode name="router">
-                <properties>
-                  <help>Show router information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show isis mpls-te router"</command>
-              </leafNode>
-              <leafNode name="interface">
-                <properties>
-                  <help>Show interface information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show isis mpls-te interface"</command>
-              </leafNode>
-              <tagNode name="interface">
-                <properties>
-                  <help>Show specific IS-IS interface</help>
-                  <completionHelp>
-                    <script>${vyos_completion_dir}/list_interfaces.py</script>
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/vtysh -c "show isis mpls-te interface $5"</command>
-              </tagNode>
-            </children>
-          </node>
-          <node name="neighbor">
-            <properties>
-              <help>Show IS-IS neighbor adjacencies</help>
-            </properties>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show isis neighbor detail"</command>
-              </leafNode>
-            </children>
-            <command>/usr/bin/vtysh -c "show isis neighbor"</command>
-          </node>
-          <tagNode name="neighbor">
-            <properties>
-              <help>Show specific IS-IS neighbor adjacency </help>
-              <completionHelp>
-                <list>system-id</list>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/vtysh -c "show isis neighbor $4"</command>
-          </tagNode>
-          <node name="route">
-            <properties>
-              <help>Show IS-IS routing table</help>
-            </properties>
-            <children>
-              <leafNode name="level-1">
-                <properties>
-                  <help>Show level-1 routes</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show isis route level-1"</command>
-              </leafNode>
-              <leafNode name="level-2">
-                <properties>
-                  <help>Show level-2 routes</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show isis route level-2"</command>
-              </leafNode>
-            </children>
-            <command>/usr/bin/vtysh -c "show isis route"</command>
-          </node>
-          <node name="segment-routing">
-            <properties>
-              <help>Show IS-IS Segment-Routing (SPRING) information</help>
-            </properties>
-            <children>
-              <leafNode name="node">
-                <properties>
-                  <help>Show node information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show isis segment-routing node"</command>
-              </leafNode>
-              <leafNode name="prefix-sids">
-                <properties>
-                  <help>Show prefix segment IDs</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show isis segment-routing prefix-sids"</command>
-              </leafNode>
-            </children>
-          </node>
-          <leafNode name="spf-delay">
-            <properties>
-              <help>Show IS-IS SPF delay parameters</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show isis spf-delay-ietf"</command>
-          </leafNode>
-          <leafNode name="summary">
-            <properties>
-              <help>Show IS-IS information summary</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show isis summary"</command>
-          </leafNode>
-          <node name="topology">
-            <properties>
-              <help>Show IS-IS paths to Intermediate Systems</help>
-            </properties>
-            <children>
-              <leafNode name="level-1">
-                <properties>
-                  <help>Show level-1 routes</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show isis topology level-1"</command>
-              </leafNode>
-              <leafNode name="level-2">
-                <properties>
-                  <help>Show level-2 routes</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show isis topology level-2"</command>
-              </leafNode>
-            </children>
-            <command>/usr/bin/vtysh -c "show isis topology"</command>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-isis.xml.in b/op-mode-definitions/show-isis.xml.in
new file mode 100644
index 000000000..4e308730f
--- /dev/null
+++ b/op-mode-definitions/show-isis.xml.in
@@ -0,0 +1,191 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="isis">
+        <properties>
+          <help>IS-IS routing protocol</help>
+        </properties>
+        <children>
+          <node name="database">
+            <properties>
+              <help>Show IS-IS link state database</help>
+            </properties>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show isis database detail"</command>
+              </leafNode>
+            </children>
+            <command>/usr/bin/vtysh -c "show isis database"</command>
+          </node>
+          <tagNode name="database">
+            <properties>
+              <help>Show IS-IS link state database PDU</help>
+              <completionHelp>
+                <list>lsp-id detail</list>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/vtysh -c "show isis database $4"</command>
+          </tagNode>
+          <leafNode name="hostname">
+            <properties>
+              <help>Show IS-IS dynamic hostname mapping</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show isis hostname"</command>
+          </leafNode>
+          <node name="interface">
+            <properties>
+              <help>Show IS-IS interfaces</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_interfaces.py</script>
+              </completionHelp>
+            </properties>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show isis interface detail"</command>
+              </leafNode>
+            </children>
+            <command>/usr/bin/vtysh -c "show isis interface"</command>
+          </node>
+          <tagNode name="interface">
+            <properties>
+              <help>Show specific IS-IS interface</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_interfaces.py</script>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/vtysh -c "show isis interface $4"</command>
+          </tagNode>
+          <node name="traffic-engineering">
+            <properties>
+              <help>Show IS-IS MPLS traffic engineering information</help>
+            </properties>
+            <children>
+              <leafNode name="router">
+                <properties>
+                  <help>Show router information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show isis mpls-te router"</command>
+              </leafNode>
+              <leafNode name="interface">
+                <properties>
+                  <help>Show interface information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show isis mpls-te interface"</command>
+              </leafNode>
+              <tagNode name="interface">
+                <properties>
+                  <help>Show specific IS-IS interface</help>
+                  <completionHelp>
+                    <script>${vyos_completion_dir}/list_interfaces.py</script>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/vtysh -c "show isis mpls-te interface $5"</command>
+              </tagNode>
+            </children>
+          </node>
+          <node name="neighbor">
+            <properties>
+              <help>Show IS-IS neighbor adjacencies</help>
+            </properties>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show isis neighbor detail"</command>
+              </leafNode>
+            </children>
+            <command>/usr/bin/vtysh -c "show isis neighbor"</command>
+          </node>
+          <tagNode name="neighbor">
+            <properties>
+              <help>Show specific IS-IS neighbor adjacency </help>
+              <completionHelp>
+                <list>system-id</list>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/vtysh -c "show isis neighbor $4"</command>
+          </tagNode>
+          <node name="route">
+            <properties>
+              <help>Show IS-IS routing table</help>
+            </properties>
+            <children>
+              <leafNode name="level-1">
+                <properties>
+                  <help>Show level-1 routes</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show isis route level-1"</command>
+              </leafNode>
+              <leafNode name="level-2">
+                <properties>
+                  <help>Show level-2 routes</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show isis route level-2"</command>
+              </leafNode>
+            </children>
+            <command>/usr/bin/vtysh -c "show isis route"</command>
+          </node>
+          <node name="segment-routing">
+            <properties>
+              <help>Show IS-IS Segment-Routing (SPRING) information</help>
+            </properties>
+            <children>
+              <leafNode name="node">
+                <properties>
+                  <help>Show node information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show isis segment-routing node"</command>
+              </leafNode>
+              <leafNode name="prefix-sids">
+                <properties>
+                  <help>Show prefix segment IDs</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show isis segment-routing prefix-sids"</command>
+              </leafNode>
+            </children>
+          </node>
+          <leafNode name="spf-delay">
+            <properties>
+              <help>Show IS-IS SPF delay parameters</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show isis spf-delay-ietf"</command>
+          </leafNode>
+          <leafNode name="summary">
+            <properties>
+              <help>Show IS-IS information summary</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show isis summary"</command>
+          </leafNode>
+          <node name="topology">
+            <properties>
+              <help>Show IS-IS paths to Intermediate Systems</help>
+            </properties>
+            <children>
+              <leafNode name="level-1">
+                <properties>
+                  <help>Show level-1 routes</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show isis topology level-1"</command>
+              </leafNode>
+              <leafNode name="level-2">
+                <properties>
+                  <help>Show level-2 routes</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show isis topology level-2"</command>
+              </leafNode>
+            </children>
+            <command>/usr/bin/vtysh -c "show isis topology"</command>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-license.xml b/op-mode-definitions/show-license.xml
deleted file mode 100644
index 2ce11567d..000000000
--- a/op-mode-definitions/show-license.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <leafNode name="license">
-        <properties>
-          <help>Show VyOS license information</help>
-        </properties>
-        <command>less $_vyatta_less_options --prompt=".license, page %dt of %D" -- ${vyatta_sysconfdir}/LICENSE</command>
-      </leafNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-license.xml.in b/op-mode-definitions/show-license.xml.in
new file mode 100644
index 000000000..2ce11567d
--- /dev/null
+++ b/op-mode-definitions/show-license.xml.in
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <leafNode name="license">
+        <properties>
+          <help>Show VyOS license information</help>
+        </properties>
+        <command>less $_vyatta_less_options --prompt=".license, page %dt of %D" -- ${vyatta_sysconfdir}/LICENSE</command>
+      </leafNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-log.xml b/op-mode-definitions/show-log.xml
deleted file mode 100644
index b00e4cfec..000000000
--- a/op-mode-definitions/show-log.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="log">
-        <properties>
-          <help>Show contents of current master log file</help>
-        </properties>
-        <command>/bin/journalctl</command>
-        <children>
-          <leafNode name="all">
-            <properties>
-              <help>Show contents of all master log files</help>
-            </properties>
-            <command>eval $(lesspipe); less $_vyatta_less_options --prompt=".log?m, 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>/bin/journalctl -q 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>cat $(printf "%s\n" /var/log/messages* | sort -nr ) | grep -e conntrackd</command>
-          </leafNode>
-          <leafNode name="dhcp">
-            <properties>
-              <help>Show log for Dynamic Host Control Protocol (DHCP)</help>
-            </properties>
-            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep dhcpd</command>
-          </leafNode>
-          <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="https">
-            <properties>
-              <help>Show log for HTTPs</help>
-            </properties>
-            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e nginx</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="lldp">
-            <properties>
-              <help>Show log for LLDP</help>
-            </properties>
-            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e lldpd</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="openvpn">
-            <properties>
-              <help>Show log for OpenVPN</help>
-            </properties>
-            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e openvpn</command>
-          </leafNode>
-          <leafNode name="snmp">
-            <properties>
-              <help>Show log for Simple Network Monitoring Protocol (SNMP)</help>
-            </properties>
-            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e snmpd</command>
-          </leafNode>
-          <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">
-            <properties>
-              <help>Show log for Virtual Private Network (VPN)</help>
-            </properties>
-            <children>
-              <leafNode name="all">
-                <properties>
-                  <help>Show log for ALL</help>
-                </properties>
-                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e charon -e accel -e pptpd -e ppp</command>
-              </leafNode>
-              <leafNode name="ipsec">
-                <properties>
-                  <help>Show log for IPSec</help>
-                </properties>
-                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e charon</command>
-              </leafNode>
-              <leafNode name="l2tp">
-                <properties>
-                  <help>Show log for L2TP</help>
-                </properties>
-                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e remote-access-aaa-win -e remote-access-zzz-mac -e accel-l2tp -e ppp</command>
-              </leafNode>
-              <leafNode name="pptp">
-                <properties>
-                  <help>Show log for PPTP</help>
-                </properties>
-                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e accel-pptp -e ppp</command>
-              </leafNode>
-              <leafNode name="sstp">
-                <properties>
-                  <help>Show log for SSTP</help>
-                </properties>
-                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e accel-sstp -e ppp</command>
-              </leafNode>
-            </children>
-          </node>
-          <leafNode name="vrrp">
-            <properties>
-              <help>Show log for Virtual Router Redundancy Protocol (VRRP)</help>
-            </properties>
-            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e Keepalived_vrrp</command>
-          </leafNode>
-          <leafNode name="webproxy">
-            <properties>
-              <help>Show log for Webproxy</help>
-            </properties>
-            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e "squid"</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-log.xml.in b/op-mode-definitions/show-log.xml.in
new file mode 100644
index 000000000..b00e4cfec
--- /dev/null
+++ b/op-mode-definitions/show-log.xml.in
@@ -0,0 +1,218 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="log">
+        <properties>
+          <help>Show contents of current master log file</help>
+        </properties>
+        <command>/bin/journalctl</command>
+        <children>
+          <leafNode name="all">
+            <properties>
+              <help>Show contents of all master log files</help>
+            </properties>
+            <command>eval $(lesspipe); less $_vyatta_less_options --prompt=".log?m, 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>/bin/journalctl -q 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>cat $(printf "%s\n" /var/log/messages* | sort -nr ) | grep -e conntrackd</command>
+          </leafNode>
+          <leafNode name="dhcp">
+            <properties>
+              <help>Show log for Dynamic Host Control Protocol (DHCP)</help>
+            </properties>
+            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep dhcpd</command>
+          </leafNode>
+          <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="https">
+            <properties>
+              <help>Show log for HTTPs</help>
+            </properties>
+            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e nginx</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="lldp">
+            <properties>
+              <help>Show log for LLDP</help>
+            </properties>
+            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e lldpd</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="openvpn">
+            <properties>
+              <help>Show log for OpenVPN</help>
+            </properties>
+            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e openvpn</command>
+          </leafNode>
+          <leafNode name="snmp">
+            <properties>
+              <help>Show log for Simple Network Monitoring Protocol (SNMP)</help>
+            </properties>
+            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e snmpd</command>
+          </leafNode>
+          <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">
+            <properties>
+              <help>Show log for Virtual Private Network (VPN)</help>
+            </properties>
+            <children>
+              <leafNode name="all">
+                <properties>
+                  <help>Show log for ALL</help>
+                </properties>
+                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e charon -e accel -e pptpd -e ppp</command>
+              </leafNode>
+              <leafNode name="ipsec">
+                <properties>
+                  <help>Show log for IPSec</help>
+                </properties>
+                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e charon</command>
+              </leafNode>
+              <leafNode name="l2tp">
+                <properties>
+                  <help>Show log for L2TP</help>
+                </properties>
+                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e remote-access-aaa-win -e remote-access-zzz-mac -e accel-l2tp -e ppp</command>
+              </leafNode>
+              <leafNode name="pptp">
+                <properties>
+                  <help>Show log for PPTP</help>
+                </properties>
+                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e accel-pptp -e ppp</command>
+              </leafNode>
+              <leafNode name="sstp">
+                <properties>
+                  <help>Show log for SSTP</help>
+                </properties>
+                <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e accel-sstp -e ppp</command>
+              </leafNode>
+            </children>
+          </node>
+          <leafNode name="vrrp">
+            <properties>
+              <help>Show log for Virtual Router Redundancy Protocol (VRRP)</help>
+            </properties>
+            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e Keepalived_vrrp</command>
+          </leafNode>
+          <leafNode name="webproxy">
+            <properties>
+              <help>Show log for Webproxy</help>
+            </properties>
+            <command>cat $(printf "%s\n" /var/log/messages* | sort -nr) | grep -e "squid"</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-login.xml b/op-mode-definitions/show-login.xml
deleted file mode 100644
index 6d8c782c4..000000000
--- a/op-mode-definitions/show-login.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="login">
-        <properties>
-          <help>Show current login credentials</help>
-        </properties>
-        <command>${vyos_op_scripts_dir}/show_current_user.sh</command>
-        <children>
-          <leafNode name="groups">
-            <properties>
-              <help>Show current login group information</help>
-            </properties>
-            <command>/usr/bin/id -Gn</command>
-          </leafNode>
-          <leafNode name="level">
-            <properties>
-              <help>Show current login level</help>
-            </properties>
-            <command>if [ -n "$VYATTA_USER_LEVEL_DIR" ]; then basename $VYATTA_USER_LEVEL_DIR; fi</command>
-          </leafNode>
-          <leafNode name="user">
-            <properties>
-              <help>Show current login user id</help>
-            </properties>
-            <command>/usr/bin/id -un</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-login.xml.in b/op-mode-definitions/show-login.xml.in
new file mode 100644
index 000000000..6d8c782c4
--- /dev/null
+++ b/op-mode-definitions/show-login.xml.in
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="login">
+        <properties>
+          <help>Show current login credentials</help>
+        </properties>
+        <command>${vyos_op_scripts_dir}/show_current_user.sh</command>
+        <children>
+          <leafNode name="groups">
+            <properties>
+              <help>Show current login group information</help>
+            </properties>
+            <command>/usr/bin/id -Gn</command>
+          </leafNode>
+          <leafNode name="level">
+            <properties>
+              <help>Show current login level</help>
+            </properties>
+            <command>if [ -n "$VYATTA_USER_LEVEL_DIR" ]; then basename $VYATTA_USER_LEVEL_DIR; fi</command>
+          </leafNode>
+          <leafNode name="user">
+            <properties>
+              <help>Show current login user id</help>
+            </properties>
+            <command>/usr/bin/id -un</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-monitoring.xml b/op-mode-definitions/show-monitoring.xml
deleted file mode 100644
index 2651b3438..000000000
--- a/op-mode-definitions/show-monitoring.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <leafNode name="monitoring">
-        <properties>
-          <help>Show currently monitored services</help>
-        </properties>
-        <command>vtysh -c "show debugging"</command>
-      </leafNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-monitoring.xml.in b/op-mode-definitions/show-monitoring.xml.in
new file mode 100644
index 000000000..2651b3438
--- /dev/null
+++ b/op-mode-definitions/show-monitoring.xml.in
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <leafNode name="monitoring">
+        <properties>
+          <help>Show currently monitored services</help>
+        </properties>
+        <command>vtysh -c "show debugging"</command>
+      </leafNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-mpls.xml b/op-mode-definitions/show-mpls.xml
deleted file mode 100644
index 833ac98eb..000000000
--- a/op-mode-definitions/show-mpls.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="mpls">
-        <properties>
-          <help>Show Multiprotocol Label Switching (MPLS)</help>
-        </properties>
-        <children>
-          <node name="ldp">
-            <properties>
-              <help>Label Distribution Protocol (LDP)</help>
-            </properties>
-            <children>
-              <node name="binding">
-                <properties>
-                  <help>Label Information Base</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show mpls ldp binding"</command>
-                <children>
-                  <node name="detail">
-                    <properties>
-                      <help>Show detailed information</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show mpls ldp binding detail"</command>
-                  </node>
-                  <tagNode name="neighbor">
-                    <properties>
-                      <help>Display labels from LDP neighbor</help>
-                      <completionHelp>
-                        <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-                        <script>/usr/bin/vtysh -c "show mpls ldp neighbor" | awk '{print $2}' | egrep -v "ID"</script>
-                      </completionHelp>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show mpls ldp binding neighbor $6"</command>
-                    <children>
-                      <leafNode name="detail">
-                        <properties>
-                          <help>Show detailed information</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show mpls ldp binding neighbor $6 detail"</command>
-                      </leafNode>
-                      <tagNode name="local-label">
-                        <properties>
-                          <help>Match locally assigned label value</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show mpls ldp binding neighbor $6 local-label $8"</command>
-                      </tagNode>
-                      <tagNode name="remote-label">
-                        <properties>
-                          <help>Match remotely assigned label value</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show mpls ldp binding neighbor $6 remote-label $8"</command>
-                      </tagNode>
-                    </children>
-                  </tagNode>
-                  <tagNode name="local-label">
-                    <properties>
-                      <help>Match locally assigned label value</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show mpls ldp binding local-label $6"</command>
-                    <children>
-                      <leafNode name="detail">
-                        <properties>
-                          <help>Show detailed information</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show mpls ldp binding local-label $6 detail"</command>
-                      </leafNode>
-                      <tagNode name="neighbor">
-                        <properties>
-                          <help>Match LDP neighbor</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-                            <script>/usr/bin/vtysh -c "show mpls ldp neighbor" | awk '{print $2}' | egrep -v "ID"</script>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show mpls ldp binding local-label $6 neighbor $8"</command>
-                      </tagNode>
-                      <tagNode name="remote-label">
-                        <properties>
-                          <help>Match remotely assigned label value</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show mpls ldp binding local-label $6 remote-label $8"</command>
-                      </tagNode>
-                    </children>
-                  </tagNode>
-                  <tagNode name="remote-label">
-                    <properties>
-                      <help>Match remotely assigned label value</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show mpls ldp binding remote-label $6"</command>
-                    <children>
-                      <leafNode name="detail">
-                        <properties>
-                          <help>Show detailed information</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show mpls ldp binding remote-label $6 detail"</command>
-                      </leafNode>
-                      <tagNode name="neighbor">
-                        <properties>
-                          <help>Match LDP neighbor</help>
-                          <completionHelp>
-                            <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-                            <script>/usr/bin/vtysh -c "show mpls ldp neighbor" | awk '{print $2}' | egrep -v "ID"</script>
-                          </completionHelp>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show mpls ldp binding remote-label $6 neighbor $8"</command>
-                      </tagNode>
-                      <tagNode name="local-label">
-                        <properties>
-                          <help>Match locally assigned label value</help>
-                        </properties>
-                        <command>/usr/bin/vtysh -c "show mpls ldp binding remote-label $6 local-label $8"</command>
-                      </tagNode>
-                    </children>
-                  </tagNode>
-                </children>
-              </node>
-              <tagNode name="binding">
-                <properties>
-                  <help>LDP forwarding equivalence class</help>
-                  <completionHelp>
-                    <list>&lt;x.x.x.x/x&gt; &lt;h:h:h:h:h:h:h:h/h&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/vtysh -c "show mpls ldp binding $5"</command>
-                <children>
-                  <leafNode name="detail">
-                    <properties>
-                      <help>Show detailed information</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show mpls ldp binding $5 detail"</command>
-                  </leafNode>
-                </children>
-              </tagNode>
-              <node name="discovery">
-                <properties>
-                  <help>Discovery hello information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show mpls ldp discovery"</command>
-                <children>
-                  <leafNode name="detail">
-                    <properties>
-                      <help>Show detailed information</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show mpls ldp discovery detail"</command>
-                  </leafNode>
-                </children>
-              </node>
-              <node name="interface">
-                <properties>
-                  <help>LDP interface information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show mpls ldp interface"</command>
-              </node>
-              <node name="neighbor">
-                <properties>
-                  <help>LDP neighbor information</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show mpls ldp neighbor"</command>
-                <children>
-                  <leafNode name="detail">
-                    <properties>
-                      <help>Show detailed information</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show mpls ldp neighbor detail"</command>
-                  </leafNode>
-                  <leafNode name="capabilities">
-                    <properties>
-                      <help>Show neighbor capability information</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show mpls ldp neighbor capabilities"</command>
-                  </leafNode>
-                </children>
-              </node>
-              <tagNode name="neighbor">
-                <properties>
-                  <help>LDP neighbor</help>
-                  <completionHelp>
-                    <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-                    <script>/usr/bin/vtysh -c "show mpls ldp neighbor" | awk '{print $2}' | egrep -v "ID"</script>
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/vtysh -c "show mpls ldp neighbor $5"</command>
-                <children>
-                  <leafNode name="detail">
-                    <properties>
-                      <help>Show detailed information</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show mpls ldp neighbor $5 detail"</command>
-                  </leafNode>
-                  <leafNode name="capabilities">
-                    <properties>
-                      <help>Show neighbor capability information</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show mpls ldp neighbor $5 capabilities"</command>
-                  </leafNode>
-                </children>
-              </tagNode>
-            </children>
-          </node>
-          <node name="pseudowire">
-            <properties>
-              <help>Show MPLS pseudowire interfaces</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show mpls pseudowires"</command>
-          </node>
-          <node name="table">
-            <properties>
-              <help>Show MPLS table</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show mpls table"</command>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-mpls.xml.in b/op-mode-definitions/show-mpls.xml.in
new file mode 100644
index 000000000..833ac98eb
--- /dev/null
+++ b/op-mode-definitions/show-mpls.xml.in
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="mpls">
+        <properties>
+          <help>Show Multiprotocol Label Switching (MPLS)</help>
+        </properties>
+        <children>
+          <node name="ldp">
+            <properties>
+              <help>Label Distribution Protocol (LDP)</help>
+            </properties>
+            <children>
+              <node name="binding">
+                <properties>
+                  <help>Label Information Base</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show mpls ldp binding"</command>
+                <children>
+                  <node name="detail">
+                    <properties>
+                      <help>Show detailed information</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show mpls ldp binding detail"</command>
+                  </node>
+                  <tagNode name="neighbor">
+                    <properties>
+                      <help>Display labels from LDP neighbor</help>
+                      <completionHelp>
+                        <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+                        <script>/usr/bin/vtysh -c "show mpls ldp neighbor" | awk '{print $2}' | egrep -v "ID"</script>
+                      </completionHelp>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show mpls ldp binding neighbor $6"</command>
+                    <children>
+                      <leafNode name="detail">
+                        <properties>
+                          <help>Show detailed information</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show mpls ldp binding neighbor $6 detail"</command>
+                      </leafNode>
+                      <tagNode name="local-label">
+                        <properties>
+                          <help>Match locally assigned label value</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show mpls ldp binding neighbor $6 local-label $8"</command>
+                      </tagNode>
+                      <tagNode name="remote-label">
+                        <properties>
+                          <help>Match remotely assigned label value</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show mpls ldp binding neighbor $6 remote-label $8"</command>
+                      </tagNode>
+                    </children>
+                  </tagNode>
+                  <tagNode name="local-label">
+                    <properties>
+                      <help>Match locally assigned label value</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show mpls ldp binding local-label $6"</command>
+                    <children>
+                      <leafNode name="detail">
+                        <properties>
+                          <help>Show detailed information</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show mpls ldp binding local-label $6 detail"</command>
+                      </leafNode>
+                      <tagNode name="neighbor">
+                        <properties>
+                          <help>Match LDP neighbor</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+                            <script>/usr/bin/vtysh -c "show mpls ldp neighbor" | awk '{print $2}' | egrep -v "ID"</script>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show mpls ldp binding local-label $6 neighbor $8"</command>
+                      </tagNode>
+                      <tagNode name="remote-label">
+                        <properties>
+                          <help>Match remotely assigned label value</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show mpls ldp binding local-label $6 remote-label $8"</command>
+                      </tagNode>
+                    </children>
+                  </tagNode>
+                  <tagNode name="remote-label">
+                    <properties>
+                      <help>Match remotely assigned label value</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show mpls ldp binding remote-label $6"</command>
+                    <children>
+                      <leafNode name="detail">
+                        <properties>
+                          <help>Show detailed information</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show mpls ldp binding remote-label $6 detail"</command>
+                      </leafNode>
+                      <tagNode name="neighbor">
+                        <properties>
+                          <help>Match LDP neighbor</help>
+                          <completionHelp>
+                            <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+                            <script>/usr/bin/vtysh -c "show mpls ldp neighbor" | awk '{print $2}' | egrep -v "ID"</script>
+                          </completionHelp>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show mpls ldp binding remote-label $6 neighbor $8"</command>
+                      </tagNode>
+                      <tagNode name="local-label">
+                        <properties>
+                          <help>Match locally assigned label value</help>
+                        </properties>
+                        <command>/usr/bin/vtysh -c "show mpls ldp binding remote-label $6 local-label $8"</command>
+                      </tagNode>
+                    </children>
+                  </tagNode>
+                </children>
+              </node>
+              <tagNode name="binding">
+                <properties>
+                  <help>LDP forwarding equivalence class</help>
+                  <completionHelp>
+                    <list>&lt;x.x.x.x/x&gt; &lt;h:h:h:h:h:h:h:h/h&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/vtysh -c "show mpls ldp binding $5"</command>
+                <children>
+                  <leafNode name="detail">
+                    <properties>
+                      <help>Show detailed information</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show mpls ldp binding $5 detail"</command>
+                  </leafNode>
+                </children>
+              </tagNode>
+              <node name="discovery">
+                <properties>
+                  <help>Discovery hello information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show mpls ldp discovery"</command>
+                <children>
+                  <leafNode name="detail">
+                    <properties>
+                      <help>Show detailed information</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show mpls ldp discovery detail"</command>
+                  </leafNode>
+                </children>
+              </node>
+              <node name="interface">
+                <properties>
+                  <help>LDP interface information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show mpls ldp interface"</command>
+              </node>
+              <node name="neighbor">
+                <properties>
+                  <help>LDP neighbor information</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show mpls ldp neighbor"</command>
+                <children>
+                  <leafNode name="detail">
+                    <properties>
+                      <help>Show detailed information</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show mpls ldp neighbor detail"</command>
+                  </leafNode>
+                  <leafNode name="capabilities">
+                    <properties>
+                      <help>Show neighbor capability information</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show mpls ldp neighbor capabilities"</command>
+                  </leafNode>
+                </children>
+              </node>
+              <tagNode name="neighbor">
+                <properties>
+                  <help>LDP neighbor</help>
+                  <completionHelp>
+                    <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+                    <script>/usr/bin/vtysh -c "show mpls ldp neighbor" | awk '{print $2}' | egrep -v "ID"</script>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/vtysh -c "show mpls ldp neighbor $5"</command>
+                <children>
+                  <leafNode name="detail">
+                    <properties>
+                      <help>Show detailed information</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show mpls ldp neighbor $5 detail"</command>
+                  </leafNode>
+                  <leafNode name="capabilities">
+                    <properties>
+                      <help>Show neighbor capability information</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show mpls ldp neighbor $5 capabilities"</command>
+                  </leafNode>
+                </children>
+              </tagNode>
+            </children>
+          </node>
+          <node name="pseudowire">
+            <properties>
+              <help>Show MPLS pseudowire interfaces</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show mpls pseudowires"</command>
+          </node>
+          <node name="table">
+            <properties>
+              <help>Show MPLS table</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show mpls table"</command>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-ntp.xml b/op-mode-definitions/show-ntp.xml
deleted file mode 100644
index b7f0acdf8..000000000
--- a/op-mode-definitions/show-ntp.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="ntp">
-        <properties>
-          <help>Show peer status of NTP daemon</help>
-        </properties>
-        <command>if ps -C ntpd &amp;&gt;/dev/null; then ntpq -n -c peers; else echo NTP daemon disabled; fi</command>
-        <children>
-          <tagNode name="server">
-            <properties>
-              <help>Show date and time of specified NTP server</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_ntp_servers.sh</script>
-              </completionHelp>
-            </properties>
-            <command>/usr/sbin/ntpdate -q "$4"</command>
-          </tagNode>
-          <node name="info">
-            <properties>
-              <help>Show NTP operational summary</help>
-            </properties>
-            <command>if ps -C ntpd &amp;&gt;/dev/null; then ntpq -n -c sysinfo; ntpq -n -c kerninfo; else echo NTP daemon disabled; fi</command>
-        </node>
-
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-ntp.xml.in b/op-mode-definitions/show-ntp.xml.in
new file mode 100644
index 000000000..b7f0acdf8
--- /dev/null
+++ b/op-mode-definitions/show-ntp.xml.in
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="ntp">
+        <properties>
+          <help>Show peer status of NTP daemon</help>
+        </properties>
+        <command>if ps -C ntpd &amp;&gt;/dev/null; then ntpq -n -c peers; else echo NTP daemon disabled; fi</command>
+        <children>
+          <tagNode name="server">
+            <properties>
+              <help>Show date and time of specified NTP server</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_ntp_servers.sh</script>
+              </completionHelp>
+            </properties>
+            <command>/usr/sbin/ntpdate -q "$4"</command>
+          </tagNode>
+          <node name="info">
+            <properties>
+              <help>Show NTP operational summary</help>
+            </properties>
+            <command>if ps -C ntpd &amp;&gt;/dev/null; then ntpq -n -c sysinfo; ntpq -n -c kerninfo; else echo NTP daemon disabled; fi</command>
+        </node>
+
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-poweroff.xml b/op-mode-definitions/show-poweroff.xml
deleted file mode 100644
index 1fd2afcc3..000000000
--- a/op-mode-definitions/show-poweroff.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <leafNode name="poweroff">
-        <properties>
-          <help>Show scheduled poweroff</help>
-        </properties>
-        <command>${vyos_op_scripts_dir}/powerctrl.py --check</command>
-      </leafNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-poweroff.xml.in b/op-mode-definitions/show-poweroff.xml.in
new file mode 100644
index 000000000..1fd2afcc3
--- /dev/null
+++ b/op-mode-definitions/show-poweroff.xml.in
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <leafNode name="poweroff">
+        <properties>
+          <help>Show scheduled poweroff</help>
+        </properties>
+        <command>${vyos_op_scripts_dir}/powerctrl.py --check</command>
+      </leafNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-protocols-bfd.xml b/op-mode-definitions/show-protocols-bfd.xml
deleted file mode 100644
index 3d9b67c67..000000000
--- a/op-mode-definitions/show-protocols-bfd.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="protocols">
-        <properties>
-          <help>Show protocol specific information</help>
-        </properties>
-        <children>
-          <node name="bfd">
-            <children>
-              <node name="peer">
-                <properties>
-                  <help>Show all Bidirectional Forwarding Detection (BFD) peer status</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show bfd peers"</command>
-                <children>
-                  <leafNode name="counters">
-                    <properties>
-                      <help>Show Bidirectional Forwarding Detection (BFD) peer counters</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show bfd peers counters"</command>
-                  </leafNode>
-                </children>
-              </node>
-              <tagNode name="peer">
-                <properties>
-                  <help>Show Bidirectional Forwarding Detection (BFD) peer status</help>
-                  <completionHelp>
-                    <script>/usr/bin/vtysh -c "show bfd peers" | awk '/[:blank:]*peer/ { printf "%s\n", $2 }'</script>
-                  </completionHelp>
-                </properties>
-                <command>/usr/bin/vtysh -c "show bfd peers" | awk -v BFD_PEER=$5 'BEGIN { regex = sprintf("(peer %s.*)vrf", BFD_PEER) } { if (match($0, regex, bfd_peer_value)) peer=bfd_peer_value[1] } END { if (peer) system("/usr/bin/vtysh -c \"show bfd " peer "\"") }'</command>
-                <children>
-                  <leafNode name="counters">
-                    <properties>
-                      <help>Show Bidirectional Forwarding Detection (BFD) peer counters</help>
-                    </properties>
-                    <command>/usr/bin/vtysh -c "show bfd peers" | awk -v BFD_PEER=$5 'BEGIN { regex = sprintf("(peer %s.*)vrf", BFD_PEER) } { if (match($0, regex, bfd_peer_value)) peer=bfd_peer_value[1] } END { if (peer) system("/usr/bin/vtysh -c \"show bfd " peer " counters\"") }'</command>
-                  </leafNode>
-                </children>
-              </tagNode>
-              <leafNode name="peers">
-                <properties>
-                  <help>Show Bidirectional Forwarding Detection (BFD) peers brief</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show bfd peers brief"</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-protocols-bfd.xml.in b/op-mode-definitions/show-protocols-bfd.xml.in
new file mode 100644
index 000000000..3d9b67c67
--- /dev/null
+++ b/op-mode-definitions/show-protocols-bfd.xml.in
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="protocols">
+        <properties>
+          <help>Show protocol specific information</help>
+        </properties>
+        <children>
+          <node name="bfd">
+            <children>
+              <node name="peer">
+                <properties>
+                  <help>Show all Bidirectional Forwarding Detection (BFD) peer status</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show bfd peers"</command>
+                <children>
+                  <leafNode name="counters">
+                    <properties>
+                      <help>Show Bidirectional Forwarding Detection (BFD) peer counters</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show bfd peers counters"</command>
+                  </leafNode>
+                </children>
+              </node>
+              <tagNode name="peer">
+                <properties>
+                  <help>Show Bidirectional Forwarding Detection (BFD) peer status</help>
+                  <completionHelp>
+                    <script>/usr/bin/vtysh -c "show bfd peers" | awk '/[:blank:]*peer/ { printf "%s\n", $2 }'</script>
+                  </completionHelp>
+                </properties>
+                <command>/usr/bin/vtysh -c "show bfd peers" | awk -v BFD_PEER=$5 'BEGIN { regex = sprintf("(peer %s.*)vrf", BFD_PEER) } { if (match($0, regex, bfd_peer_value)) peer=bfd_peer_value[1] } END { if (peer) system("/usr/bin/vtysh -c \"show bfd " peer "\"") }'</command>
+                <children>
+                  <leafNode name="counters">
+                    <properties>
+                      <help>Show Bidirectional Forwarding Detection (BFD) peer counters</help>
+                    </properties>
+                    <command>/usr/bin/vtysh -c "show bfd peers" | awk -v BFD_PEER=$5 'BEGIN { regex = sprintf("(peer %s.*)vrf", BFD_PEER) } { if (match($0, regex, bfd_peer_value)) peer=bfd_peer_value[1] } END { if (peer) system("/usr/bin/vtysh -c \"show bfd " peer " counters\"") }'</command>
+                  </leafNode>
+                </children>
+              </tagNode>
+              <leafNode name="peers">
+                <properties>
+                  <help>Show Bidirectional Forwarding Detection (BFD) peers brief</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show bfd peers brief"</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-protocols-static.xml b/op-mode-definitions/show-protocols-static.xml
deleted file mode 100644
index aaf875072..000000000
--- a/op-mode-definitions/show-protocols-static.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="arp">
-        <properties>
-          <help>Show Address Resolution Protocol (ARP) information</help>
-        </properties>
-        <command>/usr/sbin/arp -e -n</command>
-        <children>
-          <tagNode name="interface">
-            <properties>
-              <help>Show Address Resolution Protocol (ARP) cache for specified interface</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_interfaces.py -b</script>
-              </completionHelp>
-            </properties>
-            <command>/usr/sbin/arp -e -n -i "$4"</command>
-          </tagNode>
-        </children>
-      </node>
-      <node name="protocols">
-        <children>
-          <node name="static">
-            <children>
-              <node name="arp">
-                <properties>
-                  <help>Show Address Resolution Protocol (ARP) information</help>
-                </properties>
-                <command>/usr/sbin/arp -e -n</command>
-                <children>
-                  <tagNode name="interface">
-                    <properties>
-                      <help>Show Address Resolution Protocol (ARP) cache for specified interface</help>
-                      <completionHelp>
-                        <script>${vyos_completion_dir}/list_interfaces.py -b</script>
-                      </completionHelp>
-                    </properties>
-                    <command>/usr/sbin/arp -e -n -i "$6"</command>
-                  </tagNode>
-                </children>
-              </node>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-protocols-static.xml.in b/op-mode-definitions/show-protocols-static.xml.in
new file mode 100644
index 000000000..aaf875072
--- /dev/null
+++ b/op-mode-definitions/show-protocols-static.xml.in
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="arp">
+        <properties>
+          <help>Show Address Resolution Protocol (ARP) information</help>
+        </properties>
+        <command>/usr/sbin/arp -e -n</command>
+        <children>
+          <tagNode name="interface">
+            <properties>
+              <help>Show Address Resolution Protocol (ARP) cache for specified interface</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_interfaces.py -b</script>
+              </completionHelp>
+            </properties>
+            <command>/usr/sbin/arp -e -n -i "$4"</command>
+          </tagNode>
+        </children>
+      </node>
+      <node name="protocols">
+        <children>
+          <node name="static">
+            <children>
+              <node name="arp">
+                <properties>
+                  <help>Show Address Resolution Protocol (ARP) information</help>
+                </properties>
+                <command>/usr/sbin/arp -e -n</command>
+                <children>
+                  <tagNode name="interface">
+                    <properties>
+                      <help>Show Address Resolution Protocol (ARP) cache for specified interface</help>
+                      <completionHelp>
+                        <script>${vyos_completion_dir}/list_interfaces.py -b</script>
+                      </completionHelp>
+                    </properties>
+                    <command>/usr/sbin/arp -e -n -i "$6"</command>
+                  </tagNode>
+                </children>
+              </node>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-raid.xml b/op-mode-definitions/show-raid.xml
deleted file mode 100644
index 8bf394552..000000000
--- a/op-mode-definitions/show-raid.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <tagNode name="raid">
-        <properties>
-          <help>Show status of RAID set</help>
-          <completionHelp>
-            <script>${vyos_completion_dir}/list_raidset.sh</script>
-          </completionHelp>
-        </properties>
-        <command>${vyos_op_scripts_dir}/show_raid.sh $3</command>
-      </tagNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-raid.xml.in b/op-mode-definitions/show-raid.xml.in
new file mode 100644
index 000000000..8bf394552
--- /dev/null
+++ b/op-mode-definitions/show-raid.xml.in
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <tagNode name="raid">
+        <properties>
+          <help>Show status of RAID set</help>
+          <completionHelp>
+            <script>${vyos_completion_dir}/list_raidset.sh</script>
+          </completionHelp>
+        </properties>
+        <command>${vyos_op_scripts_dir}/show_raid.sh $3</command>
+      </tagNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-reboot.xml b/op-mode-definitions/show-reboot.xml
deleted file mode 100644
index c85966bcb..000000000
--- a/op-mode-definitions/show-reboot.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <leafNode name="reboot">
-        <properties>
-          <help>Show scheduled reboot</help>
-        </properties>
-        <command>${vyos_op_scripts_dir}/powerctrl.py --check</command>
-      </leafNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-reboot.xml.in b/op-mode-definitions/show-reboot.xml.in
new file mode 100644
index 000000000..c85966bcb
--- /dev/null
+++ b/op-mode-definitions/show-reboot.xml.in
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <leafNode name="reboot">
+        <properties>
+          <help>Show scheduled reboot</help>
+        </properties>
+        <command>${vyos_op_scripts_dir}/powerctrl.py --check</command>
+      </leafNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-route-map.xml b/op-mode-definitions/show-route-map.xml
deleted file mode 100644
index 0e376757b..000000000
--- a/op-mode-definitions/show-route-map.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="route-map">
-        <properties>
-          <help>Show route-map information</help>
-        </properties>
-        <command>/usr/bin/vtysh -c "show route-map"</command>
-      </node>
-      <tagNode name="route-map">
-        <properties>
-          <help>Show specified route-map information</help>
-          <completionHelp>
-            <path>policy route-map</path>
-          </completionHelp>
-        </properties>
-        <command>/usr/bin/vtysh -c "show route-map $3"</command>
-      </tagNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-route-map.xml.in b/op-mode-definitions/show-route-map.xml.in
new file mode 100644
index 000000000..0e376757b
--- /dev/null
+++ b/op-mode-definitions/show-route-map.xml.in
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="route-map">
+        <properties>
+          <help>Show route-map information</help>
+        </properties>
+        <command>/usr/bin/vtysh -c "show route-map"</command>
+      </node>
+      <tagNode name="route-map">
+        <properties>
+          <help>Show specified route-map information</help>
+          <completionHelp>
+            <path>policy route-map</path>
+          </completionHelp>
+        </properties>
+        <command>/usr/bin/vtysh -c "show route-map $3"</command>
+      </tagNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-rpki.xml b/op-mode-definitions/show-rpki.xml
deleted file mode 100644
index d68c3b862..000000000
--- a/op-mode-definitions/show-rpki.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="rpki">
-        <properties>
-          <help>Show RPKI information</help>
-        </properties>
-        <children>
-          <leafNode name="cache-connection">
-            <properties>
-              <help>Show RPKI cache connections</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show rpki cache-connection"</command>
-          </leafNode>
-          <leafNode name="cache-server">
-             <properties>
-               <help>Show RPKI cache servers information</help>
-             </properties>
-             <command>/usr/bin/vtysh -c "show rpki cache-server"</command>
-          </leafNode>
-          <leafNode name="prefix-table">
-             <properties>
-               <help>Show RPKI-validated prefixes</help>
-             </properties>
-             <command>/usr/bin/vtysh -c "show rpki prefix-table"</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-rpki.xml.in b/op-mode-definitions/show-rpki.xml.in
new file mode 100644
index 000000000..d68c3b862
--- /dev/null
+++ b/op-mode-definitions/show-rpki.xml.in
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="rpki">
+        <properties>
+          <help>Show RPKI information</help>
+        </properties>
+        <children>
+          <leafNode name="cache-connection">
+            <properties>
+              <help>Show RPKI cache connections</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show rpki cache-connection"</command>
+          </leafNode>
+          <leafNode name="cache-server">
+             <properties>
+               <help>Show RPKI cache servers information</help>
+             </properties>
+             <command>/usr/bin/vtysh -c "show rpki cache-server"</command>
+          </leafNode>
+          <leafNode name="prefix-table">
+             <properties>
+               <help>Show RPKI-validated prefixes</help>
+             </properties>
+             <command>/usr/bin/vtysh -c "show rpki prefix-table"</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-system.xml b/op-mode-definitions/show-system.xml
deleted file mode 100644
index 0623e3b62..000000000
--- a/op-mode-definitions/show-system.xml
+++ /dev/null
@@ -1,183 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="system">
-        <properties>
-          <help>Show system information</help>
-        </properties>
-        <children>
-          <node name="connections">
-            <properties>
-              <help>Show active network connections on the system</help>
-            </properties>
-            <command>netstat -an</command>
-            <children>
-              <node name="tcp">
-                <properties>
-                  <help>Show TCP connection information</help>
-                </properties>
-                <command>ss -t -r</command>
-                <children>
-                  <leafNode name="all">
-                    <properties>
-                      <help>Show all TCP connections</help>
-                    </properties>
-                    <command>ss -t -a</command>
-                  </leafNode>
-                  <leafNode name="numeric">
-                    <properties>
-                      <help>Show TCP connection without resolving names</help>
-                    </properties>
-                    <command>ss -t -n</command>
-                  </leafNode>
-                </children>
-              </node>
-              <node name="udp">
-                <properties>
-                  <help>Show UDP socket information</help>
-                </properties>
-                <command>ss -u -a -r</command>
-                <children>
-                  <leafNode name="numeric">
-                    <properties>
-                      <help>Show UDP socket information without resolving names</help>
-                    </properties>
-                    <command>ss -u -a -n</command>
-                  </leafNode>
-                </children>
-              </node>
-            </children>
-          </node>
-          <leafNode name="cpu">
-            <properties>
-              <help>Show CPU information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_cpu.py</command>
-          </leafNode>
-          <leafNode name= "integrity">
-            <properties>
-              <help>Checks overall system integrity</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/show_system_integrity.py</command>
-          </leafNode>
-          <leafNode name="kernel-messages">
-            <properties>
-              <help>Show messages in kernel ring buffer</help>
-            </properties>
-            <command>sudo dmesg</command>
-          </leafNode>
-          <node name="login">
-            <properties>
-              <help>Show user accounts</help>
-            </properties>
-            <children>
-              <node name="users">
-                <properties>
-                  <help>Show user account information</help>
-                </properties>
-                <command>${vyos_libexec_dir}/vyos-sudo.py ${vyos_op_scripts_dir}/show_users.py</command>
-                <children>
-                  <leafNode name="all">
-                    <properties>
-                      <help>Show information about all accounts</help>
-                    </properties>
-                    <command>${vyos_libexec_dir}/vyos-sudo.py ${vyos_op_scripts_dir}/show_users.py all</command>
-                  </leafNode>
-                  <leafNode name="locked">
-                    <properties>
-                      <help>Show information about locked accounts</help>
-                    </properties>
-                    <command>${vyos_libexec_dir}/vyos-sudo.py ${vyos_op_scripts_dir}/show_users.py locked</command>
-                  </leafNode>
-                  <leafNode name="other">
-                    <properties>
-                      <help>Show information about non VyOS user accounts</help>
-                    </properties>
-                    <command>${vyos_libexec_dir}/vyos-sudo.py ${vyos_op_scripts_dir}/show_users.py other</command>
-                  </leafNode>
-                  <leafNode name="vyos">
-                    <properties>
-                      <help>Show information about VyOS user accounts</help>
-                    </properties>
-                    <command>${vyos_libexec_dir}/vyos-sudo.py ${vyos_op_scripts_dir}/show_users.py vyos</command>
-                  </leafNode>
-                </children>
-              </node>
-            </children>
-          </node>
-          <node name="memory">
-            <properties>
-              <help>Show system memory usage</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_ram.sh</command>
-            <children>
-              <leafNode name="cache">
-                <properties>
-                  <help>Show kernel cache information</help>
-                </properties>
-                <command>sudo slabtop -o</command>
-              </leafNode>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed system memory usage</help>
-                </properties>
-                <command>cat /proc/meminfo</command>
-              </leafNode>
-              <leafNode name="routing-daemons">
-                <properties>
-                  <help>Show memory usage of all routing protocols</help>
-                </properties>
-                <command>/usr/bin/vtysh -c "show memory"</command>
-              </leafNode>
-            </children>
-          </node>
-          <node name="processes">
-            <properties>
-              <help>Show system processes</help>
-            </properties>
-            <command>ps ax</command>
-            <children>
-              <leafNode name="extensive">
-                <properties>
-                  <help>Show extensive process info</help>
-                </properties>
-                <command>top -b -n1</command>
-              </leafNode>
-              <leafNode name="summary">
-                <properties>
-                  <help>Show summary of system processes</help>
-                </properties>
-                <command>uptime</command>
-              </leafNode>
-              <leafNode name="tree">
-                <properties>
-                  <help>Show process tree</help>
-                </properties>
-                <command>ps -ejH</command>
-              </leafNode>
-            </children>
-          </node>
-          <leafNode name="routing-daemons">
-            <properties>
-              <help>Show Quagga routing daemons</help>
-            </properties>
-            <command>/usr/bin/vtysh -c "show daemons"</command>
-          </leafNode>
-          <leafNode name="storage">
-            <properties>
-              <help>Show filesystem usage</help>
-            </properties>
-            <command>df -h -x squashfs</command>
-          </leafNode>
-          <leafNode name="uptime">
-            <properties>
-              <help>Show how long the system has been up</help>
-            </properties>
-            <command>uptime</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-system.xml.in b/op-mode-definitions/show-system.xml.in
new file mode 100644
index 000000000..0623e3b62
--- /dev/null
+++ b/op-mode-definitions/show-system.xml.in
@@ -0,0 +1,183 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="system">
+        <properties>
+          <help>Show system information</help>
+        </properties>
+        <children>
+          <node name="connections">
+            <properties>
+              <help>Show active network connections on the system</help>
+            </properties>
+            <command>netstat -an</command>
+            <children>
+              <node name="tcp">
+                <properties>
+                  <help>Show TCP connection information</help>
+                </properties>
+                <command>ss -t -r</command>
+                <children>
+                  <leafNode name="all">
+                    <properties>
+                      <help>Show all TCP connections</help>
+                    </properties>
+                    <command>ss -t -a</command>
+                  </leafNode>
+                  <leafNode name="numeric">
+                    <properties>
+                      <help>Show TCP connection without resolving names</help>
+                    </properties>
+                    <command>ss -t -n</command>
+                  </leafNode>
+                </children>
+              </node>
+              <node name="udp">
+                <properties>
+                  <help>Show UDP socket information</help>
+                </properties>
+                <command>ss -u -a -r</command>
+                <children>
+                  <leafNode name="numeric">
+                    <properties>
+                      <help>Show UDP socket information without resolving names</help>
+                    </properties>
+                    <command>ss -u -a -n</command>
+                  </leafNode>
+                </children>
+              </node>
+            </children>
+          </node>
+          <leafNode name="cpu">
+            <properties>
+              <help>Show CPU information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_cpu.py</command>
+          </leafNode>
+          <leafNode name= "integrity">
+            <properties>
+              <help>Checks overall system integrity</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/show_system_integrity.py</command>
+          </leafNode>
+          <leafNode name="kernel-messages">
+            <properties>
+              <help>Show messages in kernel ring buffer</help>
+            </properties>
+            <command>sudo dmesg</command>
+          </leafNode>
+          <node name="login">
+            <properties>
+              <help>Show user accounts</help>
+            </properties>
+            <children>
+              <node name="users">
+                <properties>
+                  <help>Show user account information</help>
+                </properties>
+                <command>${vyos_libexec_dir}/vyos-sudo.py ${vyos_op_scripts_dir}/show_users.py</command>
+                <children>
+                  <leafNode name="all">
+                    <properties>
+                      <help>Show information about all accounts</help>
+                    </properties>
+                    <command>${vyos_libexec_dir}/vyos-sudo.py ${vyos_op_scripts_dir}/show_users.py all</command>
+                  </leafNode>
+                  <leafNode name="locked">
+                    <properties>
+                      <help>Show information about locked accounts</help>
+                    </properties>
+                    <command>${vyos_libexec_dir}/vyos-sudo.py ${vyos_op_scripts_dir}/show_users.py locked</command>
+                  </leafNode>
+                  <leafNode name="other">
+                    <properties>
+                      <help>Show information about non VyOS user accounts</help>
+                    </properties>
+                    <command>${vyos_libexec_dir}/vyos-sudo.py ${vyos_op_scripts_dir}/show_users.py other</command>
+                  </leafNode>
+                  <leafNode name="vyos">
+                    <properties>
+                      <help>Show information about VyOS user accounts</help>
+                    </properties>
+                    <command>${vyos_libexec_dir}/vyos-sudo.py ${vyos_op_scripts_dir}/show_users.py vyos</command>
+                  </leafNode>
+                </children>
+              </node>
+            </children>
+          </node>
+          <node name="memory">
+            <properties>
+              <help>Show system memory usage</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_ram.sh</command>
+            <children>
+              <leafNode name="cache">
+                <properties>
+                  <help>Show kernel cache information</help>
+                </properties>
+                <command>sudo slabtop -o</command>
+              </leafNode>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed system memory usage</help>
+                </properties>
+                <command>cat /proc/meminfo</command>
+              </leafNode>
+              <leafNode name="routing-daemons">
+                <properties>
+                  <help>Show memory usage of all routing protocols</help>
+                </properties>
+                <command>/usr/bin/vtysh -c "show memory"</command>
+              </leafNode>
+            </children>
+          </node>
+          <node name="processes">
+            <properties>
+              <help>Show system processes</help>
+            </properties>
+            <command>ps ax</command>
+            <children>
+              <leafNode name="extensive">
+                <properties>
+                  <help>Show extensive process info</help>
+                </properties>
+                <command>top -b -n1</command>
+              </leafNode>
+              <leafNode name="summary">
+                <properties>
+                  <help>Show summary of system processes</help>
+                </properties>
+                <command>uptime</command>
+              </leafNode>
+              <leafNode name="tree">
+                <properties>
+                  <help>Show process tree</help>
+                </properties>
+                <command>ps -ejH</command>
+              </leafNode>
+            </children>
+          </node>
+          <leafNode name="routing-daemons">
+            <properties>
+              <help>Show Quagga routing daemons</help>
+            </properties>
+            <command>/usr/bin/vtysh -c "show daemons"</command>
+          </leafNode>
+          <leafNode name="storage">
+            <properties>
+              <help>Show filesystem usage</help>
+            </properties>
+            <command>df -h -x squashfs</command>
+          </leafNode>
+          <leafNode name="uptime">
+            <properties>
+              <help>Show how long the system has been up</help>
+            </properties>
+            <command>uptime</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-table.xml b/op-mode-definitions/show-table.xml
deleted file mode 100644
index b093a5de7..000000000
--- a/op-mode-definitions/show-table.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <leafNode name="table">
-        <properties>
-          <help>Show routing tables</help>
-        </properties>
-        <command>/usr/bin/vtysh -c "show zebra router table summary"</command>
-      </leafNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-table.xml.in b/op-mode-definitions/show-table.xml.in
new file mode 100644
index 000000000..b093a5de7
--- /dev/null
+++ b/op-mode-definitions/show-table.xml.in
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <leafNode name="table">
+        <properties>
+          <help>Show routing tables</help>
+        </properties>
+        <command>/usr/bin/vtysh -c "show zebra router table summary"</command>
+      </leafNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-users.xml b/op-mode-definitions/show-users.xml
deleted file mode 100644
index a026e47e7..000000000
--- a/op-mode-definitions/show-users.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-    <node name="users">
-      <properties>
-        <help>Show user information</help>
-      </properties>
-      <command>who -H</command>
-      <children>
-        <node name="recent">
-          <properties>
-            <help>Show 10 recently logged in users</help>
-          </properties>
-          <command>last -aF -n 10 | sed -e 's/^wtmp begins/Displaying logins since/'</command>
-        </node>
-        <tagNode name="recent">
-          <properties>
-            <help>Show specified number of recently logged in users</help>
-            <completionHelp>
-              <list>NUMBER</list>
-            </completionHelp>
-          </properties>
-          <command>last -aF -n $4 | sed -e 's/^wtmp begins/Displaying logins since/'</command>
-        </tagNode>
-      </children>
-    </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-users.xml.in b/op-mode-definitions/show-users.xml.in
new file mode 100644
index 000000000..a026e47e7
--- /dev/null
+++ b/op-mode-definitions/show-users.xml.in
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+    <node name="users">
+      <properties>
+        <help>Show user information</help>
+      </properties>
+      <command>who -H</command>
+      <children>
+        <node name="recent">
+          <properties>
+            <help>Show 10 recently logged in users</help>
+          </properties>
+          <command>last -aF -n 10 | sed -e 's/^wtmp begins/Displaying logins since/'</command>
+        </node>
+        <tagNode name="recent">
+          <properties>
+            <help>Show specified number of recently logged in users</help>
+            <completionHelp>
+              <list>NUMBER</list>
+            </completionHelp>
+          </properties>
+          <command>last -aF -n $4 | sed -e 's/^wtmp begins/Displaying logins since/'</command>
+        </tagNode>
+      </children>
+    </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-version.xml b/op-mode-definitions/show-version.xml
deleted file mode 100644
index 2202d27b3..000000000
--- a/op-mode-definitions/show-version.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="version">
-        <properties>
-          <help>Show system version information</help>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/show_version.py</command>
-        <children>
-          <leafNode name="funny">
-            <properties>
-              <help>Show system version and some fun stuff</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/show_version.py --funny</command>
-          </leafNode>
-          <leafNode name="all">
-             <properties>
-               <help>Show system version and versions of all packages</help>
-             </properties>
-             <command>echo "Package versions:"; dpkg -l | awk '$0~/>/{exit}1'</command>
-          </leafNode>
-          <leafNode name="frr">
-             <properties>
-               <help>Show Quagga version information</help>
-             </properties>
-             <command>/usr/bin/vtysh -c "show version"</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-version.xml.in b/op-mode-definitions/show-version.xml.in
new file mode 100644
index 000000000..2202d27b3
--- /dev/null
+++ b/op-mode-definitions/show-version.xml.in
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="version">
+        <properties>
+          <help>Show system version information</help>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/show_version.py</command>
+        <children>
+          <leafNode name="funny">
+            <properties>
+              <help>Show system version and some fun stuff</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/show_version.py --funny</command>
+          </leafNode>
+          <leafNode name="all">
+             <properties>
+               <help>Show system version and versions of all packages</help>
+             </properties>
+             <command>echo "Package versions:"; dpkg -l | awk '$0~/>/{exit}1'</command>
+          </leafNode>
+          <leafNode name="frr">
+             <properties>
+               <help>Show Quagga version information</help>
+             </properties>
+             <command>/usr/bin/vtysh -c "show version"</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-vpn.xml b/op-mode-definitions/show-vpn.xml
deleted file mode 100644
index 0e7fc38e9..000000000
--- a/op-mode-definitions/show-vpn.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="vpn">
-       <properties>
-          <help>Show active remote access Virtual Private Network (VPN) sessions</help>
-       </properties>
-       <children>
-         <leafNode name="remote-access">
-            <properties>
-              <help>Show active VPN server sessions</help>
-            </properties>
-           <command>${vyos_op_scripts_dir}/show_vpn_ra.py</command> 
-         </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-vpn.xml.in b/op-mode-definitions/show-vpn.xml.in
new file mode 100644
index 000000000..3fbc74ad1
--- /dev/null
+++ b/op-mode-definitions/show-vpn.xml.in
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="vpn">
+       <properties>
+          <help>Show active remote access Virtual Private Network (VPN) sessions</help>
+       </properties>
+       <children>
+         <leafNode name="remote-access">
+            <properties>
+              <help>Show active VPN server sessions</help>
+            </properties>
+           <command>${vyos_op_scripts_dir}/show_vpn_ra.py</command>
+         </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/show-vrf.xml b/op-mode-definitions/show-vrf.xml
deleted file mode 100644
index 438e7c334..000000000
--- a/op-mode-definitions/show-vrf.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="vrf">
-        <properties>
-          <help>Show VRF information</help>
-        </properties>
-        <command>${vyos_op_scripts_dir}/show_vrf.py -e</command>
-      </node>
-      <tagNode name="vrf">
-        <properties>
-          <help>Show information on specific VRF instance</help>
-          <completionHelp>
-            <path>vrf name</path>
-          </completionHelp>
-        </properties>
-        <command>${vyos_op_scripts_dir}/show_vrf.py -e "$3"</command>
-        <children>
-          <leafNode name="processes">
-            <properties>
-              <help>Shows all process ids associated with VRF</help>
-            </properties>
-            <command>/usr/sbin/ip vrf pids "$3"</command>
-          </leafNode>
-        </children>
-      </tagNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/show-vrf.xml.in b/op-mode-definitions/show-vrf.xml.in
new file mode 100644
index 000000000..438e7c334
--- /dev/null
+++ b/op-mode-definitions/show-vrf.xml.in
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="vrf">
+        <properties>
+          <help>Show VRF information</help>
+        </properties>
+        <command>${vyos_op_scripts_dir}/show_vrf.py -e</command>
+      </node>
+      <tagNode name="vrf">
+        <properties>
+          <help>Show information on specific VRF instance</help>
+          <completionHelp>
+            <path>vrf name</path>
+          </completionHelp>
+        </properties>
+        <command>${vyos_op_scripts_dir}/show_vrf.py -e "$3"</command>
+        <children>
+          <leafNode name="processes">
+            <properties>
+              <help>Shows all process ids associated with VRF</help>
+            </properties>
+            <command>/usr/sbin/ip vrf pids "$3"</command>
+          </leafNode>
+        </children>
+      </tagNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/snmp.xml b/op-mode-definitions/snmp.xml
deleted file mode 100644
index a0a47da40..000000000
--- a/op-mode-definitions/snmp.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="snmp">
-        <properties>
-          <help>Show status of SNMP on localhost</help>
-        </properties>
-        <children>
-          <tagNode name="community">
-            <properties>
-              <help>Show status of SNMP community</help>
-              <completionHelp>
-                <script>${vyos_op_scripts_dir}/snmp.py --allowed</script>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/snmp.py --community="$4"</command>
-            <children>
-              <tagNode name="host">
-                <properties>
-                  <help>Show status of SNMP on remote host</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/snmp.py --community="$4" --host "$6"</command>
-              </tagNode>
-            </children>
-          </tagNode>
-          <node name="mib">
-            <properties>
-              <help>Show SNMP MIB information</help>
-            </properties>
-            <children>
-              <node name="ifmib">
-                <properties>
-                  <help>Show all SNMP interfaces MIB information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/snmp_ifmib.py</command>
-                <children>
-                  <tagNode name="ifAlias">
-                    <properties>
-                      <help>Show SNMP ifAlias for specified interface</help>
-                      <completionHelp>
-                        <script>${vyos_completion_dir}/list_interfaces.py</script>
-                      </completionHelp>
-                    </properties>
-                    <command>${vyos_op_scripts_dir}/snmp_ifmib.py --ifalias="$6"</command>
-                  </tagNode>
-                  <tagNode name="ifDescr">
-                    <properties>
-                      <help>Show SNMP ifDescr for specified interface</help>
-                      <completionHelp>
-                        <script>${vyos_completion_dir}/list_interfaces.py</script>
-                      </completionHelp>
-                    </properties>
-                    <command>${vyos_op_scripts_dir}/snmp_ifmib.py --ifdescr="$6"</command>
-                  </tagNode>
-                  <tagNode name="ifIndex">
-                    <properties>
-                      <help>Show SNMP ifDescr for specified interface</help>
-                      <completionHelp>
-                        <script>${vyos_completion_dir}/list_interfaces.py</script>
-                      </completionHelp>
-                    </properties>
-                    <command>${vyos_op_scripts_dir}/snmp_ifmib.py --ifindex="$6"</command>
-                  </tagNode>
-                </children>
-              </node>
-            </children>
-          </node>
-          <node name="v3">
-            <properties>
-              <help>Show SNMP v3 status on localhost</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/snmp_v3.py --all</command>
-            <children>
-              <leafNode name="certificates">
-                <properties>
-                  <help>Show TSM certificates</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/snmp_v3_showcerts.sh</command>
-              </leafNode>
-              <leafNode name="group">
-                <properties>
-                  <help>Show the list of configured groups</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/snmp_v3.py --group</command>
-              </leafNode>
-              <leafNode name="trap-target">
-                <properties>
-                  <help>Show the list of configured targets</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/snmp_v3.py --trap</command>
-              </leafNode>
-              <leafNode name="user">
-                <properties>
-                  <help>Show the list of configured users</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/snmp_v3.py --user</command>
-              </leafNode>
-              <leafNode name="view">
-                <properties>
-                  <help>Show the list of configured views</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/snmp_v3.py --view</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/snmp.xml.in b/op-mode-definitions/snmp.xml.in
new file mode 100644
index 000000000..a0a47da40
--- /dev/null
+++ b/op-mode-definitions/snmp.xml.in
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="snmp">
+        <properties>
+          <help>Show status of SNMP on localhost</help>
+        </properties>
+        <children>
+          <tagNode name="community">
+            <properties>
+              <help>Show status of SNMP community</help>
+              <completionHelp>
+                <script>${vyos_op_scripts_dir}/snmp.py --allowed</script>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/snmp.py --community="$4"</command>
+            <children>
+              <tagNode name="host">
+                <properties>
+                  <help>Show status of SNMP on remote host</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/snmp.py --community="$4" --host "$6"</command>
+              </tagNode>
+            </children>
+          </tagNode>
+          <node name="mib">
+            <properties>
+              <help>Show SNMP MIB information</help>
+            </properties>
+            <children>
+              <node name="ifmib">
+                <properties>
+                  <help>Show all SNMP interfaces MIB information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/snmp_ifmib.py</command>
+                <children>
+                  <tagNode name="ifAlias">
+                    <properties>
+                      <help>Show SNMP ifAlias for specified interface</help>
+                      <completionHelp>
+                        <script>${vyos_completion_dir}/list_interfaces.py</script>
+                      </completionHelp>
+                    </properties>
+                    <command>${vyos_op_scripts_dir}/snmp_ifmib.py --ifalias="$6"</command>
+                  </tagNode>
+                  <tagNode name="ifDescr">
+                    <properties>
+                      <help>Show SNMP ifDescr for specified interface</help>
+                      <completionHelp>
+                        <script>${vyos_completion_dir}/list_interfaces.py</script>
+                      </completionHelp>
+                    </properties>
+                    <command>${vyos_op_scripts_dir}/snmp_ifmib.py --ifdescr="$6"</command>
+                  </tagNode>
+                  <tagNode name="ifIndex">
+                    <properties>
+                      <help>Show SNMP ifDescr for specified interface</help>
+                      <completionHelp>
+                        <script>${vyos_completion_dir}/list_interfaces.py</script>
+                      </completionHelp>
+                    </properties>
+                    <command>${vyos_op_scripts_dir}/snmp_ifmib.py --ifindex="$6"</command>
+                  </tagNode>
+                </children>
+              </node>
+            </children>
+          </node>
+          <node name="v3">
+            <properties>
+              <help>Show SNMP v3 status on localhost</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/snmp_v3.py --all</command>
+            <children>
+              <leafNode name="certificates">
+                <properties>
+                  <help>Show TSM certificates</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/snmp_v3_showcerts.sh</command>
+              </leafNode>
+              <leafNode name="group">
+                <properties>
+                  <help>Show the list of configured groups</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/snmp_v3.py --group</command>
+              </leafNode>
+              <leafNode name="trap-target">
+                <properties>
+                  <help>Show the list of configured targets</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/snmp_v3.py --trap</command>
+              </leafNode>
+              <leafNode name="user">
+                <properties>
+                  <help>Show the list of configured users</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/snmp_v3.py --user</command>
+              </leafNode>
+              <leafNode name="view">
+                <properties>
+                  <help>Show the list of configured views</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/snmp_v3.py --view</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/sstp-server.xml b/op-mode-definitions/sstp-server.xml
deleted file mode 100644
index 03dfc4262..000000000
--- a/op-mode-definitions/sstp-server.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="sstp-server">
-        <properties>
-          <help>Show SSTP server information</help>
-        </properties>
-        <children>
-          <leafNode name="sessions">
-            <properties>
-              <help>Show active SSTP server sessions</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="sstp" --action="show sessions"</command>
-          </leafNode>
-          <leafNode name="statistics">
-            <properties>
-              <help>Show SSTP server statistics</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="sstp" --action="show stat"</command>
-          </leafNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/sstp-server.xml.in b/op-mode-definitions/sstp-server.xml.in
new file mode 100644
index 000000000..03dfc4262
--- /dev/null
+++ b/op-mode-definitions/sstp-server.xml.in
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="sstp-server">
+        <properties>
+          <help>Show SSTP server information</help>
+        </properties>
+        <children>
+          <leafNode name="sessions">
+            <properties>
+              <help>Show active SSTP server sessions</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="sstp" --action="show sessions"</command>
+          </leafNode>
+          <leafNode name="statistics">
+            <properties>
+              <help>Show SSTP server statistics</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/ppp-server-ctrl.py --proto="sstp" --action="show stat"</command>
+          </leafNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/telnet.xml b/op-mode-definitions/telnet.xml
deleted file mode 100644
index c5bb6d283..000000000
--- a/op-mode-definitions/telnet.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="telnet">
-    <properties>
-      <help>Telnet to a node</help>
-    </properties>
-    <children>
-      <tagNode name="to">
-        <properties>
-          <help>Telnet to a host</help>
-          <completionHelp>
-            <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-          </completionHelp>
-        </properties>
-        <command>/usr/bin/telnet $3</command>
-        <children>
-          <tagNode name="port">
-            <properties>
-              <help>Telnet to a host:port</help>
-              <completionHelp>
-                <list>&lt;0-65535&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/telnet $3 $5</command>
-          </tagNode>
-        </children>
-      </tagNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/telnet.xml.in b/op-mode-definitions/telnet.xml.in
new file mode 100644
index 000000000..c5bb6d283
--- /dev/null
+++ b/op-mode-definitions/telnet.xml.in
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="telnet">
+    <properties>
+      <help>Telnet to a node</help>
+    </properties>
+    <children>
+      <tagNode name="to">
+        <properties>
+          <help>Telnet to a host</help>
+          <completionHelp>
+            <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+          </completionHelp>
+        </properties>
+        <command>/usr/bin/telnet $3</command>
+        <children>
+          <tagNode name="port">
+            <properties>
+              <help>Telnet to a host:port</help>
+              <completionHelp>
+                <list>&lt;0-65535&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/telnet $3 $5</command>
+          </tagNode>
+        </children>
+      </tagNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/terminal.xml b/op-mode-definitions/terminal.xml
deleted file mode 100644
index 9c4e629cb..000000000
--- a/op-mode-definitions/terminal.xml
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="clear">
-    <properties>
-      <help>Clear system information</help>
-    </properties>
-    <children>
-      <node name="console">
-        <properties>
-          <help>Clear screen</help>
-        </properties>
-        <command>/usr/bin/clear</command>
-      </node>
-    </children>
-  </node>
-  <node name="reset">
-    <properties>
-      <help>Reset a service</help>
-    </properties>
-    <children>
-      <node name="terminal">
-        <properties>
-          <help>Reset terminal</help>
-        </properties>
-        <command>/usr/bin/reset</command>
-      </node>
-    </children>
-  </node>
-  <node name="set">
-    <properties>
-      <help>Set operational options</help>
-    </properties>
-    <children>
-      <tagNode name="builtin">
-        <properties>
-          <help>Bash builtin set command</help>
-          <completionHelp>
-            <list>&lt;OPTION&gt;</list>
-          </completionHelp>
-        </properties>
-        <command>builtin $3</command>
-      </tagNode>
-
-      <node name="console">
-        <properties>
-          <help>Control console behaviors</help>
-        </properties>
-        <children>
-          <leafNode name="keymap">
-            <properties>
-              <help>Reconfigure console keyboard layout</help>
-            </properties>
-            <command>sudo dpkg-reconfigure -f dialog keyboard-configuration &amp;&amp; sudo systemctl restart keyboard-setup</command>
-          </leafNode>
-        </children>
-      </node>
-
-      <node name="terminal">
-        <properties>
-          <help>Control terminal behaviors</help>
-        </properties>
-        <children>
-
-          <node name="key">
-            <properties>
-              <help>Set key behaviors</help>
-            </properties>
-            <children>
-              <tagNode name="query-help">
-                <properties>
-                  <help>Enable/disable getting help using question mark (default enabled)</help>
-                  <completionHelp>
-                    <list>enable disable</list>
-                  </completionHelp>
-                </properties>
-                <command>${vyos_op_scripts_dir}/toggle_help_binding.sh $5</command>
-              </tagNode>
-            </children>
-          </node>
-
-          <node name="pager">
-            <properties>
-              <help>Set terminal pager to default (less)</help>
-            </properties>
-            <command>VYATTA_PAGER=${_vyatta_default_pager}</command>
-          </node>
-          <tagNode name="pager">
-            <properties>
-              <help>Set terminal pager</help>
-              <completionHelp>
-                <list>&lt;PROGRAM&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>VYATTA_PAGER=$4</command>
-          </tagNode>
-
-          <tagNode name="length">
-            <properties>
-              <help>Set terminal to given number of rows (0 disables paging)</help>
-              <completionHelp>
-                <list>&lt;NUMBER&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>if [ "$4" -eq 0 ]; then VYATTA_PAGER=cat; else VYATTA_PAGER=${_vyatta_default_pager}; stty rows $4; fi</command>
-          </tagNode>
-
-          <tagNode name="width">
-            <properties>
-              <help>Set terminal to given number of columns</help>
-              <completionHelp>
-                <list>&lt;NUMBER&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>stty columns $4</command>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-
-
-</interfaceDefinition>
diff --git a/op-mode-definitions/terminal.xml.in b/op-mode-definitions/terminal.xml.in
new file mode 100644
index 000000000..9c4e629cb
--- /dev/null
+++ b/op-mode-definitions/terminal.xml.in
@@ -0,0 +1,122 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="clear">
+    <properties>
+      <help>Clear system information</help>
+    </properties>
+    <children>
+      <node name="console">
+        <properties>
+          <help>Clear screen</help>
+        </properties>
+        <command>/usr/bin/clear</command>
+      </node>
+    </children>
+  </node>
+  <node name="reset">
+    <properties>
+      <help>Reset a service</help>
+    </properties>
+    <children>
+      <node name="terminal">
+        <properties>
+          <help>Reset terminal</help>
+        </properties>
+        <command>/usr/bin/reset</command>
+      </node>
+    </children>
+  </node>
+  <node name="set">
+    <properties>
+      <help>Set operational options</help>
+    </properties>
+    <children>
+      <tagNode name="builtin">
+        <properties>
+          <help>Bash builtin set command</help>
+          <completionHelp>
+            <list>&lt;OPTION&gt;</list>
+          </completionHelp>
+        </properties>
+        <command>builtin $3</command>
+      </tagNode>
+
+      <node name="console">
+        <properties>
+          <help>Control console behaviors</help>
+        </properties>
+        <children>
+          <leafNode name="keymap">
+            <properties>
+              <help>Reconfigure console keyboard layout</help>
+            </properties>
+            <command>sudo dpkg-reconfigure -f dialog keyboard-configuration &amp;&amp; sudo systemctl restart keyboard-setup</command>
+          </leafNode>
+        </children>
+      </node>
+
+      <node name="terminal">
+        <properties>
+          <help>Control terminal behaviors</help>
+        </properties>
+        <children>
+
+          <node name="key">
+            <properties>
+              <help>Set key behaviors</help>
+            </properties>
+            <children>
+              <tagNode name="query-help">
+                <properties>
+                  <help>Enable/disable getting help using question mark (default enabled)</help>
+                  <completionHelp>
+                    <list>enable disable</list>
+                  </completionHelp>
+                </properties>
+                <command>${vyos_op_scripts_dir}/toggle_help_binding.sh $5</command>
+              </tagNode>
+            </children>
+          </node>
+
+          <node name="pager">
+            <properties>
+              <help>Set terminal pager to default (less)</help>
+            </properties>
+            <command>VYATTA_PAGER=${_vyatta_default_pager}</command>
+          </node>
+          <tagNode name="pager">
+            <properties>
+              <help>Set terminal pager</help>
+              <completionHelp>
+                <list>&lt;PROGRAM&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>VYATTA_PAGER=$4</command>
+          </tagNode>
+
+          <tagNode name="length">
+            <properties>
+              <help>Set terminal to given number of rows (0 disables paging)</help>
+              <completionHelp>
+                <list>&lt;NUMBER&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>if [ "$4" -eq 0 ]; then VYATTA_PAGER=cat; else VYATTA_PAGER=${_vyatta_default_pager}; stty rows $4; fi</command>
+          </tagNode>
+
+          <tagNode name="width">
+            <properties>
+              <help>Set terminal to given number of columns</help>
+              <completionHelp>
+                <list>&lt;NUMBER&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>stty columns $4</command>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+
+
+</interfaceDefinition>
diff --git a/op-mode-definitions/traceroute.xml b/op-mode-definitions/traceroute.xml
deleted file mode 100644
index 1b619ed43..000000000
--- a/op-mode-definitions/traceroute.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <tagNode name="traceroute">
-    <properties>
-      <help>Track network path to node</help>
-      <completionHelp>
-        <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-      </completionHelp>
-    </properties>
-    <command>/usr/bin/traceroute "$2"</command>
-  </tagNode>
-  <node name="traceroute">
-    <properties>
-      <help>Track network path to node</help>
-      <completionHelp>
-        <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-      </completionHelp>
-    </properties>
-    <children>
-      <tagNode name="ipv4">
-        <properties>
-          <help>Explicitly use IPv4 when tracing the path</help>
-          <completionHelp>
-            <list>&lt;hostname&gt; &lt;x.x.x.x&gt;</list>
-          </completionHelp>
-        </properties>
-        <command>/usr/bin/traceroute -4 "$3"</command>
-        <children>
-          <node name="tcp">
-            <properties>
-              <help>Route tracing and port detection using TCP</help>
-            </properties>
-            <command>sudo /usr/bin/tcptraceroute "$3" </command>
-            <children>
-              <tagNode name="port">
-                <properties>
-                  <help>TCP port to connect to for path tracing</help>
-                  <completionHelp>
-                    <list>0-65535</list>
-                  </completionHelp>
-                </properties>
-                <command>sudo /usr/bin/tcptraceroute "$3" $6</command>
-              </tagNode>
-            </children>
-          </node>
-        </children>
-      </tagNode>
-      <tagNode name="ipv6">
-        <properties>
-          <help>Explicitly use IPv6 when tracing the path</help>
-          <completionHelp>
-            <list>&lt;hostname&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-          </completionHelp>
-        </properties>
-        <command>/usr/bin/traceroute -6 "$3"</command>
-        <children>
-          <node name="tcp">
-            <properties>
-              <help>Use TCP/IPv6 packets to perform a traceroute</help>
-            </properties>
-            <command>sudo /usr/bin/tcptraceroute6 "$3" </command>
-            <children>
-              <tagNode name="port">
-                <properties>
-                  <help>TCP port to connect to for path tracing</help>
-                  <completionHelp>
-                    <list>0-65535</list>
-                  </completionHelp>
-                </properties>
-                <command>sudo /usr/bin/tcptraceroute6 "$3" $6</command>
-              </tagNode>
-            </children>
-          </node>
-        </children>
-      </tagNode>
-      <tagNode name="vrf">
-        <properties>
-          <help>Track network path to specified node via given VRF</help>
-          <completionHelp>
-            <path>vrf name</path>
-          </completionHelp>
-        </properties>
-        <children>
-          <!-- we need an empty tagNode to pass in a plain fqdn/ip address and
-               let traceroute decide how to handle this parameter -->
-          <tagNode name="">
-            <properties>
-              <help>Track network path to specified node via given VRF</help>
-              <completionHelp>
-                <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/traceroute "$4"</command>
-          </tagNode>
-          <tagNode name="ipv4">
-            <properties>
-              <help>Explicitly use IPv4 when tracing the path via given VRF</help>
-              <completionHelp>
-                <list>&lt;hostname&gt; &lt;x.x.x.x&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/traceroute -4 "$5"</command>
-            <children>
-              <node name="tcp">
-                <properties>
-                  <help>Route tracing and port detection using TCP</help>
-                </properties>
-                <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/tcptraceroute "$5" </command>
-                <children>
-                  <tagNode name="port">
-                    <properties>
-                      <help>TCP port to connect to for path tracing</help>
-                      <completionHelp>
-                        <list>0-65535</list>
-                      </completionHelp>
-                    </properties>
-                    <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/tcptraceroute "$5" $8</command>
-                  </tagNode>
-                </children>
-              </node>
-            </children>
-          </tagNode>
-          <tagNode name="ipv6">
-            <properties>
-              <help>Explicitly use IPv6 when tracing the path via given VRF</help>
-              <completionHelp>
-                <list>&lt;hostname&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/traceroute -6 "$5"</command>
-            <children>
-              <node name="tcp">
-                <properties>
-                  <help>Use TCP/IPv6 packets to perform a traceroute</help>
-                </properties>
-                <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/tcptraceroute6 "$5" </command>
-                <children>
-                  <tagNode name="port">
-                    <properties>
-                      <help>TCP port to connect to for path tracing</help>
-                      <completionHelp>
-                        <list>0-65535</list>
-                      </completionHelp>
-                    </properties>
-                    <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/tcptraceroute6 "$5" $8</command>
-                  </tagNode>
-                </children>
-              </node>
-            </children>
-          </tagNode>
-        </children>
-      </tagNode>
-    </children>
-  </node>
-  <node name="monitor">
-    <children>
-      <tagNode name="traceroute">
-        <properties>
-          <help>Monitor path to destination in realtime</help>
-          <completionHelp>
-            <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-          </completionHelp>
-        </properties>
-        <command>/usr/bin/mtr "$3"</command>
-      </tagNode>
-      <node name="traceroute">
-        <children>
-          <tagNode name="ipv4">
-            <properties>
-              <help>IPv4 fully qualified domain name (FQDN)</help>
-              <completionHelp>
-                <list>&lt;fqdn&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/mtr -4 "$4"</command>
-          </tagNode>
-          <tagNode name="ipv6">
-            <properties>
-              <help>IPv6 fully qualified domain name (FQDN)</help>
-              <completionHelp>
-                <list>&lt;fqdn&gt;</list>
-              </completionHelp>
-            </properties>
-            <command>/usr/bin/mtr -6 "$4"</command>
-          </tagNode>
-          <tagNode name="vrf">
-            <properties>
-              <help>Monitor path to destination in realtime via given VRF</help>
-              <completionHelp>
-                <path>vrf name</path>
-              </completionHelp>
-            </properties>
-            <children>
-              <tagNode name="ipv4">
-                <properties>
-                  <help>IPv4 fully qualified domain name (FQDN)</help>
-                  <completionHelp>
-                    <list>&lt;fqdn&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>sudo /usr/sbin/ip vrf exec "$4" /usr/bin/mtr -4 "$6"</command>
-              </tagNode>
-              <tagNode name="ipv6">
-                <properties>
-                  <help>IPv6 fully qualified domain name (FQDN)</help>
-                  <completionHelp>
-                    <list>&lt;fqdn&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>sudo /usr/sbin/ip vrf exec "$4" /usr/bin/mtr -6 "$6"</command>
-              </tagNode>
-              <tagNode name="">
-                <properties>
-                  <help>Track network path to specified node via given VRF</help>
-                  <completionHelp>
-                    <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
-                  </completionHelp>
-                </properties>
-                <command>sudo /usr/sbin/ip vrf exec "$4" /usr/bin/mtr "$5"</command>
-              </tagNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/traceroute.xml.in b/op-mode-definitions/traceroute.xml.in
new file mode 100644
index 000000000..1b619ed43
--- /dev/null
+++ b/op-mode-definitions/traceroute.xml.in
@@ -0,0 +1,227 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <tagNode name="traceroute">
+    <properties>
+      <help>Track network path to node</help>
+      <completionHelp>
+        <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+      </completionHelp>
+    </properties>
+    <command>/usr/bin/traceroute "$2"</command>
+  </tagNode>
+  <node name="traceroute">
+    <properties>
+      <help>Track network path to node</help>
+      <completionHelp>
+        <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+      </completionHelp>
+    </properties>
+    <children>
+      <tagNode name="ipv4">
+        <properties>
+          <help>Explicitly use IPv4 when tracing the path</help>
+          <completionHelp>
+            <list>&lt;hostname&gt; &lt;x.x.x.x&gt;</list>
+          </completionHelp>
+        </properties>
+        <command>/usr/bin/traceroute -4 "$3"</command>
+        <children>
+          <node name="tcp">
+            <properties>
+              <help>Route tracing and port detection using TCP</help>
+            </properties>
+            <command>sudo /usr/bin/tcptraceroute "$3" </command>
+            <children>
+              <tagNode name="port">
+                <properties>
+                  <help>TCP port to connect to for path tracing</help>
+                  <completionHelp>
+                    <list>0-65535</list>
+                  </completionHelp>
+                </properties>
+                <command>sudo /usr/bin/tcptraceroute "$3" $6</command>
+              </tagNode>
+            </children>
+          </node>
+        </children>
+      </tagNode>
+      <tagNode name="ipv6">
+        <properties>
+          <help>Explicitly use IPv6 when tracing the path</help>
+          <completionHelp>
+            <list>&lt;hostname&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+          </completionHelp>
+        </properties>
+        <command>/usr/bin/traceroute -6 "$3"</command>
+        <children>
+          <node name="tcp">
+            <properties>
+              <help>Use TCP/IPv6 packets to perform a traceroute</help>
+            </properties>
+            <command>sudo /usr/bin/tcptraceroute6 "$3" </command>
+            <children>
+              <tagNode name="port">
+                <properties>
+                  <help>TCP port to connect to for path tracing</help>
+                  <completionHelp>
+                    <list>0-65535</list>
+                  </completionHelp>
+                </properties>
+                <command>sudo /usr/bin/tcptraceroute6 "$3" $6</command>
+              </tagNode>
+            </children>
+          </node>
+        </children>
+      </tagNode>
+      <tagNode name="vrf">
+        <properties>
+          <help>Track network path to specified node via given VRF</help>
+          <completionHelp>
+            <path>vrf name</path>
+          </completionHelp>
+        </properties>
+        <children>
+          <!-- we need an empty tagNode to pass in a plain fqdn/ip address and
+               let traceroute decide how to handle this parameter -->
+          <tagNode name="">
+            <properties>
+              <help>Track network path to specified node via given VRF</help>
+              <completionHelp>
+                <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/traceroute "$4"</command>
+          </tagNode>
+          <tagNode name="ipv4">
+            <properties>
+              <help>Explicitly use IPv4 when tracing the path via given VRF</help>
+              <completionHelp>
+                <list>&lt;hostname&gt; &lt;x.x.x.x&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/traceroute -4 "$5"</command>
+            <children>
+              <node name="tcp">
+                <properties>
+                  <help>Route tracing and port detection using TCP</help>
+                </properties>
+                <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/tcptraceroute "$5" </command>
+                <children>
+                  <tagNode name="port">
+                    <properties>
+                      <help>TCP port to connect to for path tracing</help>
+                      <completionHelp>
+                        <list>0-65535</list>
+                      </completionHelp>
+                    </properties>
+                    <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/tcptraceroute "$5" $8</command>
+                  </tagNode>
+                </children>
+              </node>
+            </children>
+          </tagNode>
+          <tagNode name="ipv6">
+            <properties>
+              <help>Explicitly use IPv6 when tracing the path via given VRF</help>
+              <completionHelp>
+                <list>&lt;hostname&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/traceroute -6 "$5"</command>
+            <children>
+              <node name="tcp">
+                <properties>
+                  <help>Use TCP/IPv6 packets to perform a traceroute</help>
+                </properties>
+                <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/tcptraceroute6 "$5" </command>
+                <children>
+                  <tagNode name="port">
+                    <properties>
+                      <help>TCP port to connect to for path tracing</help>
+                      <completionHelp>
+                        <list>0-65535</list>
+                      </completionHelp>
+                    </properties>
+                    <command>sudo /usr/sbin/ip vrf exec "$3" /usr/bin/tcptraceroute6 "$5" $8</command>
+                  </tagNode>
+                </children>
+              </node>
+            </children>
+          </tagNode>
+        </children>
+      </tagNode>
+    </children>
+  </node>
+  <node name="monitor">
+    <children>
+      <tagNode name="traceroute">
+        <properties>
+          <help>Monitor path to destination in realtime</help>
+          <completionHelp>
+            <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+          </completionHelp>
+        </properties>
+        <command>/usr/bin/mtr "$3"</command>
+      </tagNode>
+      <node name="traceroute">
+        <children>
+          <tagNode name="ipv4">
+            <properties>
+              <help>IPv4 fully qualified domain name (FQDN)</help>
+              <completionHelp>
+                <list>&lt;fqdn&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/mtr -4 "$4"</command>
+          </tagNode>
+          <tagNode name="ipv6">
+            <properties>
+              <help>IPv6 fully qualified domain name (FQDN)</help>
+              <completionHelp>
+                <list>&lt;fqdn&gt;</list>
+              </completionHelp>
+            </properties>
+            <command>/usr/bin/mtr -6 "$4"</command>
+          </tagNode>
+          <tagNode name="vrf">
+            <properties>
+              <help>Monitor path to destination in realtime via given VRF</help>
+              <completionHelp>
+                <path>vrf name</path>
+              </completionHelp>
+            </properties>
+            <children>
+              <tagNode name="ipv4">
+                <properties>
+                  <help>IPv4 fully qualified domain name (FQDN)</help>
+                  <completionHelp>
+                    <list>&lt;fqdn&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>sudo /usr/sbin/ip vrf exec "$4" /usr/bin/mtr -4 "$6"</command>
+              </tagNode>
+              <tagNode name="ipv6">
+                <properties>
+                  <help>IPv6 fully qualified domain name (FQDN)</help>
+                  <completionHelp>
+                    <list>&lt;fqdn&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>sudo /usr/sbin/ip vrf exec "$4" /usr/bin/mtr -6 "$6"</command>
+              </tagNode>
+              <tagNode name="">
+                <properties>
+                  <help>Track network path to specified node via given VRF</help>
+                  <completionHelp>
+                    <list>&lt;hostname&gt; &lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+                  </completionHelp>
+                </properties>
+                <command>sudo /usr/sbin/ip vrf exec "$4" /usr/bin/mtr "$5"</command>
+              </tagNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/traffic-dump.xml b/op-mode-definitions/traffic-dump.xml
deleted file mode 100644
index 6d86f7423..000000000
--- a/op-mode-definitions/traffic-dump.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="monitor">
-    <children>
-      <node name="traffic">
-        <properties>
-          <help>Monitor traffic dumps</help>
-        </properties>
-        <children>
-          <tagNode name="interface">
-            <command>sudo tcpdump -i $4</command>
-            <properties>
-              <help>Monitor traffic dump from an interface</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_dumpable_interfaces.py</script>
-              </completionHelp>
-            </properties>
-            <children>
-              <tagNode name="filter">
-                <command>sudo tcpdump -n -i $4 "${@:6}"</command>
-                <properties>
-                  <help>Monitor traffic matching filter conditions</help>
-                </properties>
-              </tagNode>
-              <tagNode name="save">
-                <command>sudo tcpdump -n -i $4 -w $6</command>
-                <properties>
-                  <help>Save traffic dump from an interface to a file</help>
-                </properties>
-                <children>
-                  <tagNode name="filter">
-                    <command>sudo tcpdump -n -i $4 -w $6 "${@:8}"</command>
-                    <properties>
-                      <help>Save a dump of traffic matching filter conditions to a file</help>
-                    </properties>
-                  </tagNode>
-                </children>
-              </tagNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/traffic-dump.xml.in b/op-mode-definitions/traffic-dump.xml.in
new file mode 100644
index 000000000..6d86f7423
--- /dev/null
+++ b/op-mode-definitions/traffic-dump.xml.in
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="monitor">
+    <children>
+      <node name="traffic">
+        <properties>
+          <help>Monitor traffic dumps</help>
+        </properties>
+        <children>
+          <tagNode name="interface">
+            <command>sudo tcpdump -i $4</command>
+            <properties>
+              <help>Monitor traffic dump from an interface</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_dumpable_interfaces.py</script>
+              </completionHelp>
+            </properties>
+            <children>
+              <tagNode name="filter">
+                <command>sudo tcpdump -n -i $4 "${@:6}"</command>
+                <properties>
+                  <help>Monitor traffic matching filter conditions</help>
+                </properties>
+              </tagNode>
+              <tagNode name="save">
+                <command>sudo tcpdump -n -i $4 -w $6</command>
+                <properties>
+                  <help>Save traffic dump from an interface to a file</help>
+                </properties>
+                <children>
+                  <tagNode name="filter">
+                    <command>sudo tcpdump -n -i $4 -w $6 "${@:8}"</command>
+                    <properties>
+                      <help>Save a dump of traffic matching filter conditions to a file</help>
+                    </properties>
+                  </tagNode>
+                </children>
+              </tagNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/vrrp.xml b/op-mode-definitions/vrrp.xml
deleted file mode 100644
index 856fb440d..000000000
--- a/op-mode-definitions/vrrp.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interfaceDefinition>
-  <node name="show">
-    <children>
-      <node name="vrrp">
-        <properties>
-          <help>Show VRRP (Virtual Router Redundancy Protocol) information</help>
-        </properties>
-        <command>sudo ${vyos_op_scripts_dir}/vrrp.py --summary</command>
-        <children>
-          <node name="statistics">
-            <properties>
-              <help>Show VRRP statistics</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/vrrp.py --statistics</command>
-          </node>
-          <node name="detail">
-            <properties>
-              <help>Show detailed VRRP state information</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/vrrp.py --data</command>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="restart">
-    <children>
-      <node name="vrrp">
-        <properties>
-          <help>Restart the VRRP (Virtual Router Redundancy Protocol) process</help>
-        </properties>
-        <command>sudo systemctl restart keepalived.service</command>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/vrrp.xml.in b/op-mode-definitions/vrrp.xml.in
new file mode 100644
index 000000000..856fb440d
--- /dev/null
+++ b/op-mode-definitions/vrrp.xml.in
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interfaceDefinition>
+  <node name="show">
+    <children>
+      <node name="vrrp">
+        <properties>
+          <help>Show VRRP (Virtual Router Redundancy Protocol) information</help>
+        </properties>
+        <command>sudo ${vyos_op_scripts_dir}/vrrp.py --summary</command>
+        <children>
+          <node name="statistics">
+            <properties>
+              <help>Show VRRP statistics</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/vrrp.py --statistics</command>
+          </node>
+          <node name="detail">
+            <properties>
+              <help>Show detailed VRRP state information</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/vrrp.py --data</command>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="restart">
+    <children>
+      <node name="vrrp">
+        <properties>
+          <help>Restart the VRRP (Virtual Router Redundancy Protocol) process</help>
+        </properties>
+        <command>sudo systemctl restart keepalived.service</command>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/wake-on-lan.xml b/op-mode-definitions/wake-on-lan.xml
deleted file mode 100644
index 1a9b88596..000000000
--- a/op-mode-definitions/wake-on-lan.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="wake-on-lan">
-    <properties>
-      <help>Send Wake-On-LAN (WOL) Magic Packet</help>
-    </properties>
-    <children>
-      <tagNode name="interface">
-        <properties>
-          <help>Interface where the station is connected</help>
-          <completionHelp>
-            <script>${vyos_completion_dir}/list_interfaces.py</script>
-          </completionHelp>
-        </properties>
-        <children>
-          <tagNode name="host">
-            <properties>
-              <help>Station (MAC) address to wake up</help>
-            </properties>
-            <command>sudo /usr/sbin/etherwake -i "$3" "$5"</command>
-          </tagNode>
-        </children>
-        </tagNode>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/wake-on-lan.xml.in b/op-mode-definitions/wake-on-lan.xml.in
new file mode 100644
index 000000000..1a9b88596
--- /dev/null
+++ b/op-mode-definitions/wake-on-lan.xml.in
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="wake-on-lan">
+    <properties>
+      <help>Send Wake-On-LAN (WOL) Magic Packet</help>
+    </properties>
+    <children>
+      <tagNode name="interface">
+        <properties>
+          <help>Interface where the station is connected</help>
+          <completionHelp>
+            <script>${vyos_completion_dir}/list_interfaces.py</script>
+          </completionHelp>
+        </properties>
+        <children>
+          <tagNode name="host">
+            <properties>
+              <help>Station (MAC) address to wake up</help>
+            </properties>
+            <command>sudo /usr/sbin/etherwake -i "$3" "$5"</command>
+          </tagNode>
+        </children>
+        </tagNode>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/webproxy.xml b/op-mode-definitions/webproxy.xml
deleted file mode 100644
index f8ec8fb0a..000000000
--- a/op-mode-definitions/webproxy.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="monitor">
-    <children>
-      <node name="webproxy">
-        <properties>
-          <help>Monitor WebProxy service</help>
-        </properties>
-        <command>${vyatta_bindir}/vyatta-monitor Webproxy squid</command>
-        <children>
-          <node name="access-log">
-            <properties>
-              <help>Monitor the last lines of the squid access log</help>
-            </properties>
-            <command>if [ -f /var/log/squid3/access.log ]; then sudo tail --follow=name /var/log/squid3/access.log; else echo "WebProxy cache-log does not exist"; fi</command>
-          </node>
-          <node name="background">
-            <properties>
-              <help>Monitor Webproxy in the background</help>
-            </properties>
-            <children>
-              <node name="start">
-                <properties>
-                  <help>Start background monitoring of Webproxy</help>
-                </properties>
-                <command>${vyatta_bindir}/vyatta-monitor-background Webproxy squid</command>
-              </node>
-              <node name="stop">
-                <properties>
-                  <help>Stop background monitoring of Webproxy</help>
-                </properties>
-                <command>${vyatta_bindir}/vyatta-monitor-background-stop Webproxy </command>
-              </node>
-            </children>
-          </node>
-          <node name="cache-log">
-            <properties>
-              <help>Monitor the last lines of the squid cache log</help>
-            </properties>
-            <command>if [ -f /var/log/squid3/cache.log ]; then sudo tail --follow=name /var/log/squid3/cache.log; else echo "WebProxy cache-log does not exist"; fi</command>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="restart">
-    <children>
-      <node name="webproxy">
-        <properties>
-          <help>Restart WebProxy service</help>
-        </properties>
-        <command>if cli-shell-api existsActive service webproxy; then sudo systemctl restart squid.service; else echo "Service WebProxy not configured"; fi</command>
-      </node>
-    </children>
-  </node>
-  <node name="show">
-    <children>
-      <node name="webproxy">
-        <properties>
-          <help>Show WebProxy information</help>
-        </properties>
-        <children>
-          <!-- missing blacklist command -->
-          <node name="blacklist">
-            <properties>
-              <help>Show webproxy blacklist information</help>
-            </properties>
-            <children>
-              <node name="categories">
-                <properties>
-                  <help>Show webproxy blacklist categories</help>
-                </properties>
-                <command>${vyos_completion_dir}/list_webproxy_category.sh</command>
-              </node>
-            </children>
-          </node>
-          <node name="log">
-            <properties>
-              <help>Show contents of WebProxy access log</help>
-            </properties>
-            <command>if [ -e /var/log/squid/access.log ]; then sudo less $_vyatta_less_options --prompt="file %i of %m, page %dt of %D" -- `printf "%s\n" /var/log/squid/access.log* | sort -nr`; else echo "No WebProxy log"; fi</command>
-          </node>
-          <node name="update-log">
-            <properties>
-              <help>Show update log for url-filter database</help>
-            </properties>
-            <command>if [ -e /opt/vyatta/etc/config/url-filtering/squidguard/updatestatus ]; then cat /opt/vyatta/etc/config/url-filtering/squidguard/updatestatus; else echo "Update log not found"; fi</command>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="update">
-    <children>
-      <node name="webproxy">
-        <properties>
-          <help>Update WebProxy</help>
-        </properties>
-        <children>
-          <node name="blacklists">
-            <properties>
-              <help>Update the webproxy blacklist database</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/webproxy_update_blacklist.sh --update-blacklist</command>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/webproxy.xml.in b/op-mode-definitions/webproxy.xml.in
new file mode 100644
index 000000000..f8ec8fb0a
--- /dev/null
+++ b/op-mode-definitions/webproxy.xml.in
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="monitor">
+    <children>
+      <node name="webproxy">
+        <properties>
+          <help>Monitor WebProxy service</help>
+        </properties>
+        <command>${vyatta_bindir}/vyatta-monitor Webproxy squid</command>
+        <children>
+          <node name="access-log">
+            <properties>
+              <help>Monitor the last lines of the squid access log</help>
+            </properties>
+            <command>if [ -f /var/log/squid3/access.log ]; then sudo tail --follow=name /var/log/squid3/access.log; else echo "WebProxy cache-log does not exist"; fi</command>
+          </node>
+          <node name="background">
+            <properties>
+              <help>Monitor Webproxy in the background</help>
+            </properties>
+            <children>
+              <node name="start">
+                <properties>
+                  <help>Start background monitoring of Webproxy</help>
+                </properties>
+                <command>${vyatta_bindir}/vyatta-monitor-background Webproxy squid</command>
+              </node>
+              <node name="stop">
+                <properties>
+                  <help>Stop background monitoring of Webproxy</help>
+                </properties>
+                <command>${vyatta_bindir}/vyatta-monitor-background-stop Webproxy </command>
+              </node>
+            </children>
+          </node>
+          <node name="cache-log">
+            <properties>
+              <help>Monitor the last lines of the squid cache log</help>
+            </properties>
+            <command>if [ -f /var/log/squid3/cache.log ]; then sudo tail --follow=name /var/log/squid3/cache.log; else echo "WebProxy cache-log does not exist"; fi</command>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="restart">
+    <children>
+      <node name="webproxy">
+        <properties>
+          <help>Restart WebProxy service</help>
+        </properties>
+        <command>if cli-shell-api existsActive service webproxy; then sudo systemctl restart squid.service; else echo "Service WebProxy not configured"; fi</command>
+      </node>
+    </children>
+  </node>
+  <node name="show">
+    <children>
+      <node name="webproxy">
+        <properties>
+          <help>Show WebProxy information</help>
+        </properties>
+        <children>
+          <!-- missing blacklist command -->
+          <node name="blacklist">
+            <properties>
+              <help>Show webproxy blacklist information</help>
+            </properties>
+            <children>
+              <node name="categories">
+                <properties>
+                  <help>Show webproxy blacklist categories</help>
+                </properties>
+                <command>${vyos_completion_dir}/list_webproxy_category.sh</command>
+              </node>
+            </children>
+          </node>
+          <node name="log">
+            <properties>
+              <help>Show contents of WebProxy access log</help>
+            </properties>
+            <command>if [ -e /var/log/squid/access.log ]; then sudo less $_vyatta_less_options --prompt="file %i of %m, page %dt of %D" -- `printf "%s\n" /var/log/squid/access.log* | sort -nr`; else echo "No WebProxy log"; fi</command>
+          </node>
+          <node name="update-log">
+            <properties>
+              <help>Show update log for url-filter database</help>
+            </properties>
+            <command>if [ -e /opt/vyatta/etc/config/url-filtering/squidguard/updatestatus ]; then cat /opt/vyatta/etc/config/url-filtering/squidguard/updatestatus; else echo "Update log not found"; fi</command>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="update">
+    <children>
+      <node name="webproxy">
+        <properties>
+          <help>Update WebProxy</help>
+        </properties>
+        <children>
+          <node name="blacklists">
+            <properties>
+              <help>Update the webproxy blacklist database</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/webproxy_update_blacklist.sh --update-blacklist</command>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/wireguard.xml b/op-mode-definitions/wireguard.xml
deleted file mode 100644
index a7bfa36a3..000000000
--- a/op-mode-definitions/wireguard.xml
+++ /dev/null
@@ -1,138 +0,0 @@
-<?xml version="1.0"?>
-<!-- wireguard key management -->
-<interfaceDefinition>
-  <node name="generate">
-    <children>
-      <node name="wireguard">
-        <properties>
-          <help>wireguard key generation utility</help>
-        </properties>
-        <children>
-          <leafNode name="default-keypair">
-            <properties>
-              <help>generates the wireguard default-keypair</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/wireguard.py --genkey</command>
-          </leafNode>
-          <leafNode name="preshared-key">
-            <properties>
-              <help>generate a wireguard preshared key</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/wireguard.py --genpsk</command>
-          </leafNode>
-          <tagNode name="named-keypairs">
-            <properties>
-              <help>Generates named wireguard keypairs</help>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/wireguard.py --genkey --location "$4"</command>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="show">
-    <children>
-      <node name="wireguard">
-        <properties>
-          <help>Show wireguard properties</help>
-        </properties>
-        <children>
-          <node name="keypairs">
-            <properties>
-              <help>Shows named wireguard keys</help>
-            </properties>
-            <children>
-              <tagNode name="pubkey">
-                <properties>
-                  <help>Show wireguard private named key</help>
-                  <completionHelp>
-                    <script>${vyos_op_scripts_dir}/wireguard.py --listkdir</script>
-                  </completionHelp>
-                </properties>
-                <command>${vyos_op_scripts_dir}/wireguard.py --showpub --location "$5"</command>
-              </tagNode>
-              <tagNode name="privkey">
-                <properties>
-                  <help>Show wireguard public named key</help>
-                  <completionHelp>
-                    <script>${vyos_op_scripts_dir}/wireguard.py --listkdir</script>
-                  </completionHelp>
-                </properties>
-                <command>${vyos_op_scripts_dir}/wireguard.py --showpriv --location "$5"</command>
-              </tagNode>
-            </children>
-          </node>
-        </children>
-      </node>
-      <node name="interfaces">
-        <children>
-          <tagNode name="wireguard">
-            <properties>
-              <help>show wireguard interface information</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_interfaces.py --type wireguard</script>
-              </completionHelp>
-            </properties>
-	    <command>sudo ${vyos_op_scripts_dir}/wireguard.py --showinterface "$4"</command>
-            <children>
-              <leafNode name="allowed-ips">
-                <properties>
-                  <help>show all allowed-ips for the specified interface</help>
-                </properties>
-                <command>sudo wg show "$4" allowed-ips</command>
-              </leafNode>
-              <leafNode name="endpoints">
-                <properties>
-                  <help>show all endpoints for the specified interface</help>
-                </properties>
-                <command>sudo wg show "$4" endpoints</command>
-              </leafNode>
-              <leafNode name="peers">
-                <properties>
-                  <help>show all peer IDs for the specified interface</help>
-                </properties>
-                <command>sudo wg show "$4" peers</command>
-              </leafNode>
-             <!-- more commands upon request -->
-            </children>
-          </tagNode>
-          <node name="wireguard">
-            <properties>
-              <help>Show wireguard interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=wireguard --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed wireguard interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=wireguard --action=show</command>
-              </leafNode>
-            </children>
-          </node>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="delete">
-    <children>
-      <node name="wireguard">
-        <properties>
-          <help>Delete wireguard properties</help>
-        </properties>
-        <children>
-          <tagNode name="keypair">
-            <properties>
-              <help>Delete a wireguard keypair</help>
-              <completionHelp>
-                <script>${vyos_op_scripts_dir}/wireguard.py --listkdir</script>
-              </completionHelp>
-            </properties>
-            <command>sudo ${vyos_op_scripts_dir}/wireguard.py --delkdir --location "$4"</command>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
-
diff --git a/op-mode-definitions/wireguard.xml.in b/op-mode-definitions/wireguard.xml.in
new file mode 100644
index 000000000..69ba8043d
--- /dev/null
+++ b/op-mode-definitions/wireguard.xml.in
@@ -0,0 +1,137 @@
+<?xml version="1.0"?>
+<!-- wireguard key management -->
+<interfaceDefinition>
+  <node name="generate">
+    <children>
+      <node name="wireguard">
+        <properties>
+          <help>wireguard key generation utility</help>
+        </properties>
+        <children>
+          <leafNode name="default-keypair">
+            <properties>
+              <help>generates the wireguard default-keypair</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/wireguard.py --genkey</command>
+          </leafNode>
+          <leafNode name="preshared-key">
+            <properties>
+              <help>generate a wireguard preshared key</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/wireguard.py --genpsk</command>
+          </leafNode>
+          <tagNode name="named-keypairs">
+            <properties>
+              <help>Generates named wireguard keypairs</help>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/wireguard.py --genkey --location "$4"</command>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="show">
+    <children>
+      <node name="wireguard">
+        <properties>
+          <help>Show wireguard properties</help>
+        </properties>
+        <children>
+          <node name="keypairs">
+            <properties>
+              <help>Shows named wireguard keys</help>
+            </properties>
+            <children>
+              <tagNode name="pubkey">
+                <properties>
+                  <help>Show wireguard private named key</help>
+                  <completionHelp>
+                    <script>${vyos_op_scripts_dir}/wireguard.py --listkdir</script>
+                  </completionHelp>
+                </properties>
+                <command>${vyos_op_scripts_dir}/wireguard.py --showpub --location "$5"</command>
+              </tagNode>
+              <tagNode name="privkey">
+                <properties>
+                  <help>Show wireguard public named key</help>
+                  <completionHelp>
+                    <script>${vyos_op_scripts_dir}/wireguard.py --listkdir</script>
+                  </completionHelp>
+                </properties>
+                <command>${vyos_op_scripts_dir}/wireguard.py --showpriv --location "$5"</command>
+              </tagNode>
+            </children>
+          </node>
+        </children>
+      </node>
+      <node name="interfaces">
+        <children>
+          <tagNode name="wireguard">
+            <properties>
+              <help>show wireguard interface information</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_interfaces.py --type wireguard</script>
+              </completionHelp>
+            </properties>
+	    <command>sudo ${vyos_op_scripts_dir}/wireguard.py --showinterface "$4"</command>
+            <children>
+              <leafNode name="allowed-ips">
+                <properties>
+                  <help>show all allowed-ips for the specified interface</help>
+                </properties>
+                <command>sudo wg show "$4" allowed-ips</command>
+              </leafNode>
+              <leafNode name="endpoints">
+                <properties>
+                  <help>show all endpoints for the specified interface</help>
+                </properties>
+                <command>sudo wg show "$4" endpoints</command>
+              </leafNode>
+              <leafNode name="peers">
+                <properties>
+                  <help>show all peer IDs for the specified interface</help>
+                </properties>
+                <command>sudo wg show "$4" peers</command>
+              </leafNode>
+             <!-- more commands upon request -->
+            </children>
+          </tagNode>
+          <node name="wireguard">
+            <properties>
+              <help>Show wireguard interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=wireguard --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed wireguard interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=wireguard --action=show</command>
+              </leafNode>
+            </children>
+          </node>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="delete">
+    <children>
+      <node name="wireguard">
+        <properties>
+          <help>Delete wireguard properties</help>
+        </properties>
+        <children>
+          <tagNode name="keypair">
+            <properties>
+              <help>Delete a wireguard keypair</help>
+              <completionHelp>
+                <script>${vyos_op_scripts_dir}/wireguard.py --listkdir</script>
+              </completionHelp>
+            </properties>
+            <command>sudo ${vyos_op_scripts_dir}/wireguard.py --delkdir --location "$4"</command>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/wireless.xml b/op-mode-definitions/wireless.xml
deleted file mode 100644
index a3a9d1f55..000000000
--- a/op-mode-definitions/wireless.xml
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
-  <node name="clear">
-    <children>
-      <node name="interfaces">
-        <children>
-          <node name="wireless">
-            <properties>
-              <help>Clear wireless interface information</help>
-            </properties>
-            <children>
-              <leafNode name="counters">
-                <properties>
-                  <help>Clear all wireless interface counters</help>
-                </properties>
-                <command>sudo ${vyos_op_scripts_dir}/show_interfaces.py --action=clear --intf-type="$3"</command>
-              </leafNode>
-            </children>
-          </node>
-          <tagNode name="wireless">
-            <properties>
-              <help>Clear interface information for a given wireless interface</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_interfaces.py --type wireless</script>
-              </completionHelp>
-            </properties>
-            <children>
-              <leafNode name="counters">
-                <properties>
-                  <help>Clear all wireless interface counters</help>
-                </properties>
-                <command>sudo ${vyos_op_scripts_dir}/show_interfaces.py --action=clear --intf="$4"</command>
-              </leafNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-  <node name="show">
-    <children>
-      <node name="interfaces">
-        <children>
-          <node name="wireless">
-            <properties>
-              <help>Show wireless interface information</help>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=wireless --action=show-brief</command>
-            <children>
-              <leafNode name="detail">
-                <properties>
-                  <help>Show detailed wireless interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=wireless --action=show</command>
-              </leafNode>
-              <leafNode name="info">
-                <properties>
-                  <help>Show wireless interface configuration</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_wireless.py --brief</command>
-              </leafNode>
-            </children>
-          </node>
-          <tagNode name="wireless">
-            <properties>
-              <help>Show specified wireless interface information</help>
-              <completionHelp>
-                <script>${vyos_completion_dir}/list_interfaces.py --type wireless</script>
-              </completionHelp>
-            </properties>
-            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
-            <children>
-              <leafNode name="brief">
-                <properties>
-                  <help>Show summary of the specified wireless interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
-              </leafNode>
-              <node name="scan">
-                <properties>
-                  <help>Show summary of the specified wireless interface information</help>
-                </properties>
-                <command>sudo ${vyos_op_scripts_dir}/show_wireless.py --scan "$4"</command>
-                <children>
-                  <leafNode name="detail">
-                    <properties>
-                      <help>Show detailed scan results</help>
-                    </properties>
-                    <command>sudo /sbin/iw dev "$4" scan ap-force</command>
-                  </leafNode>
-                </children>
-              </node>
-              <leafNode name="stations">
-                <properties>
-                  <help>Show specified wireless interface information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_wireless.py --stations "$4"</command>
-              </leafNode>
-              <tagNode name="vif">
-                <properties>
-                  <help>Show specified virtual network interface (vif) information</help>
-                </properties>
-                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4.$6"</command>
-                <children>
-                  <leafNode name="brief">
-                    <properties>
-                      <help>Show summary of specified virtual network interface (vif) information</help>
-                    </properties>
-                    <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4.$6" --action=show-brief</command>
-                  </leafNode>
-                </children>
-              </tagNode>
-            </children>
-          </tagNode>
-        </children>
-      </node>
-    </children>
-  </node>
-</interfaceDefinition>
diff --git a/op-mode-definitions/wireless.xml.in b/op-mode-definitions/wireless.xml.in
new file mode 100644
index 000000000..a3a9d1f55
--- /dev/null
+++ b/op-mode-definitions/wireless.xml.in
@@ -0,0 +1,119 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+  <node name="clear">
+    <children>
+      <node name="interfaces">
+        <children>
+          <node name="wireless">
+            <properties>
+              <help>Clear wireless interface information</help>
+            </properties>
+            <children>
+              <leafNode name="counters">
+                <properties>
+                  <help>Clear all wireless interface counters</help>
+                </properties>
+                <command>sudo ${vyos_op_scripts_dir}/show_interfaces.py --action=clear --intf-type="$3"</command>
+              </leafNode>
+            </children>
+          </node>
+          <tagNode name="wireless">
+            <properties>
+              <help>Clear interface information for a given wireless interface</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_interfaces.py --type wireless</script>
+              </completionHelp>
+            </properties>
+            <children>
+              <leafNode name="counters">
+                <properties>
+                  <help>Clear all wireless interface counters</help>
+                </properties>
+                <command>sudo ${vyos_op_scripts_dir}/show_interfaces.py --action=clear --intf="$4"</command>
+              </leafNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+  <node name="show">
+    <children>
+      <node name="interfaces">
+        <children>
+          <node name="wireless">
+            <properties>
+              <help>Show wireless interface information</help>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=wireless --action=show-brief</command>
+            <children>
+              <leafNode name="detail">
+                <properties>
+                  <help>Show detailed wireless interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf-type=wireless --action=show</command>
+              </leafNode>
+              <leafNode name="info">
+                <properties>
+                  <help>Show wireless interface configuration</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_wireless.py --brief</command>
+              </leafNode>
+            </children>
+          </node>
+          <tagNode name="wireless">
+            <properties>
+              <help>Show specified wireless interface information</help>
+              <completionHelp>
+                <script>${vyos_completion_dir}/list_interfaces.py --type wireless</script>
+              </completionHelp>
+            </properties>
+            <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+            <children>
+              <leafNode name="brief">
+                <properties>
+                  <help>Show summary of the specified wireless interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4" --action=show-brief</command>
+              </leafNode>
+              <node name="scan">
+                <properties>
+                  <help>Show summary of the specified wireless interface information</help>
+                </properties>
+                <command>sudo ${vyos_op_scripts_dir}/show_wireless.py --scan "$4"</command>
+                <children>
+                  <leafNode name="detail">
+                    <properties>
+                      <help>Show detailed scan results</help>
+                    </properties>
+                    <command>sudo /sbin/iw dev "$4" scan ap-force</command>
+                  </leafNode>
+                </children>
+              </node>
+              <leafNode name="stations">
+                <properties>
+                  <help>Show specified wireless interface information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_wireless.py --stations "$4"</command>
+              </leafNode>
+              <tagNode name="vif">
+                <properties>
+                  <help>Show specified virtual network interface (vif) information</help>
+                </properties>
+                <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4.$6"</command>
+                <children>
+                  <leafNode name="brief">
+                    <properties>
+                      <help>Show summary of specified virtual network interface (vif) information</help>
+                    </properties>
+                    <command>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4.$6" --action=show-brief</command>
+                  </leafNode>
+                </children>
+              </tagNode>
+            </children>
+          </tagNode>
+        </children>
+      </node>
+    </children>
+  </node>
+</interfaceDefinition>
-- 
cgit v1.2.3