anchor.diff:        '';
       };
   
  -    strongswan = paramsToOptions strongswanParams;
  +    strongswan.extraConfig = mkOption {
  +      type = types.str;
  +      default = "";
  +      description = ''
  +        Contents of the <literal>strongswan.conf</literal> file.
  +      '';
  +    };
  +
  +    # The structured strongswan configuration is commented out for
  +    # now in favour of the literal config above. We should first
  +    # discus if we want to add the 600+ options by default.
  +    #strongswan = paramsToOptions strongswanParams;
       swanctl    = paramsToOptions swanctlParams;
     };
   
  
positive.code:       path = with pkgs; [ kmod iproute iptables utillinux ];
        environment.STRONGSWAN_CONF = pkgs.writeTextFile {
          name = "strongswan.conf";
          text = paramsToConf cfg.strongswan strongswanParams;
        };
        restartTriggers = [ config.environment.etc."swanctl/swanctl.conf".source ];
        serviceConfig = {
  
negative.code:   # TODO: auto-generate these files using:
    # https://github.com/strongswan/strongswan/tree/master/conf
    # IDEA: extend the format-options.py script to output these Nix files.
    #strongswanParams = import ./strongswan-params.nix lib;
    swanctlParams    = import ./swanctl-params.nix    lib;
  in  {
    options.services.strongswan-swanctl = {
  