<?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> </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>