summaryrefslogtreecommitdiff
path: root/config/networking/services/igmpproxy.nix
blob: 699980777f4207366869e81a4467cb2d94f74976 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{ config, pkgs, ... }:

let
  nets = config.personal.networking.networks;
  netdevServices = builtins.map (subnet: "${subnet.interface}-netdev.service")
    (with nets; [ wan iot ]);
  conf = pkgs.writeText "igmpproxy.conf" ''
    phyint ${nets.wan.interface} upstream ratelimit 0 threshold 1
    phyint ${nets.iot.interface} downstream ratelimit 0 threshold 1
  '';
in {
  systemd.services.igmpproxy = {
    description = "Multicast router utilizing IGMP forwarding";
    wantedBy = [ "multi-user.target" ];
    after = [ "kea-dhcp4-server.service" ] ++ netdevServices;
    bindsTo = netdevServices;
    path = [ pkgs.igmpproxy ];
    script = "igmpproxy -v -n ${conf}";
  };
}