anchor.diff:              '';
             };
   
  +        createSitDevice = n: v:
  +          let
  +            deps = optional (v.dev != null) "sys-subsystem-net-devices-${v.dev}.device";
  +          in
  +          { description = "6-to-4 Tunnel Interface ${n}";
  +            wantedBy = [ "network.target" "sys-subsystem-net-devices-${n}.device" ];
  +            bindsTo = deps;
  +            after = deps;
  +            serviceConfig.Type = "oneshot";
  +            serviceConfig.RemainAfterExit = true;
  +            path = [ pkgs.iproute ];
  +            script = ''
  +              # Remove Dead Interfaces
  +              ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
  +              ip link add "${n}" type sit \
  +                ${optionalString (v.remote != null) "remote \"${v.remote}\""} \
  +                ${optionalString (v.local != null) "local \"${v.local}\""} \
  +                ${optionalString (v.ttl != null) "ttl ${toString v.ttl}"} \
  +                ${optionalString (v.dev != null) "dev \"${v.dev}\""}
  +              ip link set "${n}" up
  +            '';
  +            postStop = ''
  +              ip link delete "${n}"
  +            '';
  +          };
  +
           createVlanDevice = n: v:
             let
               deps = [ "sys-subsystem-net-devices-${v.interface}.device" ];
  
positive.code:     boot.kernelModules = [ ]
        ++ optional cfg.enableIPv6 "ipv6"
        ++ optional hasVirtuals "tun"
        ++ optional hasBonds "bonding";
  
      boot.extraModprobeConfig =
  
negative.code:   cfg = config.networking;
    interfaces = attrValues cfg.interfaces;
    hasVirtuals = any (i: i.virtual) interfaces;
    hasSits = cfg.sits != { };
    hasBonds = cfg.bonds != { };
  
    interfaceOpts = { name, ... }: {
  