diff options
Diffstat (limited to 'modules/nixos/net-iface-labels.nix')
-rw-r--r-- | modules/nixos/net-iface-labels.nix | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/modules/nixos/net-iface-labels.nix b/modules/nixos/net-iface-labels.nix deleted file mode 100644 index b7ac655..0000000 --- a/modules/nixos/net-iface-labels.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ config, lib, ... }: let - cfg = config.networking._interfaceLabels; - validMac = str: builtins.match ''^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$'' str != null; - macAddressType = lib.types.str // { - check = validMac; - description = "a mac address (xx:xx:xx:xx:xx:xx)"; - }; -in { - options.networking._interfaceLabels = { - enable = lib.mkEnableOption "manually label network interfaces"; - interfaces = lib.mkOption { - type = lib.types.attrsOf macAddressType; - default = {}; - example = { - "lan0" = "00:11:22:33:44:55"; - "lan1" = "66:77:88:99:AA:BB"; - }; - description = "label network interfaces by their mac address"; - }; - }; - - config = lib.mkIf cfg.enable { - networking.usePredictableInterfaceNames = false; - services.udev.extraRules = lib.concatStringsSep "\n" ( - lib.mapAttrsToList (name: mac: ''ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="${mac}", NAME="${name}"'') cfg.interfaces - ); - }; -} |