index: { lib, pkgs, ... }:
let
  inherit (lib) mkForce concatMapStringsSep;
  inherit (lib.my) net;
  inherit (lib.my.c.home) domain prefixes;

  mkInterface = name: ''
    interface lan-${name} {
      AdvSendAdvert on;
      AdvRASrcAddress { fe80::1; };
      AdvLinkMTU ${toString prefixes."${name}".mtu};
      prefix ${prefixes."${name}".v6} {};
      RDNSS ${net.cidr.host 1 prefixes."${name}".v6} ${net.cidr.host 2 prefixes."${name}".v6} {};
      DNSSL ${domain} dyn.${domain} ${lib.my.c.colony.domain} ${lib.my.c.britway.domain} {};
     };
  '';
in
{
  # To be started by keepalived
  systemd.services.radvd.wantedBy = mkForce [ ];

  services = {
    radvd = {
      enable = true;
      config = concatMapStringsSep "\n" mkInterface [ "hi" "lo" "untrusted" ];
    };
  };
}
