wireguard: Add support for ip6prefix config option
authorToke Høiland-Jørgensen <toke@toke.dk>
Sun, 13 May 2018 18:15:50 +0000 (20:15 +0200)
committerJohn Crispin <john@phrozen.org>
Tue, 15 May 2018 04:41:38 +0000 (06:41 +0200)
This makes it easier to distribute prefixes over a wireguard tunnel
interface, by simply setting the ip6prefix option in uci (just like with
other protocols).

Obviously, routing etc needs to be setup properly for things to work; this
just adds the config option so the prefix can be assigned to other
interfaces.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
package/network/services/wireguard/files/wireguard.sh

index 7b18a2e0ecdb07cd5df2065661c71fd05fb37f93..96fa7215ffc8d47e2f7934a96ada21eee5a4ed19 100644 (file)
@@ -113,6 +113,7 @@ proto_wireguard_setup() {
   config_get addresses     "${config}" "addresses"
   config_get mtu           "${config}" "mtu"
   config_get fwmark        "${config}" "fwmark"
+  config_get ip6prefix     "${config}" "ip6prefix"
 
   # create interface
   ip link del dev "${config}" 2>/dev/null
@@ -169,6 +170,11 @@ proto_wireguard_setup() {
     esac
   done
 
+  # support ip6 prefixes
+  for prefix in ${ip6prefix}; do
+      proto_add_ipv6_prefix "$prefix"
+  done
+
   # endpoint dependency
   wg show "${config}" endpoints | \
     sed -E 's/\[?([0-9.:a-f]+)\]?:([0-9]+)/\1 \2/' | \