- /network/tls/auto-discovery
- /webmgmt
- Renamed/moved options in the declarative configuration model (YAML).
+ - /defer/* -> /prioritization/*
+ - /defer/log-period -> /prioritization/logging-period
- /dns64: true|false -> /dns64/enabled: true|false
- /dns64/rev-ttl -> /dns64/reverse-ttl
- /dnssec: true|false -> /dnssec/enabled: true|false
},
"default": null
},
- "defer": {
+ "prioritization": {
"description": "Configuration of request prioritization (defer).",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
- "description": "Use request prioritization.",
+ "description": "Enable/disable request prioritization.",
"default": false
},
- "log-period": {
+ "logging-period": {
"type": "string",
"pattern": "^(\\d+)(us|ms|s|m|h|d)$",
"description": "Minimal time between two log messages, or '0s' to disable.",
},
"default": {
"enabled": false,
- "log_period": "0s"
+ "logging_period": "0s"
}
},
"lua": {
from knot_resolver.constants import API_SOCK_FILE, RUN_DIR, VERSION
from knot_resolver.datamodel.cache_schema import CacheSchema
-from knot_resolver.datamodel.defer_schema import DeferSchema
from knot_resolver.datamodel.dns64_schema import Dns64Schema
from knot_resolver.datamodel.dnssec_schema import DnssecSchema
from knot_resolver.datamodel.forward_schema import ForwardSchema
from knot_resolver.datamodel.monitoring_schema import MonitoringSchema
from knot_resolver.datamodel.network_schema import NetworkSchema
from knot_resolver.datamodel.options_schema import OptionsSchema
+from knot_resolver.datamodel.prioritization_schema import PrioritizationSchema
from knot_resolver.datamodel.rate_limiting_schema import RateLimitingSchema
from knot_resolver.datamodel.templates import POLICY_CONFIG_TEMPLATE, WORKER_CONFIG_TEMPLATE
from knot_resolver.datamodel.types import EscapedStr, IntPositive, WritableDir
monitoring: Metrics exposisition configuration (Prometheus, Graphite)
lua: Custom Lua configuration.
rate_limiting: Configuration of rate limiting.
- defer: Configuration of request prioritization (defer).
+ prioritization: Configuration of request prioritization (defer).
"""
version: int = 1
logging: LoggingSchema = LoggingSchema()
monitoring: MonitoringSchema = MonitoringSchema()
rate_limiting: Optional[RateLimitingSchema] = None
- defer: DeferSchema = DeferSchema()
+ prioritization: PrioritizationSchema = PrioritizationSchema()
lua: LuaSchema = LuaSchema()
_LAYER = Raw
logging: LoggingSchema
monitoring: MonitoringSchema
rate_limiting: Optional[RateLimitingSchema]
- defer: DeferSchema
+ prioritization: PrioritizationSchema
lua: LuaSchema
def _hostname(self, obj: Raw) -> Any:
+++ /dev/null
-from knot_resolver.datamodel.types import TimeUnit
-from knot_resolver.utils.modeling import ConfigSchema
-
-
-class DeferSchema(ConfigSchema):
- """
- Configuration of request prioritization (defer).
-
- ---
- enabled: Use request prioritization.
- log_period: Minimal time between two log messages, or '0s' to disable.
- """
-
- enabled: bool = False
- log_period: TimeUnit = TimeUnit("0s")
--- /dev/null
+from knot_resolver.datamodel.types import TimeUnit
+from knot_resolver.utils.modeling import ConfigSchema
+
+
+class PrioritizationSchema(ConfigSchema):
+ """
+ Configuration of request prioritization (defer).
+
+ ---
+ enabled: Enable/disable request prioritization.
+ logging_period: Minimal time between two log messages, or '0s' to disable.
+ """
+
+ enabled: bool = False
+ logging_period: TimeUnit = TimeUnit("0s")
+++ /dev/null
-{% from 'macros/common_macros.lua.j2' import boolean %}
-
-{% if cfg.defer.enabled and disable_defer is not defined -%}
-assert(C.defer_init(
- '{{ cfg.rundir }}/defer',
- {{ cfg.defer.log_period.millis() }},
- {{ cfg.workers }}) == 0)
-{% else %}
-assert(C.defer_init(nil, 0, 0) == 0)
-{%- endif %}
-- FORWARD section ----------------------------------
{% include "forward.lua.j2" %}
--- DEFER section ------------------------------------
+-- PRIORITIZATION section ------------------------------------
-- Force-disable defer to avoid the default defer config.
-{% set disable_defer = true %}
-{% include "defer.lua.j2" %}
+{% set disable_prioritization = true %}
+{% include "prioritization.lua.j2" %}
{% endif %}
--- /dev/null
+{% if cfg.prioritization.enabled and disable_prioritization is not defined %}
+-- Enable and configure request prioritization (defer)
+assert(
+ C.defer_init(
+ '{{ cfg.rundir }}/defer',
+ {{ cfg.prioritization.logging_period.millis() }},
+ {{ cfg.workers }}
+ ) == 0
+)
+{% else %}
+-- Disable request prioritization (defer)
+assert(C.defer_init(nil, 0, 0) == 0)
+{% endif %}
-- RATE-LIMITING section ------------------------------------
{% include "rate_limiting.lua.j2" %}
--- DEFER section ------------------------------------
-{% include "defer.lua.j2" %}
+-- PRIORITIZATION section ------------------------------------
+{% include "prioritization.lua.j2" %}
{% endif %}
config.dns64,
config.logging,
config.monitoring,
- config.lua,
config.rate_limiting,
- config.defer,
+ config.prioritization,
+ config.lua,
]
# register and immediately call a verifier that validates config with 'canary' kresd process
os.unlink(str(_old.rundir) + "/ratelimiting")
except FileNotFoundError:
pass
- if _old.workers != new.workers or _old.defer != new.defer:
+ if _old.workers != new.workers or _old.prioritization != new.prioritization:
logger.debug("Unlinking shared defer memory")
try:
os.unlink(str(_old.rundir) + "/defer")