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 e0c402c..5d7fbfd 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 @@ -76,6 +76,7 @@ import com.telecominfraproject.wlan.profile.models.ProfileContainer; import com.telecominfraproject.wlan.profile.models.ProfileType; import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration; import com.telecominfraproject.wlan.profile.network.models.RadioProfileConfiguration; +import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration; import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration; import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.SecureMode; import com.telecominfraproject.wlan.routing.RoutingServiceInterface; @@ -382,7 +383,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra Set radioTypes = radioProfileMap.keySet(); for (RadioType radioType : radioTypes) { - // SSID Profile set in AP Profile + // SSID Profile init Profile ssidProfile = new Profile(); ssidProfile.setCustomerId(ce.getCustomerId()); ssidProfile.setName(autoProvisionedSsid + radioType.name() + " for " + ce.getName()); @@ -400,10 +401,28 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra ssidProfile.setDetails(ssidConfig); ssidProfile = profileServiceInterface.create(ssidProfile); - apProfile.getChildProfileIds().add(ssidProfile.getId()); - - apProfile = profileServiceInterface.update(apProfile); - } + apProfile.getChildProfileIds().add(ssidProfile.getId()); + } + + // RF Profile Init + Profile rfProfile = new Profile(); + rfProfile.setCustomerId(ce.getCustomerId()); + rfProfile.setName("DefaultRf for " + ce.getName()); + RfConfiguration rfConfig = RfConfiguration.createWithDefaults(); + + // Override default values + for (RadioType radioType : radioTypes) { + rfConfig.getRfConfig(radioType).setRf(rfProfile.getName()); + } + + rfProfile.setDetails(rfConfig); + rfProfile = profileServiceInterface.create(rfProfile); + + apProfile.getChildProfileIds().add(rfProfile.getId()); + + + // Update AP profile with SSID and RF child profiles + apProfile = profileServiceInterface.update(apProfile); return apProfile; } @@ -761,6 +780,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra profileServiceInterface.getProfileWithChildren(equipmentConfig.getProfileId())); ret.setApProfile(profileContainer.getOrNull(equipmentConfig.getProfileId())); + + ret.setRfProfile(profileContainer.getChildOfTypeOrNull(equipmentConfig.getProfileId(), ProfileType.rf)); ret.setSsidProfile( profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.ssid)); diff --git a/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationMqttMessageProcessor.java b/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationMqttMessageProcessor.java index b6717c9..5de05c9 100644 --- a/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationMqttMessageProcessor.java +++ b/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationMqttMessageProcessor.java @@ -47,6 +47,7 @@ import com.telecominfraproject.wlan.profile.ProfileServiceInterface; import com.telecominfraproject.wlan.profile.models.Profile; import com.telecominfraproject.wlan.profile.models.ProfileContainer; import com.telecominfraproject.wlan.profile.models.ProfileType; +import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration; import com.telecominfraproject.wlan.profile.ssid.models.RadioBasedSsidConfiguration; import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration; import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.SecureMode; @@ -206,6 +207,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { } long locationId = ce.getLocationId(); + long profileId = ce.getProfileId(); if (LOG.isTraceEnabled()) { // prepare a JSONPrinter to format protobuf messages as @@ -230,7 +232,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { populateApClientMetrics(metricRecordList, report, customerId, equipmentId, locationId); populateApNodeMetrics(metricRecordList, report, customerId, equipmentId, locationId); populateNeighbourScanReports(metricRecordList, report, customerId, equipmentId, locationId); - populateChannelInfoReports(metricRecordList, report, customerId, equipmentId, locationId); + populateChannelInfoReports(metricRecordList, report, customerId, equipmentId, locationId, profileId); populateApSsidMetrics(metricRecordList, report, customerId, equipmentId, apId, locationId); // TODO: uncomment when AP support present populateSipCallReport(metricRecordList, report, customerId, equipmentId, apId, locationId); @@ -2249,9 +2251,14 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { } void populateChannelInfoReports(List metricRecordList, Report report, int customerId, - long equipmentId, long locationId) { + long equipmentId, long locationId, long profileId) { LOG.debug("populateChannelInfoReports for Customer {} Equipment {}", customerId, equipmentId); + + ProfileContainer profileContainer = new ProfileContainer( + profileServiceInterface.getProfileWithChildren(profileId)); + RfConfiguration rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf) + .getDetails(); for (Survey survey : report.getSurveyList()) { diff --git a/opensync-ext-static/src/main/resources/ProfileRf.json b/opensync-ext-static/src/main/resources/ProfileRf.json index 7d0596b..437c898 100644 --- a/opensync-ext-static/src/main/resources/ProfileRf.json +++ b/opensync-ext-static/src/main/resources/ProfileRf.json @@ -3,10 +3,10 @@ "id": 9, "customerId": 2, "profileType": "rf", - "name": "DefaultRf-2g", + "name": "DefaultRf", "details": { "model_type": "RfConfiguration", - "rf": "Default-RF-2g", + "rf": "Default-RF", "profileType": "rf", "rfConfigMap": { "is2dot4GHz": { @@ -18,13 +18,56 @@ "mimoMode": "twoBytwo", "maxNumClients": 100, "multicastRate": "auto", - "autoChannelSelection": "disabled", + "autoChannelSelection": false, "activeScanSettings": { "model_type": "ActiveScanSettings", "enabled": true, "scanFrequencySeconds": 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": false, + "value": 32 + }, + "bestApEnabled": null, + "neighbouringListApConfig": { + "model_type": "NeighbouringAPListConfiguration", + "minSignal": -85, + "maxAps": 25 + }, + "minAutoCellSize": -80, + "perimeterDetectionEnabled": true, + "channelHopSettings": { + "model_type": "ChannelHopSettings", + "noiseFloorThresholdInDB": -75, + "noiseFloorThresholdTimeInSeconds": 180, + "nonWifiThresholdInPercentage": 50, + "nonWifiThresholdTimeInSeconds": 180, + "obssHopMode": "NON_WIFI" + }, + "bestApSettings": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 20, + "minLoadFactor": 50 + } }, "is5GHz": { "model_type": "RfElementConfiguration", @@ -35,13 +78,56 @@ "mimoMode": "twoBytwo", "maxNumClients": 100, "multicastRate": "auto", - "autoChannelSelection": "disabled", + "autoChannelSelection": false, "activeScanSettings": { "model_type": "ActiveScanSettings", "enabled": true, "scanFrequencySeconds": 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": false, + "value": 32 + }, + "bestApEnabled": null, + "neighbouringListApConfig": { + "model_type": "NeighbouringAPListConfiguration", + "minSignal": -85, + "maxAps": 25 + }, + "minAutoCellSize": -80, + "perimeterDetectionEnabled": true, + "channelHopSettings": { + "model_type": "ChannelHopSettings", + "noiseFloorThresholdInDB": -75, + "noiseFloorThresholdTimeInSeconds": 180, + "nonWifiThresholdInPercentage": 50, + "nonWifiThresholdTimeInSeconds": 180, + "obssHopMode": "NON_WIFI" + }, + "bestApSettings": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 20, + "minLoadFactor": 50 + } }, "is5GHzL": { "model_type": "RfElementConfiguration", @@ -52,13 +138,56 @@ "mimoMode": "twoBytwo", "maxNumClients": 100, "multicastRate": "auto", - "autoChannelSelection": "disabled", + "autoChannelSelection": false, "activeScanSettings": { "model_type": "ActiveScanSettings", "enabled": true, "scanFrequencySeconds": 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": false, + "value": 32 + }, + "bestApEnabled": null, + "neighbouringListApConfig": { + "model_type": "NeighbouringAPListConfiguration", + "minSignal": -85, + "maxAps": 25 + }, + "minAutoCellSize": -80, + "perimeterDetectionEnabled": true, + "channelHopSettings": { + "model_type": "ChannelHopSettings", + "noiseFloorThresholdInDB": -75, + "noiseFloorThresholdTimeInSeconds": 180, + "nonWifiThresholdInPercentage": 50, + "nonWifiThresholdTimeInSeconds": 180, + "obssHopMode": "NON_WIFI" + }, + "bestApSettings": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } }, "is5GHzU": { "model_type": "RfElementConfiguration", @@ -69,13 +198,56 @@ "mimoMode": "twoBytwo", "maxNumClients": 100, "multicastRate": "auto", - "autoChannelSelection": "disabled", + "autoChannelSelection": false, "activeScanSettings": { "model_type": "ActiveScanSettings", "enabled": true, "scanFrequencySeconds": 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": false, + "value": 32 + }, + "bestApEnabled": null, + "neighbouringListApConfig": { + "model_type": "NeighbouringAPListConfiguration", + "minSignal": -85, + "maxAps": 25 + }, + "minAutoCellSize": -80, + "perimeterDetectionEnabled": true, + "channelHopSettings": { + "model_type": "ChannelHopSettings", + "noiseFloorThresholdInDB": -75, + "noiseFloorThresholdTimeInSeconds": 180, + "nonWifiThresholdInPercentage": 50, + "nonWifiThresholdTimeInSeconds": 180, + "obssHopMode": "NON_WIFI" + }, + "bestApSettings": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } } }, "createdTimestamp": 1591653239983, diff --git a/opensync-gateway-static-docker/src/main/docker-opensync-gateway-and-mqtt/app/run.sh b/opensync-gateway-static-docker/src/main/docker-opensync-gateway-and-mqtt/app/run.sh index 5d5163e..d372f6d 100755 --- a/opensync-gateway-static-docker/src/main/docker-opensync-gateway-and-mqtt/app/run.sh +++ b/opensync-gateway-static-docker/src/main/docker-opensync-gateway-and-mqtt/app/run.sh @@ -34,6 +34,7 @@ OVSDB_SERVER_TRUSTSTORE_PASSWORD="${OVSDB_SERVER_TRUSTSTORE_PASSWORD:=mypassword OVSDB_EQUIPMENT_CONFIG_FILE="${OVSDB_EQUIPMENT_CONFIG_FILE:=/app/opensync/EquipmentExample.json}" OVSDB_APPROFILE_CONFIG_FILE="${OVSDB_AP_PROFILE_CONFIG_FILE:=/app/opensync/ProfileAPExample.json}" OVSDB_METRICSPROFILE_CONFIG_FILE="${OVSDB_METRICSPROFILE_CONFIG_FILE:=/app/opensync/ProfileMetrics.json}" +OVSDB_RFPROFILE_CONFIG_FILE="${OVSDB_RF_PROFILE_CONFIG_FILE:=/app/opensync/ProfileRf.json}" OVSDB_SSIDPROFILE_CONFIG_FILE="${OVSDB_SSIDPROFILE_CONFIG_FILE:=/app/opensync/ProfileSsid.json}" OVSDB_LOCATION_CONFIG_FILE="${OVSDB_LOCATION_CONFIG_FILE:=/app/opensync/LocationBuildingExample.json}" OVSDB_RADIUSPROFILE_CONFIG_FILE="${OVSDB_RADIUSPROFILE_CONFIG_FILE:=/app/opensync/ProfileRadius.json}" @@ -131,6 +132,7 @@ OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.keyStorePassword=$OVSDB_SERVER_KEYSTO OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.metricsProfileFileName=$OVSDB_METRICSPROFILE_CONFIG_FILE" +OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.rfProfileFileName=$OVSDB_RFPROFILE_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE" diff --git a/opensync-gateway-static-docker/src/main/docker/app/run.sh b/opensync-gateway-static-docker/src/main/docker/app/run.sh index 076986c..be9c945 100755 --- a/opensync-gateway-static-docker/src/main/docker/app/run.sh +++ b/opensync-gateway-static-docker/src/main/docker/app/run.sh @@ -22,6 +22,7 @@ OVSDB_PROPS+=" -Dtip.wlan.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12" OVSDB_PROPS+=" -Dtip.wlan.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE" OVSDB_PROPS+=" -Dtip.wlan.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dtip.wlan.ovsdb.metricsProfileFileName=$OVSDB_METRICSPROFILE_CONFIG_FILE" +OVSDB_PROPS+=" -Dtip.wlan.ovsdb.rfProfileFileName=$OVSDB_RFPROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dtip.wlan.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dtip.wlan.ovsdb.captiveProfileFileName=$OVSDB_CAPTIVEPROFILE_CONFIG_FILE" 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 new file mode 100644 index 0000000..437c898 --- /dev/null +++ b/opensync-gateway-static-process/src/main/resources/app/opensync/ProfileRf.json @@ -0,0 +1,258 @@ +{ + "model_type": "Profile", + "id": 9, + "customerId": 2, + "profileType": "rf", + "name": "DefaultRf", + "details": { + "model_type": "RfConfiguration", + "rf": "Default-RF", + "profileType": "rf", + "rfConfigMap": { + "is2dot4GHz": { + "model_type": "RfElementConfiguration", + "beaconInterval": 100, + "forceScanDuringVoice": "disabled", + "rtsCtsThreshold": 65535, + "channelBandwidth": "is20MHz", + "mimoMode": "twoBytwo", + "maxNumClients": 100, + "multicastRate": "auto", + "autoChannelSelection": false, + "activeScanSettings": { + "model_type": "ActiveScanSettings", + "enabled": true, + "scanFrequencySeconds": 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": false, + "value": 32 + }, + "bestApEnabled": null, + "neighbouringListApConfig": { + "model_type": "NeighbouringAPListConfiguration", + "minSignal": -85, + "maxAps": 25 + }, + "minAutoCellSize": -80, + "perimeterDetectionEnabled": true, + "channelHopSettings": { + "model_type": "ChannelHopSettings", + "noiseFloorThresholdInDB": -75, + "noiseFloorThresholdTimeInSeconds": 180, + "nonWifiThresholdInPercentage": 50, + "nonWifiThresholdTimeInSeconds": 180, + "obssHopMode": "NON_WIFI" + }, + "bestApSettings": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 20, + "minLoadFactor": 50 + } + }, + "is5GHz": { + "model_type": "RfElementConfiguration", + "beaconInterval": 100, + "forceScanDuringVoice": "disabled", + "rtsCtsThreshold": 65535, + "channelBandwidth": "is80MHz", + "mimoMode": "twoBytwo", + "maxNumClients": 100, + "multicastRate": "auto", + "autoChannelSelection": false, + "activeScanSettings": { + "model_type": "ActiveScanSettings", + "enabled": true, + "scanFrequencySeconds": 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": false, + "value": 32 + }, + "bestApEnabled": null, + "neighbouringListApConfig": { + "model_type": "NeighbouringAPListConfiguration", + "minSignal": -85, + "maxAps": 25 + }, + "minAutoCellSize": -80, + "perimeterDetectionEnabled": true, + "channelHopSettings": { + "model_type": "ChannelHopSettings", + "noiseFloorThresholdInDB": -75, + "noiseFloorThresholdTimeInSeconds": 180, + "nonWifiThresholdInPercentage": 50, + "nonWifiThresholdTimeInSeconds": 180, + "obssHopMode": "NON_WIFI" + }, + "bestApSettings": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 20, + "minLoadFactor": 50 + } + }, + "is5GHzL": { + "model_type": "RfElementConfiguration", + "beaconInterval": 100, + "forceScanDuringVoice": "disabled", + "rtsCtsThreshold": 65535, + "channelBandwidth": "is80MHz", + "mimoMode": "twoBytwo", + "maxNumClients": 100, + "multicastRate": "auto", + "autoChannelSelection": false, + "activeScanSettings": { + "model_type": "ActiveScanSettings", + "enabled": true, + "scanFrequencySeconds": 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": false, + "value": 32 + }, + "bestApEnabled": null, + "neighbouringListApConfig": { + "model_type": "NeighbouringAPListConfiguration", + "minSignal": -85, + "maxAps": 25 + }, + "minAutoCellSize": -80, + "perimeterDetectionEnabled": true, + "channelHopSettings": { + "model_type": "ChannelHopSettings", + "noiseFloorThresholdInDB": -75, + "noiseFloorThresholdTimeInSeconds": 180, + "nonWifiThresholdInPercentage": 50, + "nonWifiThresholdTimeInSeconds": 180, + "obssHopMode": "NON_WIFI" + }, + "bestApSettings": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } + }, + "is5GHzU": { + "model_type": "RfElementConfiguration", + "beaconInterval": 100, + "forceScanDuringVoice": "disabled", + "rtsCtsThreshold": 65535, + "channelBandwidth": "is80MHz", + "mimoMode": "twoBytwo", + "maxNumClients": 100, + "multicastRate": "auto", + "autoChannelSelection": false, + "activeScanSettings": { + "model_type": "ActiveScanSettings", + "enabled": true, + "scanFrequencySeconds": 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": false, + "value": 32 + }, + "bestApEnabled": null, + "neighbouringListApConfig": { + "model_type": "NeighbouringAPListConfiguration", + "minSignal": -85, + "maxAps": 25 + }, + "minAutoCellSize": -80, + "perimeterDetectionEnabled": true, + "channelHopSettings": { + "model_type": "ChannelHopSettings", + "noiseFloorThresholdInDB": -75, + "noiseFloorThresholdTimeInSeconds": 180, + "nonWifiThresholdInPercentage": 50, + "nonWifiThresholdTimeInSeconds": 180, + "obssHopMode": "NON_WIFI" + }, + "bestApSettings": { + "model_type": "RadioBestApSettings", + "mlComputed": true, + "dropInSnrPercentage": 30, + "minLoadFactor": 40 + } + } + }, + "createdTimestamp": 1591653239983, + "lastModifiedTimestamp": 1591653239983, + "childProfileIds": [ + ] + } +} diff --git a/opensync-gateway-static-process/src/main/resources/launchers/OpenSyncProcess (local, KDC certs) static.launch b/opensync-gateway-static-process/src/main/resources/launchers/OpenSyncProcess (local, KDC certs) static.launch index 5483343..dc9b246 100644 --- a/opensync-gateway-static-process/src/main/resources/launchers/OpenSyncProcess (local, KDC certs) static.launch +++ b/opensync-gateway-static-process/src/main/resources/launchers/OpenSyncProcess (local, KDC certs) static.launch @@ -14,5 +14,5 @@ - + 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 63a18cf..86da608 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 @@ -76,6 +76,8 @@ import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguratio import com.telecominfraproject.wlan.profile.radius.models.RadiusProfile; import com.telecominfraproject.wlan.profile.radius.models.RadiusServer; import com.telecominfraproject.wlan.profile.radius.models.RadiusServiceRegion; +import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration; +import com.telecominfraproject.wlan.profile.rf.models.RfElementConfiguration; import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration; import com.telecominfraproject.wlan.servicemetric.models.ServiceMetricDataType; import com.vmware.ovsdb.exception.OvsdbClientException; @@ -1796,13 +1798,16 @@ public class OvsdbDao { ApElementConfiguration apElementConfiguration = (ApElementConfiguration) opensyncAPConfig.getCustomerEquipment() .getDetails(); + RfConfiguration rfConfig = (RfConfiguration) opensyncAPConfig.getRfProfile().getDetails(); for (RadioType radioType : apElementConfiguration.getRadioMap().keySet()) { Map hwConfig = new HashMap<>(); ElementRadioConfiguration elementRadioConfig = apElementConfiguration.getRadioMap().get(radioType); + RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(radioType); int channel = elementRadioConfig.getChannelNumber(); ChannelBandwidth bandwidth = elementRadioConfig.getChannelBandwidth(); + // ChannelBandwidth bandwidth = rfElementConfig.getChannelBandwidth(); String ht_mode = null; switch (bandwidth) { case is20MHz: @@ -1827,6 +1832,7 @@ public class OvsdbDao { RadioConfiguration radioConfig = apElementConfiguration.getAdvancedRadioMap().get(radioType); int beaconInterval = radioConfig.getBeaconInterval(); + // int beaconInterval = rfElementConfig.getBeaconInterval(); boolean enabled = radioConfig.getRadioAdminState().equals(StateSetting.enabled); int txPower = 0; @@ -2759,6 +2765,7 @@ public class OvsdbDao { SsidConfiguration ssidConfig = (SsidConfiguration) ssidProfile.getDetails(); ApElementConfiguration apElementConfig = (ApElementConfiguration) opensyncApConfig.getCustomerEquipment() .getDetails(); + RfConfiguration rfConfig = (RfConfiguration) opensyncApConfig.getRfProfile().getDetails(); for (RadioType radioType : ssidConfig.getAppliedRadios()) { // Still put profiles on disabled radios for now. @@ -2859,8 +2866,10 @@ public class OvsdbDao { if (radioConfiguration == null) { continue; // don't have a radio of this kind in the map } + RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(radioType); int dtimPeriod = radioConfiguration.getDtimPeriod(); int rtsCtsThreshold = radioConfiguration.getRtsCtsThreshold(); + // int rtsCtsThreshold = rfElementConfig.getRtsCtsThreshold(); int fragThresholdBytes = radioConfiguration.getFragmentationThresholdBytes(); RadioMode radioMode = radioConfiguration.getRadioMode(); String minHwMode = "11n"; // min_hw_mode is 11ac, wifi 5, we can