├── .github └── workflows │ ├── build-ruleserver.yaml │ └── build-wasm-plugin.yaml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── e2e ├── .gitignore ├── Makefile ├── envoy-config.yaml └── tests.sh ├── envoy ├── envoy_binary_dynamic_configuration.yaml └── envoy_binary_static_configuration.yaml ├── istio ├── example.yaml └── mod-wasm-deploy.yaml ├── modsecurity ├── README └── mod2wasm.patch ├── rule-example └── modsecurity.conf ├── rule-service └── rule-service.yaml ├── ruleserver ├── .dockerignore ├── .gitignore ├── Dockerfile ├── Makefile ├── PROJECT ├── api │ └── v1 │ │ ├── config_types.go │ │ ├── groupversion_info.go │ │ ├── rule_types.go │ │ ├── rule_webhook.go │ │ ├── webhook_suite_test.go │ │ └── zz_generated.deepcopy.go ├── config │ ├── certmanager │ │ ├── certificate.yaml │ │ ├── kustomization.yaml │ │ └── kustomizeconfig.yaml │ ├── crd │ │ ├── bases │ │ │ ├── modsecurity.intel.com_configs.yaml │ │ │ └── modsecurity.intel.com_rules.yaml │ │ ├── kustomization.yaml │ │ ├── kustomizeconfig.yaml │ │ └── patches │ │ │ ├── cainjection_in_configs.yaml │ │ │ ├── cainjection_in_rules.yaml │ │ │ ├── webhook_in_configs.yaml │ │ │ └── webhook_in_rules.yaml │ ├── default │ │ ├── kustomization.yaml │ │ ├── manager_auth_proxy_patch.yaml │ │ ├── manager_config_patch.yaml │ │ ├── manager_webhook_patch.yaml │ │ └── webhookcainjection_patch.yaml │ ├── manager │ │ ├── controller_manager_config.yaml │ │ ├── kustomization.yaml │ │ └── manager.yaml │ ├── prometheus │ │ ├── kustomization.yaml │ │ └── monitor.yaml │ ├── rbac │ │ ├── auth_proxy_client_clusterrole.yaml │ │ ├── auth_proxy_role.yaml │ │ ├── auth_proxy_role_binding.yaml │ │ ├── auth_proxy_service.yaml │ │ ├── config_editor_role.yaml │ │ ├── config_viewer_role.yaml │ │ ├── kustomization.yaml │ │ ├── leader_election_role.yaml │ │ ├── leader_election_role_binding.yaml │ │ ├── role.yaml │ │ ├── role_binding.yaml │ │ ├── rule_editor_role.yaml │ │ ├── rule_viewer_role.yaml │ │ └── service_account.yaml │ ├── samples │ │ ├── modsecurity_v1_config.yaml │ │ └── modsecurity_v1_rule.yaml │ └── webhook │ │ ├── kustomization.yaml │ │ ├── kustomizeconfig.yaml │ │ ├── manifests.yaml │ │ └── service.yaml ├── controllers │ ├── config_controller.go │ ├── rule_controller.go │ └── suite_test.go ├── go.mod ├── go.sum ├── hack │ └── boilerplate.go.txt ├── main.go └── server │ └── server.go └── wasmplugin ├── Dockerfile ├── Makefile ├── envoy-wasm-modsecurity-dynamic.cc ├── envoy-wasm-modsecurity.cc ├── prep-Dockerfile-static.sh ├── utils.cc └── utils.h /.github/workflows/build-ruleserver.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/.github/workflows/build-ruleserver.yaml -------------------------------------------------------------------------------- /.github/workflows/build-wasm-plugin.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/.github/workflows/build-wasm-plugin.yaml -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/README.md -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/SECURITY.md -------------------------------------------------------------------------------- /e2e/.gitignore: -------------------------------------------------------------------------------- 1 | build/** -------------------------------------------------------------------------------- /e2e/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/e2e/Makefile -------------------------------------------------------------------------------- /e2e/envoy-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/e2e/envoy-config.yaml -------------------------------------------------------------------------------- /e2e/tests.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/e2e/tests.sh -------------------------------------------------------------------------------- /envoy/envoy_binary_dynamic_configuration.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/envoy/envoy_binary_dynamic_configuration.yaml -------------------------------------------------------------------------------- /envoy/envoy_binary_static_configuration.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/envoy/envoy_binary_static_configuration.yaml -------------------------------------------------------------------------------- /istio/example.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/istio/example.yaml -------------------------------------------------------------------------------- /istio/mod-wasm-deploy.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/istio/mod-wasm-deploy.yaml -------------------------------------------------------------------------------- /modsecurity/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/modsecurity/README -------------------------------------------------------------------------------- /modsecurity/mod2wasm.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/modsecurity/mod2wasm.patch -------------------------------------------------------------------------------- /rule-example/modsecurity.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/rule-example/modsecurity.conf -------------------------------------------------------------------------------- /rule-service/rule-service.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/rule-service/rule-service.yaml -------------------------------------------------------------------------------- /ruleserver/.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/.dockerignore -------------------------------------------------------------------------------- /ruleserver/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/.gitignore -------------------------------------------------------------------------------- /ruleserver/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/Dockerfile -------------------------------------------------------------------------------- /ruleserver/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/Makefile -------------------------------------------------------------------------------- /ruleserver/PROJECT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/PROJECT -------------------------------------------------------------------------------- /ruleserver/api/v1/config_types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/api/v1/config_types.go -------------------------------------------------------------------------------- /ruleserver/api/v1/groupversion_info.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/api/v1/groupversion_info.go -------------------------------------------------------------------------------- /ruleserver/api/v1/rule_types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/api/v1/rule_types.go -------------------------------------------------------------------------------- /ruleserver/api/v1/rule_webhook.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/api/v1/rule_webhook.go -------------------------------------------------------------------------------- /ruleserver/api/v1/webhook_suite_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/api/v1/webhook_suite_test.go -------------------------------------------------------------------------------- /ruleserver/api/v1/zz_generated.deepcopy.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/api/v1/zz_generated.deepcopy.go -------------------------------------------------------------------------------- /ruleserver/config/certmanager/certificate.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/certmanager/certificate.yaml -------------------------------------------------------------------------------- /ruleserver/config/certmanager/kustomization.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/certmanager/kustomization.yaml -------------------------------------------------------------------------------- /ruleserver/config/certmanager/kustomizeconfig.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/certmanager/kustomizeconfig.yaml -------------------------------------------------------------------------------- /ruleserver/config/crd/bases/modsecurity.intel.com_configs.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/crd/bases/modsecurity.intel.com_configs.yaml -------------------------------------------------------------------------------- /ruleserver/config/crd/bases/modsecurity.intel.com_rules.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/crd/bases/modsecurity.intel.com_rules.yaml -------------------------------------------------------------------------------- /ruleserver/config/crd/kustomization.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/crd/kustomization.yaml -------------------------------------------------------------------------------- /ruleserver/config/crd/kustomizeconfig.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/crd/kustomizeconfig.yaml -------------------------------------------------------------------------------- /ruleserver/config/crd/patches/cainjection_in_configs.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/crd/patches/cainjection_in_configs.yaml -------------------------------------------------------------------------------- /ruleserver/config/crd/patches/cainjection_in_rules.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/crd/patches/cainjection_in_rules.yaml -------------------------------------------------------------------------------- /ruleserver/config/crd/patches/webhook_in_configs.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/crd/patches/webhook_in_configs.yaml -------------------------------------------------------------------------------- /ruleserver/config/crd/patches/webhook_in_rules.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/crd/patches/webhook_in_rules.yaml -------------------------------------------------------------------------------- /ruleserver/config/default/kustomization.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/default/kustomization.yaml -------------------------------------------------------------------------------- /ruleserver/config/default/manager_auth_proxy_patch.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/default/manager_auth_proxy_patch.yaml -------------------------------------------------------------------------------- /ruleserver/config/default/manager_config_patch.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/default/manager_config_patch.yaml -------------------------------------------------------------------------------- /ruleserver/config/default/manager_webhook_patch.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/default/manager_webhook_patch.yaml -------------------------------------------------------------------------------- /ruleserver/config/default/webhookcainjection_patch.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/default/webhookcainjection_patch.yaml -------------------------------------------------------------------------------- /ruleserver/config/manager/controller_manager_config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/manager/controller_manager_config.yaml -------------------------------------------------------------------------------- /ruleserver/config/manager/kustomization.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/manager/kustomization.yaml -------------------------------------------------------------------------------- /ruleserver/config/manager/manager.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/manager/manager.yaml -------------------------------------------------------------------------------- /ruleserver/config/prometheus/kustomization.yaml: -------------------------------------------------------------------------------- 1 | resources: 2 | - monitor.yaml 3 | -------------------------------------------------------------------------------- /ruleserver/config/prometheus/monitor.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/prometheus/monitor.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/auth_proxy_client_clusterrole.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/auth_proxy_client_clusterrole.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/auth_proxy_role.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/auth_proxy_role.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/auth_proxy_role_binding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/auth_proxy_role_binding.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/auth_proxy_service.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/auth_proxy_service.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/config_editor_role.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/config_editor_role.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/config_viewer_role.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/config_viewer_role.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/kustomization.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/kustomization.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/leader_election_role.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/leader_election_role.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/leader_election_role_binding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/leader_election_role_binding.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/role.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/role.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/role_binding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/role_binding.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/rule_editor_role.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/rule_editor_role.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/rule_viewer_role.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/rule_viewer_role.yaml -------------------------------------------------------------------------------- /ruleserver/config/rbac/service_account.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/rbac/service_account.yaml -------------------------------------------------------------------------------- /ruleserver/config/samples/modsecurity_v1_config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/samples/modsecurity_v1_config.yaml -------------------------------------------------------------------------------- /ruleserver/config/samples/modsecurity_v1_rule.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/samples/modsecurity_v1_rule.yaml -------------------------------------------------------------------------------- /ruleserver/config/webhook/kustomization.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/webhook/kustomization.yaml -------------------------------------------------------------------------------- /ruleserver/config/webhook/kustomizeconfig.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/webhook/kustomizeconfig.yaml -------------------------------------------------------------------------------- /ruleserver/config/webhook/manifests.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/webhook/manifests.yaml -------------------------------------------------------------------------------- /ruleserver/config/webhook/service.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/config/webhook/service.yaml -------------------------------------------------------------------------------- /ruleserver/controllers/config_controller.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/controllers/config_controller.go -------------------------------------------------------------------------------- /ruleserver/controllers/rule_controller.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/controllers/rule_controller.go -------------------------------------------------------------------------------- /ruleserver/controllers/suite_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/controllers/suite_test.go -------------------------------------------------------------------------------- /ruleserver/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/go.mod -------------------------------------------------------------------------------- /ruleserver/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/go.sum -------------------------------------------------------------------------------- /ruleserver/hack/boilerplate.go.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/hack/boilerplate.go.txt -------------------------------------------------------------------------------- /ruleserver/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/main.go -------------------------------------------------------------------------------- /ruleserver/server/server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/ruleserver/server/server.go -------------------------------------------------------------------------------- /wasmplugin/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/wasmplugin/Dockerfile -------------------------------------------------------------------------------- /wasmplugin/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/wasmplugin/Makefile -------------------------------------------------------------------------------- /wasmplugin/envoy-wasm-modsecurity-dynamic.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/wasmplugin/envoy-wasm-modsecurity-dynamic.cc -------------------------------------------------------------------------------- /wasmplugin/envoy-wasm-modsecurity.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/wasmplugin/envoy-wasm-modsecurity.cc -------------------------------------------------------------------------------- /wasmplugin/prep-Dockerfile-static.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/wasmplugin/prep-Dockerfile-static.sh -------------------------------------------------------------------------------- /wasmplugin/utils.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/wasmplugin/utils.cc -------------------------------------------------------------------------------- /wasmplugin/utils.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/modsecurity-wasm-filter/HEAD/wasmplugin/utils.h --------------------------------------------------------------------------------