This commit is contained in:
2025-08-29 15:25:40 +02:00
parent 26440bfeee
commit f3821f0dfa
201 changed files with 2461 additions and 1546 deletions

View File

@@ -2,29 +2,38 @@
config,
lib,
...
}: let
inherit (lib) mkIf mkEnableOption mkOption types;
}:
let
inherit (lib)
mkIf
mkEnableOption
mkOption
types
;
cfg = config.nixos.hardware.network;
in {
in
{
options = {
nixos.hardware.network = {
enable = mkEnableOption "Enable the custom networking module";
interfaces = mkOption {
type = types.attrsOf (types.submodule {
options = {
allowedTCPPorts = mkOption {
type = types.listOf types.int;
default = [];
description = "List of allowed TCP ports for this interface.";
type = types.attrsOf (
types.submodule {
options = {
allowedTCPPorts = mkOption {
type = types.listOf types.int;
default = [ ];
description = "List of allowed TCP ports for this interface.";
};
allowedUDPPorts = mkOption {
type = types.listOf types.int;
default = [ ];
description = "List of allowed UDP ports for this interface.";
};
};
allowedUDPPorts = mkOption {
type = types.listOf types.int;
default = [];
description = "List of allowed UDP ports for this interface.";
};
};
});
default = {};
}
);
default = { };
description = "Network interface configurations.";
};
extraHosts = mkOption {
@@ -38,7 +47,7 @@ in {
config = mkIf cfg.enable {
assertions = [
{
assertion = cfg.interfaces != {} -> config.networking.networkmanager.enable;
assertion = cfg.interfaces != { } -> config.networking.networkmanager.enable;
message = "Network interfaces configured but NetworkManager is not enabled";
}
];
@@ -54,8 +63,8 @@ in {
};
systemd.services.NetworkManager = {
wants = ["nftables.service"];
after = ["nftables.service"];
wants = [ "nftables.service" ];
after = [ "nftables.service" ];
};
};
}