summaryrefslogtreecommitdiff
path: root/interface-definitions/interfaces_wireguard.xml.in
diff options
context:
space:
mode:
Diffstat (limited to 'interface-definitions/interfaces_wireguard.xml.in')
-rw-r--r--interface-definitions/interfaces_wireguard.xml.in129
1 files changed, 129 insertions, 0 deletions
diff --git a/interface-definitions/interfaces_wireguard.xml.in b/interface-definitions/interfaces_wireguard.xml.in
new file mode 100644
index 000000000..f3fe0f1da
--- /dev/null
+++ b/interface-definitions/interfaces_wireguard.xml.in
@@ -0,0 +1,129 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="interfaces">
+ <children>
+ <tagNode name="wireguard" owner="${vyos_conf_scripts_dir}/interfaces_wireguard.py">
+ <properties>
+ <help>WireGuard Interface</help>
+ <priority>379</priority>
+ <constraint>
+ <regex>wg[0-9]+</regex>
+ </constraint>
+ <constraintErrorMessage>WireGuard interface must be named wgN</constraintErrorMessage>
+ <valueHelp>
+ <format>wgN</format>
+ <description>WireGuard interface name</description>
+ </valueHelp>
+ </properties>
+ <children>
+ #include <include/interface/address-ipv4-ipv6.xml.i>
+ #include <include/generic-description.xml.i>
+ #include <include/interface/disable.xml.i>
+ #include <include/port-number.xml.i>
+ #include <include/interface/mtu-68-16000.xml.i>
+ #include <include/interface/mirror.xml.i>
+ <leafNode name="mtu">
+ <defaultValue>1420</defaultValue>
+ </leafNode>
+ #include <include/interface/ipv4-options.xml.i>
+ #include <include/interface/ipv6-options.xml.i>
+ <leafNode name="fwmark">
+ <properties>
+ <help>A 32-bit fwmark value set on all outgoing packets</help>
+ <valueHelp>
+ <format>number</format>
+ <description>value which marks the packet for QoS/shaper</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ </properties>
+ <defaultValue>0</defaultValue>
+ </leafNode>
+ <leafNode name="private-key">
+ <properties>
+ <help>Base64 encoded private key</help>
+ <constraint>
+ <regex>[0-9a-zA-Z\+/]{43}=</regex>
+ </constraint>
+ <constraintErrorMessage>Key is not valid 44-character (32-bytes) base64</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <tagNode name="peer">
+ <properties>
+ <help>peer alias</help>
+ <constraint>
+ <regex>[^ ]{1,100}</regex>
+ </constraint>
+ <constraintErrorMessage>peer alias too long (limit 100 characters)</constraintErrorMessage>
+ </properties>
+ <children>
+ #include <include/generic-disable-node.xml.i>
+ #include <include/generic-description.xml.i>
+ <leafNode name="public-key">
+ <properties>
+ <help>base64 encoded public key</help>
+ <constraint>
+ <regex>[0-9a-zA-Z\+/]{43}=</regex>
+ </constraint>
+ <constraintErrorMessage>Key is not valid 44-character (32-bytes) base64</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="preshared-key">
+ <properties>
+ <help>base64 encoded preshared key</help>
+ <constraint>
+ <regex>[0-9a-zA-Z\+/]{43}=</regex>
+ </constraint>
+ <constraintErrorMessage>Key is not valid 44-character (32-bytes) base64</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="allowed-ips">
+ <properties>
+ <help>IP addresses allowed to traverse the peer</help>
+ <constraint>
+ <validator name="ip-prefix"/>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ <leafNode name="address">
+ <properties>
+ <help>IP address of tunnel endpoint</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>IPv4 address of remote tunnel endpoint</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>IPv6 address of remote tunnel endpoint</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ip-address"/>
+ <validator name="ipv6-link-local"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ #include <include/port-number.xml.i>
+ <leafNode name="persistent-keepalive">
+ <properties>
+ <help>Interval to send keepalive messages</help>
+ <valueHelp>
+ <format>u32:1-65535</format>
+ <description>Interval in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-65535"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </tagNode>
+ #include <include/interface/redirect.xml.i>
+ #include <include/interface/per-client-thread.xml.i>
+ #include <include/interface/vrf.xml.i>
+ </children>
+ </tagNode>
+ </children>
+ </node>
+</interfaceDefinition>