31 lines
776 B
Nix
31 lines
776 B
Nix
{lib,...}:
|
|
|
|
let build = iface: mac: rest: lib.recursiveUpdate rest {
|
|
systemd.network.enable = true;
|
|
systemd.network.links."${iface}" = {
|
|
linkConfig.Name = iface;
|
|
matchConfig.PermanentMACAddress = mac;
|
|
};
|
|
systemd.network.networks."${iface}".enable = true;
|
|
}; in
|
|
{
|
|
bridge = br: ip: gateway: iface: mac: build iface mac {
|
|
systemd.network.networks."${iface}".bridge = [ br ];
|
|
systemd.network.networks."${br}" = {
|
|
address = [ ip ];
|
|
gateway = [ gateway ];
|
|
};
|
|
systemd.network.netdevs."${br}" = {
|
|
netdevConfig = {
|
|
Name = br;
|
|
Kind = "bridge";
|
|
};
|
|
};
|
|
};
|
|
dhcp = iface: mac: build iface mac {
|
|
systemd.network.networks."${iface}" = {
|
|
DHCP = "yes";
|
|
};
|
|
};
|
|
}
|