]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
wireguard: add metric to routes 23280/head
authorErik Conijn <egc112@msn.com>
Sun, 10 May 2026 09:01:10 +0000 (11:01 +0200)
committerRobert Marko <robimarko@gmail.com>
Wed, 1 Jul 2026 17:09:09 +0000 (19:09 +0200)
maintainer: Felix Fietkau <nbd@nbd.name>

The metric field is not used when wireGuard routes are created.

See: https://github.com/openwrt/openwrt/issues/23199

This patch is aimed at adding the metric field in the config to the created routes for WireGuard if
the metric field is not empty and not 0

Compile tested: X86, Openwrt-main
Run tested: X86

Please have a look and consider implementing

Signed-off-by: Erik Conijn <egc112@msn.com>
Link: https://github.com/openwrt/openwrt/pull/23280
Signed-off-by: Robert Marko <robimarko@gmail.com>
package/network/utils/wireguard-tools/files/wireguard.uc

index 9f99904812f449cc540942719b37cf249e7e9b8a..2f3c69049e9c51053e8a550151a40c6c649e5b4f 100644 (file)
@@ -111,6 +111,8 @@ function proto_setup(proto) {
        if (config.fwmark)
                wg_config += sprintf('FwMark=%s\n', config.fwmark);
 
+       let metric = int(config.metric);
+
        let ipv4_routes = [];
        let ipv6_routes = [];
 
@@ -136,6 +138,8 @@ function proto_setup(proto) {
                                for (let allowed_ip in allowed_list) {
                                        let addr_info = parse_address(allowed_ip);
                                        let route = { target: addr_info.address, netmask: '' + addr_info.mask };
+                                       if (metric)
+                                               route.metric = metric;
                                        if (addr_info.family == 6)
                                                push(ipv6_routes, route);
                                        else