anchor.diff:              deps = [ (subsystemDevice v.interface) ];
             in
             { description = "Vlan Interface ${n}";
  -            wantedBy = [ "network.target" (subsystemDevice n) ];
  +            wantedBy = [ "network-setup.service" (subsystemDevice n) ];
               bindsTo = deps;
  +            partOf = [ "network-setup.service" ];
               after = [ "network-pre.target" ] ++ deps;
  -            before = [ "network-interfaces.target" (subsystemDevice n) ];
  +            before = [ "network-setup.service" (subsystemDevice n) ];
               serviceConfig.Type = "oneshot";
               serviceConfig.RemainAfterExit = true;
               path = [ pkgs.iproute ];
  
positive.code:         networkSetup =
            { description = "Networking Setup";
  
              after = [ "network-interfaces.target" "network-pre.target" ];
              before = [ "network.target" ];
              wantedBy = [ "network.target" ];
  
              unitConfig.ConditionCapability = "CAP_NET_ADMIN";
  
              path = [ pkgs.iproute ];
  
              serviceConfig.Type = "oneshot";
              serviceConfig.RemainAfterExit = true;
  
              script =
                ''
  
negative.code:           in
            nameValuePair "network-addresses-${i.name}"
            { description = "Address configuration of ${i.name}";
              wantedBy = [ "network-setup.service" ];
              # propagate stop and reload from network-setup
              partOf = [ "network-setup.service" ];
              # order before network-setup because the routes that are configured
              # there may need ip addresses configured
              before = [ "network-setup.service" ];
              bindsTo = [ (subsystemDevice i.name) ];
              after = [ (subsystemDevice i.name) "network-pre.target" ];
              serviceConfig.Type = "oneshot";
  