Commit ed7c0c6e authored by Bjørn Forsman's avatar Bjørn Forsman
Browse files

nixos/wireguard: add metric option

This new option, networking.wireguard.interfaces.NAME.metric, allows
increasing the metric of the routes, effectively lowering priority.

(I'm using high metric to allow having the Wireguard interface always
up, even when the client machines are on their home network. Before I
had to stop the interface when home to avoid packet routing issues.)
parent 8b5ab834
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -164,6 +164,15 @@ let
          of the wireguard network has to be adjusted as well.
        '';
      };

      metric = mkOption {
        default = null;
        type = with types; nullOr int;
        example = 700;
        description = lib.mdDoc ''
          Set the metric of routes related to this Wireguard interface.
        '';
      };
    };

  };
@@ -395,7 +404,7 @@ let
            optionalString interfaceCfg.allowedIPsAsRoutes
              (concatMapStringsSep "\n"
                (allowedIP:
                  ''${ip} route replace "${allowedIP}" dev "${interfaceName}" table "${interfaceCfg.table}"''
                  ''${ip} route replace "${allowedIP}" dev "${interfaceName}" table "${interfaceCfg.table}" ${optionalString (interfaceCfg.metric != null) "metric ${toString interfaceCfg.metric}"}''
                ) peer.allowedIPs);
        in ''
          ${wg_setup}