diff options
author | Majiir Paktu <majiir@nabaal.net> | 2023-08-25 10:44:43 -0400 |
---|---|---|
committer | Majiir Paktu <majiir@nabaal.net> | 2023-08-25 10:44:43 -0400 |
commit | 2cb4671ebcfbe75cff7bca5975ff7202e3fb52de (patch) | |
tree | 4f4a2b9c9de3a6cb0fd1b60ce46b4f7deea2e84b /nixos/modules/tasks | |
parent | 1f845ebc343350c18e9d292c6999174b9c63fad2 (diff) |
nixos/network-interfaces-systemd: add VLAN interfaces in systemd-initrd
Diffstat (limited to 'nixos/modules/tasks')
-rw-r--r-- | nixos/modules/tasks/network-interfaces-systemd.nix | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix index dfa883a2c3360..adbc7c80c418c 100644 --- a/nixos/modules/tasks/network-interfaces-systemd.nix +++ b/nixos/modules/tasks/network-interfaces-systemd.nix @@ -173,6 +173,19 @@ let }]; })); + vlanNetworks = mkMerge (flip mapAttrsToList cfg.vlans (name: vlan: { + netdevs."40-${name}" = { + netdevConfig = { + Name = name; + Kind = "vlan"; + }; + vlanConfig.Id = vlan.id; + }; + networks."40-${vlan.interface}" = (mkMerge [ (genericNetwork (mkOverride 999)) { + vlan = [ name ]; + } ]); + })); + in { @@ -182,7 +195,13 @@ in # Note this is if initrd.network.enable, not if # initrd.systemd.network.enable. By setting the latter and not the # former, the user retains full control over the configuration. - boot.initrd.systemd.network = mkMerge [(genericDhcpNetworks true) interfaceNetworks]; + boot.initrd.systemd.network = mkMerge [ + (genericDhcpNetworks true) + interfaceNetworks + vlanNetworks + ]; + boot.initrd.availableKernelModules = + optional (cfg.vlans != {}) "8021q"; }) (mkIf cfg.useNetworkd { @@ -377,18 +396,7 @@ in } ]); }; }))) - (mkMerge (flip mapAttrsToList cfg.vlans (name: vlan: { - netdevs."40-${name}" = { - netdevConfig = { - Name = name; - Kind = "vlan"; - }; - vlanConfig.Id = vlan.id; - }; - networks."40-${vlan.interface}" = (mkMerge [ (genericNetwork (mkOverride 999)) { - vlan = [ name ]; - } ]); - }))) + vlanNetworks ]; # We need to prefill the slaved devices with networking options |