1{ config, lib, pkgs, ... }:
2
3with lib;
4
5let
6 cfg = config.services.lldpd;
7
8in
9
10{
11 options.services.lldpd = {
12 enable = mkEnableOption "Link Layer Discovery Protocol Daemon";
13
14 extraArgs = mkOption {
15 type = types.listOf types.str;
16 default = [];
17 example = [ "-c" "-k" "-I eth0" ];
18 description = "List of command line parameters for lldpd";
19 };
20 };
21
22 config = mkIf cfg.enable {
23 users.extraUsers._lldpd = {
24 description = "lldpd user";
25 group = "_lldpd";
26 home = "/var/run/lldpd";
27 };
28 users.extraGroups._lldpd = {};
29
30 environment.systemPackages = [ pkgs.lldpd ];
31 systemd.packages = [ pkgs.lldpd ];
32
33 systemd.services.lldpd = {
34 wantedBy = [ "multi-user.target" ];
35 environment.LLDPD_OPTIONS = concatStringsSep " " cfg.extraArgs;
36 };
37 };
38}