From ffc07452c6777eca9e23eb0aa412cdaa0ae7ea68 Mon Sep 17 00:00:00 2001 From: ralphlee Date: Tue, 20 Oct 2020 16:59:26 -0400 Subject: [PATCH] Implementing SourceSelection on RRM parameters, updating static json --- .../OpensyncExternalIntegrationCloud.java | 47 ++--- .../src/main/resources/EquipmentExample.json | 189 ++++++------------ .../src/main/resources/ProfileRf.json | 116 +++-------- .../app/opensync/EquipmentExample.json | 105 ++++++---- .../app/opensync/ProfileRf.json | 104 +++------- .../docker/app/opensync/EquipmentExample.json | 105 ++++++---- .../main/docker/app/opensync/ProfileRf.json | 104 +++------- .../app/opensync/EquipmentExample.json | 105 ++++++---- .../resources/app/opensync/ProfileRf.json | 104 +++------- .../wlan/opensync/ovsdb/dao/OvsdbDao.java | 51 ++++- 10 files changed, 409 insertions(+), 621 deletions(-) diff --git a/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloud.java b/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloud.java index 98c9ce8..baee795 100644 --- a/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloud.java +++ b/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloud.java @@ -34,6 +34,8 @@ import com.telecominfraproject.wlan.core.model.equipment.AutoOrManualValue; import com.telecominfraproject.wlan.core.model.equipment.EquipmentType; import com.telecominfraproject.wlan.core.model.equipment.MacAddress; import com.telecominfraproject.wlan.core.model.equipment.RadioType; +import com.telecominfraproject.wlan.core.model.equipment.SourceSelectionValue; +import com.telecominfraproject.wlan.core.model.equipment.SourceType; import com.telecominfraproject.wlan.core.model.pagination.PaginationContext; import com.telecominfraproject.wlan.core.model.pagination.PaginationResponse; import com.telecominfraproject.wlan.customer.models.Customer; @@ -285,36 +287,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra // one: Profile apProfile = createDefaultApProfile(ce, connectNodeInfo); profileId = apProfile.getId(); - - // Initialize equipment from RF Profile - ProfileContainer profileContainer = new ProfileContainer( - profileServiceInterface.getProfileWithChildren(profileId)); - RfConfiguration rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf) - .getDetails(); - ApElementConfiguration config = (ApElementConfiguration) ce.getDetails(); - Map baseRadioMap = config.getRadioMap(); - Map advRadioMap = config.getAdvancedRadioMap(); - for (RadioType rType : config.getRadioMap().keySet()) { - ElementRadioConfiguration elementRadioConfig = baseRadioMap.get(rType); - RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(rType); - - elementRadioConfig.setClientDisconnectThresholdDb(rfElementConfig.getClientDisconnectThresholdDb()); - elementRadioConfig.setEirpTxPower(rfElementConfig.getEirpTxPower()); - elementRadioConfig.setPerimeterDetectionEnabled(rfElementConfig.getPerimeterDetectionEnabled()); - elementRadioConfig.setProbeResponseThresholdDb(rfElementConfig.getProbeResponseThresholdDb()); - elementRadioConfig.setRxCellSizeDb(rfElementConfig.getRxCellSizeDb()); - } - for (RadioType rType : config.getAdvancedRadioMap().keySet()) { - RadioConfiguration radioConfig = advRadioMap.get(rType); - RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(rType); - - radioConfig.setBestApSettings(rfElementConfig.getBestApSettings()); - radioConfig.setManagementRate(rfElementConfig.getManagementRate()); - } - config.setAdvancedRadioMap(advRadioMap); - config.setRadioMap(baseRadioMap); - - ce.setDetails(config); } ce.setProfileId(profileId); @@ -1086,8 +1058,19 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra } if (radioState.getTxPower() > 0) { - apElementConfiguration.getRadioMap().get(radioState.getFreqBand()) - .setEirpTxPower(AutoOrManualValue.createManualInstance(radioState.getTxPower())); + SourceType txPowerSource = apElementConfiguration.getRadioMap().get(radioState.getFreqBand()) + .getEirpTxPower().getSource(); + // Preserve the source while updating the value + if (txPowerSource == SourceType.auto) { + apElementConfiguration.getRadioMap().get(radioState.getFreqBand()) + .setEirpTxPower(SourceSelectionValue.createAutomaticInstance(radioState.getTxPower())); + } else if (txPowerSource == SourceType.profile) { + apElementConfiguration.getRadioMap().get(radioState.getFreqBand()) + .setEirpTxPower(SourceSelectionValue.createProfileInstance(radioState.getTxPower())); + } else { + apElementConfiguration.getRadioMap().get(radioState.getFreqBand()) + .setEirpTxPower(SourceSelectionValue.createManualInstance(radioState.getTxPower())); + } LOG.debug("Updated TxPower from Wifi_Radio_State table change for AP {}", apId); } diff --git a/opensync-ext-static/src/main/resources/EquipmentExample.json b/opensync-ext-static/src/main/resources/EquipmentExample.json index 5eb69c5..60ca9b1 100644 --- a/opensync-ext-static/src/main/resources/EquipmentExample.json +++ b/opensync-ext-static/src/main/resources/EquipmentExample.json @@ -38,37 +38,28 @@ "channelNumber": 6, "manualChannelNumber": 6, "backupChannelNumber": 11, - "autoChannelSelection": false, - "channelBandwidth": "is20MHz", "bannedChannels": [], "allowedChannels": [], "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": false, + "model_type": "SourceSelectionValue", + "source": "auto", "value": 32 }, - "bestApEnabled": null, - "neighbouringListApConfig": { - "model_type": "NeighbouringAPListConfiguration", - "minSignal": -85, - "maxAps": 25 - }, - "minAutoCellSize": -80, "perimeterDetectionEnabled": true, "bestAPSteerType": "both", "deauthAttackDetection": null, @@ -81,37 +72,28 @@ "channelNumber": 149, "manualChannelNumber": 149, "backupChannelNumber": 154, - "autoChannelSelection": false, - "channelBandwidth": "is80MHz", "bannedChannels": [], "allowedChannels": [], "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": false, + "model_type": "SourceSelectionValue", + "source": "auto", "value": 32 }, - "bestApEnabled": null, - "neighbouringListApConfig": { - "model_type": "NeighbouringAPListConfiguration", - "minSignal": -85, - "maxAps": 25 - }, - "minAutoCellSize": -80, "perimeterDetectionEnabled": true, "bestAPSteerType": "both", "deauthAttackDetection": null, @@ -124,37 +106,28 @@ "channelNumber": 36, "manualChannelNumber": 36, "backupChannelNumber": 44, - "autoChannelSelection": false, - "channelBandwidth": "is80MHz", "bannedChannels": [], "allowedChannels": [], "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": false, + "model_type": "SourceSelectionValue", + "source": "auto", "value": 32 }, - "bestApEnabled": null, - "neighbouringListApConfig": { - "model_type": "NeighbouringAPListConfiguration", - "minSignal": -85, - "maxAps": 25 - }, - "minAutoCellSize": -80, "perimeterDetectionEnabled": true, "bestAPSteerType": "both", "deauthAttackDetection": null, @@ -168,39 +141,25 @@ "radioType": "is2dot4GHz", "radioAdminState": "enabled", "fragmentationThresholdBytes": 2346, - "rtsCtsThreshold": 65535, - "autoChannelSelection": "disabled", - "radioMode": "modeN", - "mimoMode": "twoByTwo", "wmmState": "enabled", "uapsdState": "enabled", - "maxNumClients": 100, "stationIsolation": "disabled", - "multicastRate": "auto", - "managementRate": "auto", - "activeScanSettings": { - "model_type": "ActiveScanSettings", - "enabled": true, - "scanFrequencySeconds": 10, - "scanDurationMillis": 65 - }, - "channelHopSettings": { - "model_type": "ChannelHopSettings", - "noiseFloorThresholdInDB": -75, - "noiseFloorThresholdTimeInSeconds": 180, - "nonWifiThresholdInPercentage": 50, - "nonWifiThresholdTimeInSeconds": 180, - "obssHopMode": "NON_WIFI" + "managementRate": { + "model_type": "SourceSelectionManagement", + "source": "auto", + "value": "auto" }, "bestApSettings": { - "model_type": "RadioBestApSettings", - "mlComputed": true, - "dropInSnrPercentage": 20, - "minLoadFactor": 50 + "model_type": "SourceSelectionSteering", + "source": "auto", + "value": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } }, - "forceScanDuringVoice": "disabled", "legacyBSSRate": "enabled", - "beaconInterval": 100, "deauthAttackDetection": null }, "is5GHzU": { @@ -208,39 +167,25 @@ "radioType": "is5GHzU", "radioAdminState": "enabled", "fragmentationThresholdBytes": 2346, - "rtsCtsThreshold": 65535, - "autoChannelSelection": "disabled", - "radioMode": "modeAC", - "mimoMode": "twoByTwo", "wmmState": "enabled", "uapsdState": "enabled", - "maxNumClients": 100, "stationIsolation": "disabled", - "multicastRate": "auto", - "managementRate": "auto", - "activeScanSettings": { - "model_type": "ActiveScanSettings", - "enabled": true, - "scanFrequencySeconds": 10, - "scanDurationMillis": 65 - }, - "channelHopSettings": { - "model_type": "ChannelHopSettings", - "noiseFloorThresholdInDB": -75, - "noiseFloorThresholdTimeInSeconds": 180, - "nonWifiThresholdInPercentage": 50, - "nonWifiThresholdTimeInSeconds": 180, - "obssHopMode": "NON_WIFI" + "managementRate": { + "model_type": "SourceSelectionManagement", + "source": "auto", + "value": "auto" }, "bestApSettings": { - "model_type": "RadioBestApSettings", - "mlComputed": true, - "dropInSnrPercentage": 30, - "minLoadFactor": 40 + "model_type": "SourceSelectionSteering", + "source": "auto", + "value": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } }, - "forceScanDuringVoice": "disabled", "legacyBSSRate": "enabled", - "beaconInterval": 100, "deauthAttackDetection": null }, "is5GHzL": { @@ -248,39 +193,25 @@ "radioType": "is5GHzL", "radioAdminState": "enabled", "fragmentationThresholdBytes": 2346, - "rtsCtsThreshold": 65535, - "autoChannelSelection": "disabled", - "radioMode": "modeAC", - "mimoMode": "twoByTwo", "wmmState": "enabled", "uapsdState": "enabled", - "maxNumClients": 100, "stationIsolation": "disabled", - "multicastRate": "auto", - "managementRate": "auto", - "activeScanSettings": { - "model_type": "ActiveScanSettings", - "enabled": true, - "scanFrequencySeconds": 10, - "scanDurationMillis": 65 - }, - "channelHopSettings": { - "model_type": "ChannelHopSettings", - "noiseFloorThresholdInDB": -75, - "noiseFloorThresholdTimeInSeconds": 180, - "nonWifiThresholdInPercentage": 50, - "nonWifiThresholdTimeInSeconds": 180, - "obssHopMode": "NON_WIFI" + "managementRate": { + "model_type": "SourceSelectionManagement", + "source": "auto", + "value": "auto" }, "bestApSettings": { - "model_type": "RadioBestApSettings", - "mlComputed": true, - "dropInSnrPercentage": 30, - "minLoadFactor": 40 + "model_type": "SourceSelectionSteering", + "source": "auto", + "value": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } }, - "forceScanDuringVoice": "disabled", "legacyBSSRate": "enabled", - "beaconInterval": 100, "deauthAttackDetection": null } } diff --git a/opensync-ext-static/src/main/resources/ProfileRf.json b/opensync-ext-static/src/main/resources/ProfileRf.json index d76c61e..3870024 100644 --- a/opensync-ext-static/src/main/resources/ProfileRf.json +++ b/opensync-ext-static/src/main/resources/ProfileRf.json @@ -10,6 +10,8 @@ "is5GHz": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is5GHz", + "radioMode": "modeAC", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -25,26 +27,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", @@ -65,11 +51,14 @@ "mlComputed": true, "dropInSnrPercentage": 30, "minLoadFactor": 40 - } + }, + "minAutoCellSize": -65 }, "is2dot4GHz": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is2dot4GHz", + "radioMode": "modeN", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -85,26 +74,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", @@ -125,11 +98,14 @@ "mlComputed": true, "dropInSnrPercentage": 20, "minLoadFactor": 50 - } + }, + "minAutoCellSize": -65 }, "is5GHzU": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is5GHzU", + "radioMode": "modeAC", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -145,26 +121,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", @@ -185,11 +145,14 @@ "mlComputed": true, "dropInSnrPercentage": 30, "minLoadFactor": 40 - } + }, + "minAutoCellSize": -65 }, "is5GHzL": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is5GHzL", + "radioMode": "modeAC", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -205,26 +168,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", @@ -245,7 +192,8 @@ "mlComputed": true, "dropInSnrPercentage": 30, "minLoadFactor": 40 - } + }, + "minAutoCellSize": -65 } }, "profileType": "rf" diff --git a/opensync-gateway-static-docker/src/main/docker-opensync-gateway-and-mqtt/app/opensync/EquipmentExample.json b/opensync-gateway-static-docker/src/main/docker-opensync-gateway-and-mqtt/app/opensync/EquipmentExample.json index b132acc..60ca9b1 100644 --- a/opensync-gateway-static-docker/src/main/docker-opensync-gateway-and-mqtt/app/opensync/EquipmentExample.json +++ b/opensync-gateway-static-docker/src/main/docker-opensync-gateway-and-mqtt/app/opensync/EquipmentExample.json @@ -41,23 +41,23 @@ "bannedChannels": [], "allowedChannels": [], "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": false, + "model_type": "SourceSelectionValue", + "source": "auto", "value": 32 }, "perimeterDetectionEnabled": true, @@ -75,23 +75,23 @@ "bannedChannels": [], "allowedChannels": [], "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": false, + "model_type": "SourceSelectionValue", + "source": "auto", "value": 32 }, "perimeterDetectionEnabled": true, @@ -109,23 +109,23 @@ "bannedChannels": [], "allowedChannels": [], "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": false, + "model_type": "SourceSelectionValue", + "source": "auto", "value": 32 }, "perimeterDetectionEnabled": true, @@ -141,16 +141,23 @@ "radioType": "is2dot4GHz", "radioAdminState": "enabled", "fragmentationThresholdBytes": 2346, - "radioMode": "modeN", "wmmState": "enabled", "uapsdState": "enabled", "stationIsolation": "disabled", - "managementRate": "auto", + "managementRate": { + "model_type": "SourceSelectionManagement", + "source": "auto", + "value": "auto" + }, "bestApSettings": { - "model_type": "RadioBestApSettings", - "mlComputed": true, - "dropInSnrPercentage": 20, - "minLoadFactor": 50 + "model_type": "SourceSelectionSteering", + "source": "auto", + "value": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } }, "legacyBSSRate": "enabled", "deauthAttackDetection": null @@ -160,16 +167,23 @@ "radioType": "is5GHzU", "radioAdminState": "enabled", "fragmentationThresholdBytes": 2346, - "radioMode": "modeAC", "wmmState": "enabled", "uapsdState": "enabled", "stationIsolation": "disabled", - "managementRate": "auto", + "managementRate": { + "model_type": "SourceSelectionManagement", + "source": "auto", + "value": "auto" + }, "bestApSettings": { - "model_type": "RadioBestApSettings", - "mlComputed": true, - "dropInSnrPercentage": 30, - "minLoadFactor": 40 + "model_type": "SourceSelectionSteering", + "source": "auto", + "value": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } }, "legacyBSSRate": "enabled", "deauthAttackDetection": null @@ -179,16 +193,23 @@ "radioType": "is5GHzL", "radioAdminState": "enabled", "fragmentationThresholdBytes": 2346, - "radioMode": "modeAC", "wmmState": "enabled", "uapsdState": "enabled", "stationIsolation": "disabled", - "managementRate": "auto", + "managementRate": { + "model_type": "SourceSelectionManagement", + "source": "auto", + "value": "auto" + }, "bestApSettings": { - "model_type": "RadioBestApSettings", - "mlComputed": true, - "dropInSnrPercentage": 30, - "minLoadFactor": 40 + "model_type": "SourceSelectionSteering", + "source": "auto", + "value": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } }, "legacyBSSRate": "enabled", "deauthAttackDetection": null diff --git a/opensync-gateway-static-docker/src/main/docker-opensync-gateway-and-mqtt/app/opensync/ProfileRf.json b/opensync-gateway-static-docker/src/main/docker-opensync-gateway-and-mqtt/app/opensync/ProfileRf.json index a293a7b..3870024 100644 --- a/opensync-gateway-static-docker/src/main/docker-opensync-gateway-and-mqtt/app/opensync/ProfileRf.json +++ b/opensync-gateway-static-docker/src/main/docker-opensync-gateway-and-mqtt/app/opensync/ProfileRf.json @@ -10,6 +10,8 @@ "is5GHz": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is5GHz", + "radioMode": "modeAC", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -25,26 +27,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", @@ -71,6 +57,8 @@ "is2dot4GHz": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is2dot4GHz", + "radioMode": "modeN", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -86,26 +74,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", @@ -132,6 +104,8 @@ "is5GHzU": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is5GHzU", + "radioMode": "modeAC", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -147,26 +121,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", @@ -193,6 +151,8 @@ "is5GHzL": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is5GHzL", + "radioMode": "modeAC", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -208,26 +168,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", diff --git a/opensync-gateway-static-docker/src/main/docker/app/opensync/EquipmentExample.json b/opensync-gateway-static-docker/src/main/docker/app/opensync/EquipmentExample.json index b132acc..60ca9b1 100644 --- a/opensync-gateway-static-docker/src/main/docker/app/opensync/EquipmentExample.json +++ b/opensync-gateway-static-docker/src/main/docker/app/opensync/EquipmentExample.json @@ -41,23 +41,23 @@ "bannedChannels": [], "allowedChannels": [], "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": false, + "model_type": "SourceSelectionValue", + "source": "auto", "value": 32 }, "perimeterDetectionEnabled": true, @@ -75,23 +75,23 @@ "bannedChannels": [], "allowedChannels": [], "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": false, + "model_type": "SourceSelectionValue", + "source": "auto", "value": 32 }, "perimeterDetectionEnabled": true, @@ -109,23 +109,23 @@ "bannedChannels": [], "allowedChannels": [], "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": false, + "model_type": "SourceSelectionValue", + "source": "auto", "value": 32 }, "perimeterDetectionEnabled": true, @@ -141,16 +141,23 @@ "radioType": "is2dot4GHz", "radioAdminState": "enabled", "fragmentationThresholdBytes": 2346, - "radioMode": "modeN", "wmmState": "enabled", "uapsdState": "enabled", "stationIsolation": "disabled", - "managementRate": "auto", + "managementRate": { + "model_type": "SourceSelectionManagement", + "source": "auto", + "value": "auto" + }, "bestApSettings": { - "model_type": "RadioBestApSettings", - "mlComputed": true, - "dropInSnrPercentage": 20, - "minLoadFactor": 50 + "model_type": "SourceSelectionSteering", + "source": "auto", + "value": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } }, "legacyBSSRate": "enabled", "deauthAttackDetection": null @@ -160,16 +167,23 @@ "radioType": "is5GHzU", "radioAdminState": "enabled", "fragmentationThresholdBytes": 2346, - "radioMode": "modeAC", "wmmState": "enabled", "uapsdState": "enabled", "stationIsolation": "disabled", - "managementRate": "auto", + "managementRate": { + "model_type": "SourceSelectionManagement", + "source": "auto", + "value": "auto" + }, "bestApSettings": { - "model_type": "RadioBestApSettings", - "mlComputed": true, - "dropInSnrPercentage": 30, - "minLoadFactor": 40 + "model_type": "SourceSelectionSteering", + "source": "auto", + "value": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } }, "legacyBSSRate": "enabled", "deauthAttackDetection": null @@ -179,16 +193,23 @@ "radioType": "is5GHzL", "radioAdminState": "enabled", "fragmentationThresholdBytes": 2346, - "radioMode": "modeAC", "wmmState": "enabled", "uapsdState": "enabled", "stationIsolation": "disabled", - "managementRate": "auto", + "managementRate": { + "model_type": "SourceSelectionManagement", + "source": "auto", + "value": "auto" + }, "bestApSettings": { - "model_type": "RadioBestApSettings", - "mlComputed": true, - "dropInSnrPercentage": 30, - "minLoadFactor": 40 + "model_type": "SourceSelectionSteering", + "source": "auto", + "value": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } }, "legacyBSSRate": "enabled", "deauthAttackDetection": null diff --git a/opensync-gateway-static-docker/src/main/docker/app/opensync/ProfileRf.json b/opensync-gateway-static-docker/src/main/docker/app/opensync/ProfileRf.json index a293a7b..3870024 100644 --- a/opensync-gateway-static-docker/src/main/docker/app/opensync/ProfileRf.json +++ b/opensync-gateway-static-docker/src/main/docker/app/opensync/ProfileRf.json @@ -10,6 +10,8 @@ "is5GHz": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is5GHz", + "radioMode": "modeAC", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -25,26 +27,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", @@ -71,6 +57,8 @@ "is2dot4GHz": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is2dot4GHz", + "radioMode": "modeN", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -86,26 +74,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", @@ -132,6 +104,8 @@ "is5GHzU": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is5GHzU", + "radioMode": "modeAC", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -147,26 +121,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", @@ -193,6 +151,8 @@ "is5GHzL": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is5GHzL", + "radioMode": "modeAC", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -208,26 +168,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", diff --git a/opensync-gateway-static-process/src/main/resources/app/opensync/EquipmentExample.json b/opensync-gateway-static-process/src/main/resources/app/opensync/EquipmentExample.json index b132acc..60ca9b1 100644 --- a/opensync-gateway-static-process/src/main/resources/app/opensync/EquipmentExample.json +++ b/opensync-gateway-static-process/src/main/resources/app/opensync/EquipmentExample.json @@ -41,23 +41,23 @@ "bannedChannels": [], "allowedChannels": [], "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": false, + "model_type": "SourceSelectionValue", + "source": "auto", "value": 32 }, "perimeterDetectionEnabled": true, @@ -75,23 +75,23 @@ "bannedChannels": [], "allowedChannels": [], "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": false, + "model_type": "SourceSelectionValue", + "source": "auto", "value": 32 }, "perimeterDetectionEnabled": true, @@ -109,23 +109,23 @@ "bannedChannels": [], "allowedChannels": [], "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, + "model_type": "SourceSelectionValue", + "source": "auto", "value": -90 }, "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": false, + "model_type": "SourceSelectionValue", + "source": "auto", "value": 32 }, "perimeterDetectionEnabled": true, @@ -141,16 +141,23 @@ "radioType": "is2dot4GHz", "radioAdminState": "enabled", "fragmentationThresholdBytes": 2346, - "radioMode": "modeN", "wmmState": "enabled", "uapsdState": "enabled", "stationIsolation": "disabled", - "managementRate": "auto", + "managementRate": { + "model_type": "SourceSelectionManagement", + "source": "auto", + "value": "auto" + }, "bestApSettings": { - "model_type": "RadioBestApSettings", - "mlComputed": true, - "dropInSnrPercentage": 20, - "minLoadFactor": 50 + "model_type": "SourceSelectionSteering", + "source": "auto", + "value": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } }, "legacyBSSRate": "enabled", "deauthAttackDetection": null @@ -160,16 +167,23 @@ "radioType": "is5GHzU", "radioAdminState": "enabled", "fragmentationThresholdBytes": 2346, - "radioMode": "modeAC", "wmmState": "enabled", "uapsdState": "enabled", "stationIsolation": "disabled", - "managementRate": "auto", + "managementRate": { + "model_type": "SourceSelectionManagement", + "source": "auto", + "value": "auto" + }, "bestApSettings": { - "model_type": "RadioBestApSettings", - "mlComputed": true, - "dropInSnrPercentage": 30, - "minLoadFactor": 40 + "model_type": "SourceSelectionSteering", + "source": "auto", + "value": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } }, "legacyBSSRate": "enabled", "deauthAttackDetection": null @@ -179,16 +193,23 @@ "radioType": "is5GHzL", "radioAdminState": "enabled", "fragmentationThresholdBytes": 2346, - "radioMode": "modeAC", "wmmState": "enabled", "uapsdState": "enabled", "stationIsolation": "disabled", - "managementRate": "auto", + "managementRate": { + "model_type": "SourceSelectionManagement", + "source": "auto", + "value": "auto" + }, "bestApSettings": { - "model_type": "RadioBestApSettings", - "mlComputed": true, - "dropInSnrPercentage": 30, - "minLoadFactor": 40 + "model_type": "SourceSelectionSteering", + "source": "auto", + "value": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } }, "legacyBSSRate": "enabled", "deauthAttackDetection": null diff --git a/opensync-gateway-static-process/src/main/resources/app/opensync/ProfileRf.json b/opensync-gateway-static-process/src/main/resources/app/opensync/ProfileRf.json index a293a7b..3870024 100644 --- a/opensync-gateway-static-process/src/main/resources/app/opensync/ProfileRf.json +++ b/opensync-gateway-static-process/src/main/resources/app/opensync/ProfileRf.json @@ -10,6 +10,8 @@ "is5GHz": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is5GHz", + "radioMode": "modeAC", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -25,26 +27,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", @@ -71,6 +57,8 @@ "is2dot4GHz": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is2dot4GHz", + "radioMode": "modeN", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -86,26 +74,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", @@ -132,6 +104,8 @@ "is5GHzU": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is5GHzU", + "radioMode": "modeAC", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -147,26 +121,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", @@ -193,6 +151,8 @@ "is5GHzL": { "model_type": "RfElementConfiguration", "rf": "TipWlan-rf", + "radioType": "is5GHzL", + "radioMode": "modeAC", "beaconInterval": 100, "forceScanDuringVoice": "disabled", "rtsCtsThreshold": 65535, @@ -208,26 +168,10 @@ "scanDurationMillis": 65 }, "managementRate": "auto", - "rxCellSizeDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "probeResponseThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "clientDisconnectThresholdDb": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": -90 - }, - "eirpTxPower": { - "model_type": "AutoOrManualValue", - "auto": true, - "value": 18 - }, + "rxCellSizeDb": -90, + "probeResponseThresholdDb": -90, + "clientDisconnectThresholdDb": -90, + "eirpTxPower": 18, "bestApEnabled": null, "neighbouringListApConfig": { "model_type": "NeighbouringAPListConfiguration", diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java index a591ac5..0da831f 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java @@ -29,6 +29,7 @@ import com.telecominfraproject.wlan.core.model.equipment.ChannelBandwidth; import com.telecominfraproject.wlan.core.model.equipment.MacAddress; import com.telecominfraproject.wlan.core.model.equipment.RadioBestApSettings; import com.telecominfraproject.wlan.core.model.equipment.RadioType; +import com.telecominfraproject.wlan.core.model.equipment.SourceType; import com.telecominfraproject.wlan.core.model.json.BaseJsonModel; import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration; import com.telecominfraproject.wlan.equipment.models.ElementRadioConfiguration; @@ -1937,12 +1938,14 @@ public class OvsdbDao { boolean enabled = radioConfig.getRadioAdminState().equals(StateSetting.enabled); int txPower = 0; - if (!elementRadioConfig.getEirpTxPower().isAuto()) { - txPower = elementRadioConfig.getEirpTxPower().getValue(); + if (elementRadioConfig.getEirpTxPower().getSource() == SourceType.profile) { + txPower = rfElementConfig.getEirpTxPower(); + } else { + txPower = (int) elementRadioConfig.getEirpTxPower().getValue(); } String hwMode = null; - switch (radioConfig.getRadioMode()) { + switch (rfElementConfig.getRadioMode()) { case modeA: hwMode = "11a"; break; @@ -2972,7 +2975,7 @@ public class OvsdbDao { int dtimPeriod = radioConfiguration.getDtimPeriod(); int rtsCtsThreshold = rfElementConfig.getRtsCtsThreshold(); int fragThresholdBytes = radioConfiguration.getFragmentationThresholdBytes(); - RadioMode radioMode = radioConfiguration.getRadioMode(); + RadioMode radioMode = rfElementConfig.getRadioMode(); String minHwMode = "11n"; // min_hw_mode is 11ac, wifi 5, we can // also take ++ (11ax) but 2.4GHz only // Wifi4 -- @@ -4718,6 +4721,7 @@ public class OvsdbDao { ApElementConfiguration apElementConfig = (ApElementConfiguration) opensyncApConfig.getCustomerEquipment() .getDetails(); + RfConfiguration rfConfig = (RfConfiguration) opensyncApConfig.getRfProfile().getDetails(); for (RadioType radioType : apElementConfig.getRadioMap().keySet()) { String freqBand = null; if (radioType == RadioType.is2dot4GHz) { @@ -4730,24 +4734,42 @@ public class OvsdbDao { freqBand = "5G"; } + ElementRadioConfiguration elementRadioConfig = apElementConfig.getRadioMap().get(radioType); - if (elementRadioConfig == null) { + RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(radioType); + if (elementRadioConfig == null || rfElementConfig == null) { continue; // don't have a radio of this kind in the map } + AutoOrManualValue rxCellSizeDb = null; + AutoOrManualValue probeResponseThresholdDb = null; + AutoOrManualValue clientDisconnectThresholdDb = null; + if (elementRadioConfig != null && rfElementConfig != null) { + rxCellSizeDb = getSourcedValue(elementRadioConfig.getRxCellSizeDb().getSource(), + rfElementConfig.getRxCellSizeDb(), elementRadioConfig.getRxCellSizeDb().getValue()); + + probeResponseThresholdDb = getSourcedValue(elementRadioConfig.getProbeResponseThresholdDb().getSource(), + rfElementConfig.getProbeResponseThresholdDb(), elementRadioConfig.getProbeResponseThresholdDb().getValue()); + + clientDisconnectThresholdDb = getSourcedValue(elementRadioConfig.getClientDisconnectThresholdDb().getSource(), + rfElementConfig.getClientDisconnectThresholdDb(), elementRadioConfig.getClientDisconnectThresholdDb().getValue()); + } RadioConfiguration radioConfig = apElementConfig.getAdvancedRadioMap().get(radioType); ManagementRate managementRate = null; RadioBestApSettings bestApSettings = null; - if (radioConfig != null) { - managementRate = radioConfig.getManagementRate(); - bestApSettings = radioConfig.getBestApSettings(); + if (radioConfig != null && rfElementConfig != null) { + managementRate = radioConfig.getManagementRate().getSource() == SourceType.profile ? + rfElementConfig.getManagementRate() : radioConfig.getManagementRate().getValue(); + + bestApSettings = radioConfig.getBestApSettings().getSource() == SourceType.profile ? + rfElementConfig.getBestApSettings() : radioConfig.getBestApSettings().getValue(); } if (freqBand != null) { try { configureWifiRrm(ovsdbClient, freqBand, elementRadioConfig.getBackupChannelNumber(), - elementRadioConfig.getRxCellSizeDb(), elementRadioConfig.getProbeResponseThresholdDb(), - elementRadioConfig.getClientDisconnectThresholdDb(), managementRate, bestApSettings); + rxCellSizeDb, probeResponseThresholdDb, clientDisconnectThresholdDb, + managementRate, bestApSettings); } catch (OvsdbClientException e) { LOG.error("configureRrm failed with OvsdbClient exception.", e); throw new RuntimeException(e); @@ -4896,5 +4918,14 @@ public class OvsdbDao { } + + public AutoOrManualValue getSourcedValue(SourceType source, int profileValue, int equipmentValue) { + if (source == SourceType.profile) { + return AutoOrManualValue.createManualInstance(profileValue); + } else if (source == SourceType.auto) { + return AutoOrManualValue.createAutomaticInstance(equipmentValue); + } + return AutoOrManualValue.createManualInstance(equipmentValue); + } }