liminix/modules/hostapd/default.nix
Raito Bezarius 13069415fd feat(modules/hostapd): offer readiness oneshot
WLAN oper wait until the WLAN interface is ready.

Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
2024-09-07 21:15:31 +02:00

49 lines
1.4 KiB
Nix

## Hostapd
## =======
##
## Hostapd (host access point daemon) enables a wireless network
## interface to act as an access point and authentication server,
## providing IEEE 802.11 access point management, and IEEE
## 802.1X/WPA/WPA2/EAP Authenticators. In less technical terms,
## this service is what you need for your Liminix device to
## provide a wireless network that clients can connect to.
##
## If you have more than one wireless network interface (e.g.
## wlan0, wlan1) you can run an instance of hostapd on each of them.
{ lib, pkgs, config, ...}:
let
inherit (lib) mkOption types;
inherit (pkgs) liminix;
in {
options = {
system.service.hostapd = mkOption {
type = liminix.lib.types.serviceDefn;
};
system.service.hostapd-ready = mkOption {
type = liminix.lib.types.serviceDefn;
};
};
config = {
system.service.hostapd = liminix.callService ./service.nix {
interface = mkOption {
type = liminix.lib.types.service;
};
package = mkOption {
type = types.package;
default = pkgs.hostapd;
};
params = mkOption {
type = types.attrs;
};
};
system.service.hostapd-ready = liminix.callService ./ready.nix {
interface = mkOption {
type = liminix.lib.types.interface;
description = "Interface for which to wait that the oper state Master or Master (VLAN) has been reached.";
};
};
};
}