summaryrefslogtreecommitdiff
path: root/op-mode-definitions
diff options
context:
space:
mode:
Diffstat (limited to 'op-mode-definitions')
-rw-r--r--op-mode-definitions/generate-ipsec-profile.xml.in145
-rw-r--r--op-mode-definitions/generate-wireguard.xml.in72
-rw-r--r--op-mode-definitions/include/bgp/afi-common.xml.i19
-rw-r--r--op-mode-definitions/include/vtysh-generic-wide.xml.i8
-rw-r--r--op-mode-definitions/monitor-bridge.xml.in33
-rw-r--r--op-mode-definitions/openvpn.xml.in44
-rw-r--r--op-mode-definitions/pki.xml.in116
-rw-r--r--op-mode-definitions/show-bgp.xml.in75
-rw-r--r--op-mode-definitions/show-bridge.xml.in31
-rw-r--r--op-mode-definitions/show-interfaces-bridge.xml.in6
-rw-r--r--op-mode-definitions/show-interfaces-wireguard.xml.in66
-rw-r--r--op-mode-definitions/wireguard.xml.in189
12 files changed, 547 insertions, 257 deletions
diff --git a/op-mode-definitions/generate-ipsec-profile.xml.in b/op-mode-definitions/generate-ipsec-profile.xml.in
new file mode 100644
index 000000000..be9227971
--- /dev/null
+++ b/op-mode-definitions/generate-ipsec-profile.xml.in
@@ -0,0 +1,145 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="generate">
+ <children>
+ <node name="ipsec">
+ <properties>
+ <help>Generate IPsec related configurations</help>
+ </properties>
+ <children>
+ <node name="profile">
+ <properties>
+ <help>Generate IKEv2 IPSec remote-access VPN profiles</help>
+ </properties>
+ <children>
+ <tagNode name="ios-remote-access">
+ <properties>
+ <help>Generate iOS profile for specified remote-access connection name</help>
+ <completionHelp>
+ <path>vpn ipsec remote-access connection</path>
+ </completionHelp>
+ </properties>
+ <children>
+ <tagNode name="remote">
+ <properties>
+ <help>Remote address where the client will connect to</help>
+ <completionHelp>
+ <list>&lt;fqdn&gt;</list>
+ <script>${vyos_completion_dir}/list_local_ips.sh --both</script>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/ikev2_profile_generator.py --os ios --connection "$5" --remote "$7"</command>
+ <children>
+ <tagNode name="name">
+ <properties>
+ <help>Connection name as seen in the VPN application</help>
+ <completionHelp>
+ <list>&lt;name&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/ikev2_profile_generator.py --os ios --connection "$5" --remote "$7" --name "$9"</command>
+ <children>
+ <tagNode name="profile">
+ <properties>
+ <help>Profile name as seen under system profiles</help>
+ <completionHelp>
+ <list>&lt;name&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/ikev2_profile_generator.py --os ios --connection "$5" --remote "$7" --name "$9" --profile "${11}"</command>
+ </tagNode>
+ </children>
+ </tagNode>
+ <tagNode name="profile">
+ <properties>
+ <help>Profile name as seen under system profiles</help>
+ <completionHelp>
+ <list>&lt;name&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/ikev2_profile_generator.py --os ios --connection "$5" --remote "$7" --profile "$9"</command>
+ <children>
+ <tagNode name="name">
+ <properties>
+ <help>Connection name as seen in the VPN application</help>
+ <completionHelp>
+ <list>&lt;name&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/ikev2_profile_generator.py --os ios --connection "$5" --remote "$7" --profile "$9" --name "${11}"</command>
+ </tagNode>
+ </children>
+ </tagNode>
+ </children>
+ </tagNode>
+ </children>
+ </tagNode>
+ <tagNode name="windows-remote-access">
+ <properties>
+ <help>Generate iOS profile for specified remote-access connection name</help>
+ <completionHelp>
+ <path>vpn ipsec remote-access connection</path>
+ </completionHelp>
+ </properties>
+ <children>
+ <tagNode name="remote">
+ <properties>
+ <help>Remote address where the client will connect to</help>
+ <completionHelp>
+ <list>&lt;fqdn&gt;</list>
+ <script>${vyos_completion_dir}/list_local_ips.sh --both</script>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/ikev2_profile_generator.py --os windows --connection "$5" --remote "$7"</command>
+ <children>
+ <tagNode name="name">
+ <properties>
+ <help>Connection name as seen in the VPN application</help>
+ <completionHelp>
+ <list>&lt;name&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/ikev2_profile_generator.py --os windows --connection "$5" --remote "$7" --name "$9"</command>
+ <children>
+ <tagNode name="profile">
+ <properties>
+ <help>Profile name as seen under system profiles</help>
+ <completionHelp>
+ <list>&lt;name&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/ikev2_profile_generator.py --os windows --connection "$5" --remote "$7" --name "$9" --profile "${11}"</command>
+ </tagNode>
+ </children>
+ </tagNode>
+ <tagNode name="profile">
+ <properties>
+ <help>Profile name as seen under system profiles</help>
+ <completionHelp>
+ <list>&lt;name&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/ikev2_profile_generator.py --os windows --connection "$5" --remote "$7" --profile "$9"</command>
+ <children>
+ <tagNode name="name">
+ <properties>
+ <help>Connection name as seen in the VPN application</help>
+ <completionHelp>
+ <list>&lt;name&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/ikev2_profile_generator.py --os windows --connection "$5" --remote "$7" --profile "$9" --name "${11}"</command>
+ </tagNode>
+ </children>
+ </tagNode>
+ </children>
+ </tagNode>
+ </children>
+ </tagNode>
+ </children>
+ </node>
+ </children>
+ </node>
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/generate-wireguard.xml.in b/op-mode-definitions/generate-wireguard.xml.in
new file mode 100644
index 000000000..6557b463b
--- /dev/null
+++ b/op-mode-definitions/generate-wireguard.xml.in
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="generate">
+ <children>
+ <node name="wireguard">
+ <properties>
+ <help>Generate Wireguard keys</help>
+ </properties>
+ <children>
+ <tagNode name="client-config">
+ <properties>
+ <help>Generate Client config QR code</help>
+ <completionHelp>
+ <list>&lt;client-name&gt;</list>
+ </completionHelp>
+ </properties>
+ <children>
+ <tagNode name="interface">
+ <properties>
+ <help>Local interface used for connection</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py --type wireguard</script>
+ </completionHelp>
+ </properties>
+ <children>
+ <tagNode name="server">
+ <properties>
+ <help>IP address/FQDN used for client connection</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_local_ips.sh --both</script>
+ <list>&lt;hostname&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/wireguard_client.py --name "$4" --interface "$6" --server "$8"</command>
+ <children>
+ <tagNode name="address">
+ <properties>
+ <help>IPv4/IPv6 address used by client</help>
+ <completionHelp>
+ <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/wireguard_client.py --name "$4" --interface "$6" --server "$8" --address "${10}"</command>
+ <children>
+ <tagNode name="address">
+ <properties>
+ <help>IPv4/IPv6 address used by client</help>
+ <completionHelp>
+ <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/wireguard_client.py --name "$4" --interface "$6" --server "$8" --address "${10}" --address "${12}"</command>
+ </tagNode>
+ </children>
+ </tagNode>
+ </children>
+ </tagNode>
+ </children>
+ </tagNode>
+ </children>
+ </tagNode>
+ <leafNode name="key-pair">
+ <properties>
+ <help>Generate Wireguard key pair for use with server or peer</help>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --wireguard --key "noname"</command>
+ </leafNode>
+ </children>
+ </node>
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/include/bgp/afi-common.xml.i b/op-mode-definitions/include/bgp/afi-common.xml.i
index e48482282..7fc59f3b0 100644
--- a/op-mode-definitions/include/bgp/afi-common.xml.i
+++ b/op-mode-definitions/include/bgp/afi-common.xml.i
@@ -31,10 +31,25 @@
</properties>
<command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
</leafNode>
-<leafNode name="summary">
+<node name="summary">
<properties>
<help>Summary of BGP neighbor status</help>
</properties>
<command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
-</leafNode>
+ <children>
+ <leafNode name="established">
+ <properties>
+ <help>Show only sessions in Established state</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ <leafNode name="failed">
+ <properties>
+ <help>Show only sessions not in Established state</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ </children>
+</node>
+#include <include/vtysh-generic-wide.xml.i>
<!-- included end -->
diff --git a/op-mode-definitions/include/vtysh-generic-wide.xml.i b/op-mode-definitions/include/vtysh-generic-wide.xml.i
new file mode 100644
index 000000000..acc68b4c0
--- /dev/null
+++ b/op-mode-definitions/include/vtysh-generic-wide.xml.i
@@ -0,0 +1,8 @@
+<!-- included start from vtysh-generic-wide.xml.i -->
+<leafNode name="wide">
+ <properties>
+ <help>Increase table width for longer prefixes</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+</leafNode>
+<!-- included end -->
diff --git a/op-mode-definitions/monitor-bridge.xml.in b/op-mode-definitions/monitor-bridge.xml.in
new file mode 100644
index 000000000..712a924f1
--- /dev/null
+++ b/op-mode-definitions/monitor-bridge.xml.in
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="monitor">
+ <children>
+ <node name="bridge">
+ <properties>
+ <help>Monitoring bridge database generated objects and address changes</help>
+ </properties>
+ <command>sudo bridge monitor all</command>
+ <children>
+ <node name="link">
+ <command>sudo bridge monitor link</command>
+ <properties>
+ <help>Monitoring bridge database generated connection interface changes</help>
+ </properties>
+ </node>
+ <node name="fdb">
+ <command>sudo bridge monitor fdb</command>
+ <properties>
+ <help>Monitor the forwarding database changes generated by the bridge database</help>
+ </properties>
+ </node>
+ <node name="mdb">
+ <command>sudo bridge monitor mdb</command>
+ <properties>
+ <help>Monitor the multicast database changes generated by the bridge database</help>
+ </properties>
+ </node>
+ </children>
+ </node>
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/op-mode-definitions/openvpn.xml.in b/op-mode-definitions/openvpn.xml.in
index f8dc0cff0..781fbdc9d 100644
--- a/op-mode-definitions/openvpn.xml.in
+++ b/op-mode-definitions/openvpn.xml.in
@@ -1,49 +1,5 @@
<?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>
diff --git a/op-mode-definitions/pki.xml.in b/op-mode-definitions/pki.xml.in
index 9c6b56a68..a11814c8a 100644
--- a/op-mode-definitions/pki.xml.in
+++ b/op-mode-definitions/pki.xml.in
@@ -20,9 +20,18 @@
</completionHelp>
</properties>
<children>
+ <tagNode name="file">
+ <properties>
+ <help>Write generated CA certificate into the specified filename</help>
+ <completionHelp>
+ <list>&lt;filename&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --ca "$7" --sign "$5" --file</command>
+ </tagNode>
<tagNode name="install">
<properties>
- <help>Commands for installing generated certificate into running configuration</help>
+ <help>Commands for installing generated CA certificate into running configuration</help>
<completionHelp>
<list>&lt;certificate name&gt;</list>
</completionHelp>
@@ -32,9 +41,18 @@
</children>
<command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --ca "noname" --sign "$5"</command>
</tagNode>
+ <tagNode name="file">
+ <properties>
+ <help>Write generated CA certificate into the specified filename</help>
+ <completionHelp>
+ <list>&lt;filename&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --ca "$5" --file</command>
+ </tagNode>
<tagNode name="install">
<properties>
- <help>Commands for installing generated certificate into running configuration</help>
+ <help>Commands for installing generated CA certificate into running configuration</help>
<completionHelp>
<list>&lt;CA name&gt;</list>
</completionHelp>
@@ -54,6 +72,15 @@
<help>Generate self-signed certificate</help>
</properties>
<children>
+ <tagNode name="file">
+ <properties>
+ <help>Write generated self-signed certificate into the specified filename</help>
+ <completionHelp>
+ <list>&lt;filename&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --certificate "$6" --self-sign --file</command>
+ </tagNode>
<tagNode name="install">
<properties>
<help>Commands for installing generated self-signed certificate into running configuration</help>
@@ -74,9 +101,18 @@
</completionHelp>
</properties>
<children>
+ <tagNode name="file">
+ <properties>
+ <help>Write generated signed certificate into the specified filename</help>
+ <completionHelp>
+ <list>&lt;filename&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --certificate "$7" --sign "$5" --file</command>
+ </tagNode>
<tagNode name="install">
<properties>
- <help>Commands for installing generated certificate into running configuration</help>
+ <help>Commands for installing generated signed certificate into running configuration</help>
<completionHelp>
<list>&lt;certificate name&gt;</list>
</completionHelp>
@@ -86,6 +122,15 @@
</children>
<command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --certificate "noname" --sign "$5"</command>
</tagNode>
+ <tagNode name="file">
+ <properties>
+ <help>Write generated certificate request and key into the specified filename</help>
+ <completionHelp>
+ <list>&lt;filename&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --certificate "$5" --file</command>
+ </tagNode>
<tagNode name="install">
<properties>
<help>Commands for installing generated certificate private key into running configuration</help>
@@ -106,6 +151,15 @@
</completionHelp>
</properties>
<children>
+ <tagNode name="file">
+ <properties>
+ <help>Write generated CRL into the specified filename</help>
+ <completionHelp>
+ <list>&lt;filename&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --crl "$4" --file</command>
+ </tagNode>
<leafNode name="install">
<properties>
<help>Commands for installing generated CRL into running configuration</help>
@@ -120,6 +174,15 @@
<help>Generate DH parameters</help>
</properties>
<children>
+ <tagNode name="file">
+ <properties>
+ <help>Write generated DH parameters into the specified filename</help>
+ <completionHelp>
+ <list>&lt;filename&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --dh "$5" --file</command>
+ </tagNode>
<tagNode name="install">
<properties>
<help>Commands for installing generated DH parameters into running configuration</help>
@@ -137,6 +200,15 @@
<help>Generate a key pair</help>
</properties>
<children>
+ <tagNode name="file">
+ <properties>
+ <help>Write generated key pair into the specified filename</help>
+ <completionHelp>
+ <list>&lt;filename&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --keypair "$5" --file</command>
+ </tagNode>
<tagNode name="install">
<properties>
<help>Commands for installing generated key pair into running configuration</help>
@@ -159,6 +231,15 @@
<help>Generate OpenVPN shared secret key</help>
</properties>
<children>
+ <tagNode name="file">
+ <properties>
+ <help>Write generated OpenVPN shared secret key into the specified filename</help>
+ <completionHelp>
+ <list>&lt;filename&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --openvpn "$6" --file</command>
+ </tagNode>
<tagNode name="install">
<properties>
<help>Commands for installing generated OpenVPN shared secret key into running configuration</help>
@@ -178,6 +259,15 @@
<help>Generate SSH key</help>
</properties>
<children>
+ <tagNode name="file">
+ <properties>
+ <help>Write generated SSH keys into the specified filename</help>
+ <completionHelp>
+ <list>&lt;filename&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --ssh "$5" --file</command>
+ </tagNode>
<tagNode name="install">
<properties>
<help>Commands for installing generated SSH key into running configuration</help>
@@ -200,6 +290,15 @@
<help>Generate Wireguard key pair for use with server or peer</help>
</properties>
<children>
+ <tagNode name="file">
+ <properties>
+ <help>Write generated Wireguard keys into the specified filename</help>
+ <completionHelp>
+ <list>&lt;filename&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --wireguard --key "$6" --file</command>
+ </tagNode>
<tagNode name="install">
<properties>
<help>Commands for installing generated Wireguard key into running configuration</help>
@@ -217,9 +316,18 @@
<help>Generate pre-shared key for use with a Wireguard peer</help>
</properties>
<children>
+ <tagNode name="file">
+ <properties>
+ <help>Write generated Wireguard PSK into the specified filename</help>
+ <completionHelp>
+ <list>&lt;filename&gt;</list>
+ </completionHelp>
+ </properties>
+ <command>sudo ${vyos_op_scripts_dir}/pki.py --action generate --wireguard --psk "$6" --file</command>
+ </tagNode>
<tagNode name="install">
<properties>
- <help>Commands for installing generated Wireguard psk on specified peer into running configuration</help>
+ <help>Commands for installing generated Wireguard PSK on specified peer into running configuration</help>
<completionHelp>
<list>&lt;peer&gt;</list>
</completionHelp>
diff --git a/op-mode-definitions/show-bgp.xml.in b/op-mode-definitions/show-bgp.xml.in
index 36e7062df..c33a9dacf 100644
--- a/op-mode-definitions/show-bgp.xml.in
+++ b/op-mode-definitions/show-bgp.xml.in
@@ -8,7 +8,81 @@
</properties>
<command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
<children>
+ <node name="cidr-only">
+ <properties>
+ <help>Display only routes with non-natural netmasks</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ <children>
+ #include <include/vtysh-generic-wide.xml.i>
+ </children>
+ </node>
#include <include/bgp/show-bgp-common.xml.i>
+ <node name="mac">
+ <properties>
+ <help>MAC address</help>
+ </properties>
+ <children>
+ <leafNode name="hash">
+ <properties>
+ <help>MAC address database</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ </children>
+ </node>
+ <node name="martian">
+ <properties>
+ <help>martian next-hops</help>
+ </properties>
+ <children>
+ <leafNode name="next-hop">
+ <properties>
+ <help>martian next-hop database</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ </children>
+ </node>
+ <leafNode name="memory">
+ <properties>
+ <help>Global BGP memory statistics</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ <node name="nexthop">
+ <properties>
+ <help>Show BGP nexthop table</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ <children>
+ #include <include/vtysh-generic-detail.xml.i>
+ </children>
+ </node>
+ <tagNode name="nexthop">
+ <properties>
+ <help>IPv4/IPv6 nexthop address</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}/vtysh_wrapper.sh $@</command>
+ <children>
+ #include <include/vtysh-generic-detail.xml.i>
+ </children>
+ </tagNode>
+ <leafNode name="statistics">
+ <properties>
+ <help>BGP RIB advertisement statistics</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
+ <leafNode name="statistics-all">
+ <properties>
+ <help>Display number of prefixes for all afi/safi</help>
+ </properties>
+ <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
+ </leafNode>
<leafNode name="vrf">
<properties>
<help>Show BGP VRF information</help>
@@ -28,6 +102,7 @@
#include <include/bgp/show-bgp-common.xml.i>
</children>
</tagNode>
+ #include <include/vtysh-generic-wide.xml.i>
</children>
</node>
</children>
diff --git a/op-mode-definitions/show-bridge.xml.in b/op-mode-definitions/show-bridge.xml.in
index 78c350e44..0f8d3064d 100644
--- a/op-mode-definitions/show-bridge.xml.in
+++ b/op-mode-definitions/show-bridge.xml.in
@@ -2,11 +2,24 @@
<interfaceDefinition>
<node name="show">
<children>
+ <node name="bridge">
+ <properties>
+ <help>Show bridging information</help>
+ </properties>
+ <children>
+ <leafNode name="vlan">
+ <properties>
+ <help>View the VLAN filter settings of the bridge</help>
+ </properties>
+ <command>bridge -c vlan show</command>
+ </leafNode>
+ </children>
+ </node>
<leafNode name="bridge">
<properties>
<help>Show bridging information</help>
</properties>
- <command>/sbin/brctl show</command>
+ <command>bridge -c link show</command>
</leafNode>
<tagNode name="bridge">
<properties>
@@ -15,25 +28,19 @@
<script>${vyos_completion_dir}/list_interfaces.py --type bridge</script>
</completionHelp>
</properties>
- <command>/sbin/brctl show $3</command>
+ <command>bridge -c link show | grep "master $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">
+ <leafNode name="mdb">
<properties>
- <help>Show bridge spanning tree information</help>
+ <help>Displays the multicast group database for the bridge</help>
</properties>
- <command>/sbin/brctl showstp $3</command>
+ <command>bridge -c mdb show dev $3</command>
</leafNode>
<leafNode name="fdb">
<properties>
<help>Show the forwarding database of the bridge</help>
</properties>
- <command>/usr/sbin/bridge -c fdb show br $3</command>
+ <command>bridge -c fdb show br $3</command>
</leafNode>
</children>
</tagNode>
diff --git a/op-mode-definitions/show-interfaces-bridge.xml.in b/op-mode-definitions/show-interfaces-bridge.xml.in
index cc4b248b6..85fde95b5 100644
--- a/op-mode-definitions/show-interfaces-bridge.xml.in
+++ b/op-mode-definitions/show-interfaces-bridge.xml.in
@@ -33,12 +33,6 @@
</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>
diff --git a/op-mode-definitions/show-interfaces-wireguard.xml.in b/op-mode-definitions/show-interfaces-wireguard.xml.in
new file mode 100644
index 000000000..863357ef7
--- /dev/null
+++ b/op-mode-definitions/show-interfaces-wireguard.xml.in
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="show">
+ <children>
+ <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>${vyos_op_scripts_dir}/show_interfaces.py --intf="$4"</command>
+ <children>
+ <leafNode name="allowed-ips">
+ <properties>
+ <help>Show all IP addresses allowed 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>
+ <leafNode name="public-key">
+ <properties>
+ <help>Show interface public-key</help>
+ </properties>
+ <command>sudo wg show "$4" public-key</command>
+ </leafNode>
+ <leafNode name="summary">
+ <properties>
+ <help>Shows current configuration and device information</help>
+ </properties>
+ <command>sudo wg show "$4"</command>
+ </leafNode>
+ </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>
+</interfaceDefinition>
diff --git a/op-mode-definitions/wireguard.xml.in b/op-mode-definitions/wireguard.xml.in
deleted file mode 100644
index 0df838b50..000000000
--- a/op-mode-definitions/wireguard.xml.in
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0"?>
-<!-- Wireguard key management -->
-<interfaceDefinition>
- <node name="generate">
- <children>
- <node name="wireguard">
- <properties>
- <help>Generate Wireguard keys</help>
- </properties>
- <children>
- <leafNode name="default-keypair">
- <properties>
- <help>Generate the default Wireguard 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>Generate specified Wireguard keypairs</help>
- </properties>
- <command>sudo ${vyos_op_scripts_dir}/wireguard.py --genkey --location "$4"</command>
- </tagNode>
- <tagNode name="client-config">
- <properties>
- <help>Generate Client config QR code</help>
- <completionHelp>
- <list>&lt;client-name&gt;</list>
- </completionHelp>
- </properties>
- <children>
- <tagNode name="interface">
- <properties>
- <help>Local interface used for connection</help>
- <completionHelp>
- <script>${vyos_completion_dir}/list_interfaces.py --type wireguard</script>
- </completionHelp>
- </properties>
- <children>
- <tagNode name="server">
- <properties>
- <help>IP address/FQDN used for client connection</help>
- <completionHelp>
- <script>${vyos_completion_dir}/list_local_ips.sh --both</script>
- <list>&lt;hostname&gt;</list>
- </completionHelp>
- </properties>
- <command>sudo ${vyos_op_scripts_dir}/wireguard_client.py --name "$4" --interface "$6" --server "$8"</command>
- <children>
- <tagNode name="address">
- <properties>
- <help>IPv4/IPv6 address used by client</help>
- <completionHelp>
- <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
- </completionHelp>
- </properties>
- <command>sudo ${vyos_op_scripts_dir}/wireguard_client.py --name "$4" --interface "$6" --server "$8" --address "${10}"</command>
- <children>
- <tagNode name="address">
- <properties>
- <help>IPv4/IPv6 address used by client</help>
- <completionHelp>
- <list>&lt;x.x.x.x&gt; &lt;h:h:h:h:h:h:h:h&gt;</list>
- </completionHelp>
- </properties>
- <command>sudo ${vyos_op_scripts_dir}/wireguard_client.py --name "$4" --interface "$6" --server "$8" --address "${10}" --address "${12}"</command>
- </tagNode>
- </children>
- </tagNode>
- </children>
- </tagNode>
- </children>
- </tagNode>
- </children>
- </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>Show Wireguard keys</help>
- </properties>
- <children>
- <tagNode name="pubkey">
- <properties>
- <help>Show specified Wireguard public 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 specified Wireguard private 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 IP addresses allowed 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>