diff --git a/renderer/templates/services/wifi_steering.uc b/renderer/templates/services/wifi_steering.uc index 0e487cf..2aa2753 100644 --- a/renderer/templates/services/wifi_steering.uc +++ b/renderer/templates/services/wifi_steering.uc @@ -15,6 +15,7 @@ set usteer.@usteer[-1].min_connect_snr={{ wifi_steering.required_probe_snr }} set usteer.@usteer[-1].roam_scan_snr={{ wifi_steering.required_roam_snr }} set usteer.@usteer[-1].load_kick_enabled={{ b(wifi_steering.load_kick_threshold) }} set usteer.@usteer[-1].load_kick_threshold={{ wifi_steering.load_kick_threshold }} +set usteer.@usteer[-1].autochannel={{ b(wifi_steering.auto_channel) }} {% for (let ssid in ssids): %} add_list usteer.@usteer[-1].ssid_list={{ ssid.name }} {% endfor %} diff --git a/schema/service.wifi-steering.yml b/schema/service.wifi-steering.yml index 2b8ae1d..f92f74e 100644 --- a/schema/service.wifi-steering.yml +++ b/schema/service.wifi-steering.yml @@ -39,3 +39,9 @@ properties: Minimum channel load (%) before kicking clients type: integer default: 0 + auto-channel: + description: + Allow multiple instances of the steering daemon to coordinate the best channel + usage amongst eachother. + type: boolean + default: false diff --git a/schemareader.uc b/schemareader.uc index 27493a8..a94f2eb 100644 --- a/schemareader.uc +++ b/schemareader.uc @@ -4298,6 +4298,20 @@ function instantiateServiceWifiSteering(location, value, errors) { obj.load_kick_threshold = 0; } + function parseAutoChannel(location, value, errors) { + if (type(value) != "bool") + push(errors, [ location, "must be of type boolean" ]); + + return value; + } + + if (exists(value, "auto-channel")) { + obj.auto_channel = parseAutoChannel(location + "/auto-channel", value["auto-channel"], errors); + } + else { + obj.auto_channel = false; + } + return obj; } diff --git a/ucentral.schema.json b/ucentral.schema.json index 8a4b685..87634de 100644 --- a/ucentral.schema.json +++ b/ucentral.schema.json @@ -1637,6 +1637,10 @@ "load-kick-threshold": { "type": "integer", "default": 0 + }, + "auto-channel": { + "type": "boolean", + "default": false } } },