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>
if (config.fwmark)
wg_config += sprintf('FwMark=%s\n', config.fwmark);
+ let metric = int(config.metric);
+
let ipv4_routes = [];
let ipv6_routes = [];
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