Compare commits

..

32 Commits

Author SHA1 Message Date
Mike Hansen
b8cd98017d Merge branch 'master' of github.com:Telecominfraproject/wlan-cloud-opensync-controller 2020-12-04 15:16:57 -05:00
Mike Hansen
0c89e6c624 WIFI-1062: Add provisioning capability to OvsdbDao when configuring Ssids 2020-12-04 15:16:38 -05:00
Rahul Sharma
becf59dc0f Merge pull request #18 from Telecominfraproject/WIFI-1151
WIFI-1151: Update Opensync GW to align with the new RealSipCall data …
2020-12-04 12:09:41 -05:00
Rahul Sharma
feff3d6530 Incorporating comments from Mike 2020-12-04 11:01:27 -05:00
Rahul Sharma
2e7a090722 WIFI-1151: Update Opensync GW to align with the new RealSipCall data model
and add new atributes coming in the Sip call.
2020-12-03 20:42:54 -05:00
Lynn Shi
6ece024535 WIFI-1150 Network: The AP list table should also show the Connected/Disconnected status of every AP 2020-12-03 15:05:00 -05:00
Mike Hansen
4837b0e026 mv mapping and constants utilities under the util package 2020-12-02 10:44:24 -05:00
Mike Hansen
0eca082a4d Add null dereference check in handling of ovsdb monitor update for WifiAssociatedClients, add try/catch on Monitor update methods to ensure monitor continues running even if there are issues with ovsdb table updates 2020-12-02 10:28:53 -05:00
Mike Hansen
db4672a9a2 additional validation and error handling for equipment discovery and ap configuration 2020-12-01 20:20:22 -05:00
Mike Hansen
9e58a9d7b7 code cleanup re static analysis checks 2020-12-01 17:59:20 -05:00
Mike Hansen
f083c3488c WIFI-1110: vifS is not applying as wm is crashing due to garbage in /etc/wireless/config -- removing short-term caching of Equipment from OpensyncGatewayExternalCloud 2020-12-01 16:44:46 -05:00
Mike Hansen
b28655a5bd WIFI-1110: vifS is not applying as wm is crashing due to garbage in /etc/wireless/config
WIFI-1139: OpensyncGateway Process ChannelSwitchEvent from EventReport
2020-12-01 14:52:49 -05:00
Mike Hansen
124b6054b5 WIFI-1110: vifS is not applying as wm is crashing due to garbage in /etc/wireless/config 2020-12-01 10:36:28 -05:00
Mike Hansen
d79917d20f WIFI-1132: Cloud osgw static changes 2020-11-30 18:32:01 -05:00
Mike Hansen
c0bb71aed2 WIFI-1130: Cloud osgw dao changes
WIFI-1131: Cloud osgw junit
2020-11-30 18:14:58 -05:00
Mike Hansen
5e32798159 WIFI-1110: vifS is not applying as wm is crashing due to garbage in /etc/wireless/config
Further changes to simplify Cloud/OSGW/AP interaction

Remove hieuristic config changes handling, goes back to reset of all
SSIDs, etc. This will need support from Cloud/UI side if it is to be
implemented in the future as the OSGW cannot effectively ascertain
updates vs inserts without config change content information.
Validate SSID UUID gets added to Wifi_Radio_Config, if not, throw RTE
Only process changes for PROTOCOL_STATUS and FIRMWARE_STATUS when they
differ from the current state.
2020-11-30 15:00:58 -05:00
christieunitt-cu
01fa2d3977 Merge pull request #16 from Telecominfraproject/WIFI-1119-location-activity
Clean up LocationActivityDetails
2020-11-25 14:42:48 -05:00
Christie Unitt
f0daa18906 Clean up LocationActivityDetails 2020-11-24 20:35:43 -05:00
Mike Hansen
d6d454bfc1 WIFI-1110: vifS is not applying as wm is crashing due to garbage in /etc/wireless/config --> per AP request, changing order for processing config change and ap connect to cloud, cleanup/remove RRM Config prior to removing SSIDs 2020-11-24 17:01:46 -05:00
Mike Hansen
f30b1ca02e WIFI-551: Status API reports radiusStatus as null 2020-11-24 12:22:47 -05:00
Mike Hansen
84f3d4ea5d Restore Dao function to write Uuid for created VIFs into the Wifi_Radio_Config db table, this was removed initially per a request from AP team, but has been re-evaluated to be necessary. Increase log level to info for MqttMessageProcessor to facilitate stats/metrics analysis 2020-11-20 14:51:22 -05:00
Mike Hansen
a5fb061359 WIFI-1095: SDK BE: Support Radius Accounting support -- use value '0' for radius_acct_interval when no value is configured 2020-11-20 10:25:59 -05:00
Mike Hansen
d8ff2f1a31 WIFI-1096: Configure multicast and beacon rate in Wifi_RRM_Config 2020-11-19 17:11:02 -05:00
Mike Hansen
1d1b5f1c42 Radius Accounting Interval set on AP when using EAP or Radius security 2020-11-19 14:52:38 -05:00
Mike Hansen
74587349fe WIFI-1075: Cloud Backend update profile models 2020-11-18 15:56:08 -05:00
Mike Hansen
b463d6720a Merge pull request #14 from Telecominfraproject/feature/NETEXP-485
Feature/NETEXP 485
2020-11-18 11:28:02 -05:00
Mike Hansen
036bd8ccc2 WIFI-1074: Make Profile Names Specific and Clear - updates to static config files for testing 2020-11-18 10:16:29 -05:00
Mike Hansen
eebdfba431 Maven dependencies clean-up -- cloud dependencies add 2020-11-18 08:22:52 -05:00
Mike Hansen
52a5a2ac72 Maven dependencies clean-up 2020-11-18 08:03:01 -05:00
Mike Hansen
44b3d5e526 WIFI-1084: Opensync Gateway occasionally creates new Ssid with existing if_name 2020-11-17 16:06:57 -05:00
Mike Hansen
f9ece26ccf WIFI-1075: Cloud Backend update profile models 2020-11-17 10:39:43 -05:00
Mike Hansen
dc8e22a1b5 WIFI-1068: Cloud Backend: Extend or replace existing base_model CountryCode 2020-11-16 14:24:45 -05:00
62 changed files with 7336 additions and 6585 deletions

View File

@@ -13,21 +13,17 @@
<name>opensync-ext-cloud</name> <name>opensync-ext-cloud</name>
<description>Configuration interface that provides config from the cloud services.</description> <description>Configuration interface that provides config from the cloud services.</description>
<dependencies> <dependencies>
<dependency> <!-- <dependency> -->
<groupId>com.telecominfraproject.wlan</groupId> <!-- <groupId>com.telecominfraproject.wlan</groupId> -->
<artifactId>opensync-ext-interface</artifactId> <!-- <artifactId>opensync-ext-interface</artifactId> -->
<version>${tip-wlan-cloud.release.version}</version> <!-- <version>${tip-wlan-cloud.release.version}</version> -->
</dependency> <!-- </dependency> -->
<dependency> <dependency>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>opensync-gateway</artifactId> <artifactId>opensync-gateway</artifactId>
<version>${tip-wlan-cloud.release.version}</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency>
<artifactId>base-container</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency> <dependency>
<artifactId>base-client</artifactId> <artifactId>base-client</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>

View File

@@ -11,14 +11,10 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.Cache;
import org.springframework.cache.CacheManager;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
@@ -70,8 +66,8 @@ import com.telecominfraproject.wlan.opensync.external.integration.models.Opensyn
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAWLANNode; import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAWLANNode;
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients; import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients;
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDeviceType; import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDeviceType;
import com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities.OvsdbStringConstants; import com.telecominfraproject.wlan.opensync.util.OvsdbStringConstants;
import com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities.OvsdbToWlanCloudTypeMappingUtility; import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
import com.telecominfraproject.wlan.profile.ProfileServiceInterface; import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
import com.telecominfraproject.wlan.profile.models.Profile; import com.telecominfraproject.wlan.profile.models.Profile;
import com.telecominfraproject.wlan.profile.models.ProfileContainer; import com.telecominfraproject.wlan.profile.models.ProfileContainer;
@@ -158,32 +154,10 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_wan_name:wan}") @org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_wan_name:wan}")
public String defaultWanInterfaceName; public String defaultWanInterfaceName;
@Autowired
private CacheManager cacheManagerShortLived;
private Cache cloudEquipmentRecordCache;
@PostConstruct
private void postCreate() {
LOG.info("Using Cloud integration");
cloudEquipmentRecordCache = cacheManagerShortLived.getCache("equipment_record_cache");
}
public Equipment getCustomerEquipment(String apId) {
Equipment ce = null;
try {
ce = cloudEquipmentRecordCache.get(apId, () -> equipmentServiceInterface.getByInventoryIdOrNull(apId));
} catch (Exception e) {
LOG.error("Could not get customer equipment for {}", apId, e);
}
return ce;
}
@Override @Override
public void apConnected(String apId, ConnectNodeInfo connectNodeInfo) { public void apConnected(String apId, ConnectNodeInfo connectNodeInfo) {
Equipment ce = getCustomerEquipment(apId); Equipment ce = equipmentServiceInterface.getByInventoryIdOrNull(apId);
try { try {
if (ce == null) { if (ce == null) {
@@ -239,6 +213,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
ce.setDetails(ApElementConfiguration.createWithDefaults()); ce.setDetails(ApElementConfiguration.createWithDefaults());
ce.setCustomerId(autoProvisionedCustomerId); ce.setCustomerId(autoProvisionedCustomerId);
ce.setName(apId); ce.setName(apId);
ce = equipmentServiceInterface.create(ce);
ApElementConfiguration apElementConfig = (ApElementConfiguration) ce.getDetails(); ApElementConfiguration apElementConfig = (ApElementConfiguration) ce.getDetails();
apElementConfig.setDeviceName(ce.getName()); apElementConfig.setDeviceName(ce.getName());
@@ -298,11 +273,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
ce.setProfileId(profileId); ce.setProfileId(profileId);
ce = equipmentServiceInterface.create(ce); ce = equipmentServiceInterface.update(ce);
// update the cache right away, no need to wait until the
// entry expires
cloudEquipmentRecordCache.put(ce.getInventoryId(), ce);
} else { } else {
// equipment already exists // equipment already exists
@@ -324,9 +295,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
ce.setBaseMacAddress(reportedMacAddress); ce.setBaseMacAddress(reportedMacAddress);
ce = equipmentServiceInterface.update(ce); ce = equipmentServiceInterface.update(ce);
// update the cache right away, no need to wait
// until the entry expires
cloudEquipmentRecordCache.put(ce.getInventoryId(), ce);
} }
} }
@@ -490,7 +458,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
protocolStatusData.setCloudCfgDataVersion(42L); protocolStatusData.setCloudCfgDataVersion(42L);
protocolStatusData.setReportedCfgDataVersion(42L); protocolStatusData.setReportedCfgDataVersion(42L);
protocolStatusData.setCountryCode("CA"); protocolStatusData.setCountryCode("CA");
protocolStatusData.setReportedCC(CountryCode.ca); protocolStatusData.setReportedCC(CountryCode.CA);
protocolStatusData.setReportedHwVersion(connectNodeInfo.platformVersion); protocolStatusData.setReportedHwVersion(connectNodeInfo.platformVersion);
if (connectNodeInfo.versionMatrix.containsKey(OvsdbStringConstants.FW_IMAGE_ACTIVE_KEY)) { if (connectNodeInfo.versionMatrix.containsKey(OvsdbStringConstants.FW_IMAGE_ACTIVE_KEY)) {
protocolStatusData.setReportedSwVersion( protocolStatusData.setReportedSwVersion(
@@ -572,6 +540,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
networkAdminStatusRec = new Status(); networkAdminStatusRec = new Status();
networkAdminStatusRec.setCustomerId(ce.getCustomerId()); networkAdminStatusRec.setCustomerId(ce.getCustomerId());
networkAdminStatusRec.setEquipmentId(ce.getId()); networkAdminStatusRec.setEquipmentId(ce.getId());
networkAdminStatusRec.setStatusDataType(StatusDataType.NETWORK_ADMIN);
NetworkAdminStatusData statusData = new NetworkAdminStatusData(); NetworkAdminStatusData statusData = new NetworkAdminStatusData();
networkAdminStatusRec.setDetails(statusData); networkAdminStatusRec.setDetails(statusData);
} }
@@ -580,13 +549,15 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
netAdminStatusData.setDhcpStatus(StatusCode.normal); netAdminStatusData.setDhcpStatus(StatusCode.normal);
netAdminStatusData.setCloudLinkStatus(StatusCode.normal); netAdminStatusData.setCloudLinkStatus(StatusCode.normal);
netAdminStatusData.setDnsStatus(StatusCode.normal); netAdminStatusData.setDnsStatus(StatusCode.normal);
netAdminStatusData.setRadiusStatus(StatusCode.normal);
networkAdminStatusRec.setDetails(netAdminStatusData); networkAdminStatusRec.setDetails(netAdminStatusData);
networkAdminStatusRec = statusServiceInterface.update(networkAdminStatusRec); networkAdminStatusRec = statusServiceInterface.update(networkAdminStatusRec);
} catch (Exception e) { } catch (Exception e) {
LOG.debug("Exception in updateApStatus", e); LOG.error("Exception in updateApStatus", e);
throw e;
} }
} }
@@ -760,14 +731,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
OvsdbSession ovsdbSession = ovsdbSessionMapInterface.getSession(apId); OvsdbSession ovsdbSession = ovsdbSessionMapInterface.getSession(apId);
if (ovsdbSession != null) { if (ovsdbSession != null) {
// if (ovsdbSession.getCustomerId() > 0 &&
// ovsdbSession.getEquipmentId() > 0L) {
// List<Status> statusForDisconnectedAp =
// statusServiceInterface.delete(ovsdbSession.getCustomerId(),
// ovsdbSession.getEquipmentId());
// LOG.info("Deleted status records {} for AP {}",
// statusForDisconnectedAp, apId);
// }
if (ovsdbSession.getRoutingId() > 0L) { if (ovsdbSession.getRoutingId() > 0L) {
try { try {
routingServiceInterface.delete(ovsdbSession.getRoutingId()); routingServiceInterface.delete(ovsdbSession.getRoutingId());
@@ -779,12 +742,39 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
} else { } else {
LOG.warn("Cannot find ap {} in inventory", apId); LOG.warn("Cannot find ap {} in inventory", apId);
} }
updateApDisconnectedStatus(apId);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Exception when registering ap routing {}", apId, e); LOG.error("Exception when registering ap routing {}", apId, e);
} }
} }
private void updateApDisconnectedStatus(String apId) {
try {
Equipment ce = equipmentServiceInterface.getByInventoryIdOrNull(apId);
if (ce == null) {
LOG.debug("updateDisconnectedApStatus::Cannot get Equipment for AP {}", apId);
return;
}
Status statusRecord = statusServiceInterface.getOrNull(ce.getCustomerId(), ce.getId(),
StatusDataType.EQUIPMENT_ADMIN);
if (statusRecord == null) {
LOG.debug("updateApDisconnectedStatus::Cannot get EQUIPMENT_ADMIN status for CustomerId {} or EquipmentId {} for AP {}",
ce.getCustomerId(), ce.getId(), apId);
return;
}
((EquipmentAdminStatusData) statusRecord.getDetails()).setStatusCode(StatusCode.error);
// Update the equipment admin status
statusRecord = statusServiceInterface.update(statusRecord);
} catch (Exception e) {
LOG.error("Exception in updateApDisconnectedStatus", e);
throw e;
}
}
@Override @Override
public OpensyncAPConfig getApConfig(String apId) { public OpensyncAPConfig getApConfig(String apId) {
LOG.info("Retrieving config for AP {} ", apId); LOG.info("Retrieving config for AP {} ", apId);
@@ -801,7 +791,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
if ((customer != null) && (customer.getDetails() != null) if ((customer != null) && (customer.getDetails() != null)
&& (customer.getDetails().getAutoProvisioning() != null) && (customer.getDetails().getAutoProvisioning() != null)
&& customer.getDetails().getAutoProvisioning().isEnabled()) { && customer.getDetails().getAutoProvisioning().isEnabled()) {
Equipment equipmentConfig = getCustomerEquipment(apId); Equipment equipmentConfig = equipmentServiceInterface.getByInventoryIdOrNull(apId);
if (equipmentConfig == null) { if (equipmentConfig == null) {
throw new IllegalStateException("Cannot retrieve configuration for " + apId); throw new IllegalStateException("Cannot retrieve configuration for " + apId);
@@ -825,8 +815,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
ret.setSsidProfile( ret.setSsidProfile(
profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.ssid)); profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.ssid));
ret.setMetricsProfiles( ret.setMetricsProfiles(profileContainer.getChildrenOfType(equipmentConfig.getProfileId(),
profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.metrics)); ProfileType.service_metrics_collection_config));
Set<Profile> radiusSet = new HashSet<>(); Set<Profile> radiusSet = new HashSet<>();
Set<Long> captiveProfileIds = new HashSet<>(); Set<Long> captiveProfileIds = new HashSet<>();
@@ -842,7 +832,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
for (Profile ssidProfile : ret.getSsidProfile()) { for (Profile ssidProfile : ret.getSsidProfile()) {
hotspot20ProfileSet hotspot20ProfileSet
.addAll(profileContainer.getChildrenOfType(ssidProfile.getId(), ProfileType.hotspot_2pt0)); .addAll(profileContainer.getChildrenOfType(ssidProfile.getId(), ProfileType.passpoint));
radiusSet radiusSet
.addAll(profileContainer.getChildrenOfType(ret.getApProfile().getId(), ProfileType.radius)); .addAll(profileContainer.getChildrenOfType(ret.getApProfile().getId(), ProfileType.radius));
@@ -861,12 +851,12 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
if (hotspot20ProfileSet.size() > 0) { if (hotspot20ProfileSet.size() > 0) {
for (Profile hotspot20Profile : hotspot20ProfileSet) { for (Profile hotspot20Profile : hotspot20ProfileSet) {
hotspot20OperatorSet.addAll( hotspot20OperatorSet.addAll(profileContainer.getChildrenOfType(hotspot20Profile.getId(),
profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.operator)); ProfileType.passpoint_operator));
hotspot20VenueSet.addAll( hotspot20VenueSet.addAll(profileContainer.getChildrenOfType(hotspot20Profile.getId(),
profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.venue)); ProfileType.passpoint_venue));
hotspot20ProviderSet.addAll( hotspot20ProviderSet.addAll(profileContainer.getChildrenOfType(hotspot20Profile.getId(),
profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.id_provider)); ProfileType.passpoint_osu_id_provider));
} }
hotspotConfig.setHotspot20OperatorSet(hotspot20OperatorSet); hotspotConfig.setHotspot20OperatorSet(hotspot20OperatorSet);
hotspotConfig.setHotspot20ProfileSet(hotspot20ProfileSet); hotspotConfig.setHotspot20ProfileSet(hotspot20ProfileSet);
@@ -1131,9 +1121,10 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
if (protocolStatus != null) { if (protocolStatus != null) {
protocolStatusData = (EquipmentProtocolStatusData) protocolStatus.getDetails(); protocolStatusData = (EquipmentProtocolStatusData) protocolStatus.getDetails();
if (!protocolStatusData.getReportedCC() if (!protocolStatusData.getReportedCC().equals(CountryCode.getByName((radioState.getCountry())))) {
.equals(CountryCode.valueOf(radioState.getCountry().toLowerCase()))) {
protocolStatusData.setReportedCC(CountryCode.valueOf(radioState.getCountry().toLowerCase())); LOG.debug("Protocol Status reportedCC {} radioStatus.getCountry {} radioStatus CountryCode fromName {}", protocolStatusData.getReportedCC(), radioState.getCountry(), CountryCode.getByName((radioState.getCountry())));
protocolStatusData.setReportedCC(CountryCode.getByName((radioState. getCountry())));
protocolStatus.setDetails(protocolStatusData); protocolStatus.setDetails(protocolStatusData);
} else { } else {
@@ -1450,7 +1441,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
OvsdbSession ovsdbSession = ovsdbSessionMapInterface.getSession(apId); OvsdbSession ovsdbSession = ovsdbSessionMapInterface.getSession(apId);
if (ovsdbSession == null) { if (ovsdbSession == null) {
LOG.debug("awlanNodeDbTableUpdate::Cannot get Session for AP {}", apId); LOG.info("awlanNodeDbTableUpdate::Cannot get Session for AP {}", apId);
return; return;
} }
@@ -1458,22 +1449,27 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
long equipmentId = ovsdbSession.getEquipmentId(); long equipmentId = ovsdbSession.getEquipmentId();
if ((customerId < 0) || (equipmentId < 0)) { if ((customerId < 0) || (equipmentId < 0)) {
LOG.debug("awlanNodeDbTableUpdate::Cannot get valid CustomerId {} or EquipmentId {} for AP {}", customerId, LOG.info("awlanNodeDbTableUpdate::Cannot get valid CustomerId {} or EquipmentId {} for AP {}", customerId,
equipmentId, apId); equipmentId, apId);
return; return;
} }
Equipment ce = equipmentServiceInterface.getByInventoryIdOrNull(apId);
if (ce == null) {
LOG.info("awlanNodeDbTableUpdate::Cannot find AP {}", apId);
return;
}
int upgradeStatusFromAp = opensyncAPState.getUpgradeStatus(); int upgradeStatusFromAp = opensyncAPState.getUpgradeStatus();
EquipmentUpgradeState fwUpgradeState = null; EquipmentUpgradeState fwUpgradeState = null;
FailureReason fwUpgradeFailureReason = null; FailureReason fwUpgradeFailureReason = null;
if (opensyncAPState.getFirmwareUrl().equals(OvsdbStringConstants.OVSDB_AWLAN_AP_FACTORY_RESET) if (opensyncAPState.getFirmwareUrl().equals(OvsdbStringConstants.OVSDB_AWLAN_AP_FACTORY_RESET)
|| opensyncAPState.getFirmwareUrl().equals(OvsdbStringConstants.OVSDB_AWLAN_AP_FACTORY_RESET) || opensyncAPState.getFirmwareUrl().equals(OvsdbStringConstants.OVSDB_AWLAN_AP_REBOOT)
|| opensyncAPState.getFirmwareUrl().equals(OvsdbStringConstants.OVSDB_AWLAN_AP_FACTORY_RESET) || opensyncAPState.getFirmwareUrl().equals(OvsdbStringConstants.OVSDB_AWLAN_AP_SWITCH_SOFTWARE_BANK)
|| opensyncAPState.getFirmwareUrl().equals("")) { || opensyncAPState.getFirmwareUrl().equals("")) {
fwUpgradeState = EquipmentUpgradeState.undefined; LOG.debug("Firmware Url {}, no fwUpgradeState", opensyncAPState.getFirmwareUrl());
} else { } else {
fwUpgradeState = OvsdbToWlanCloudTypeMappingUtility fwUpgradeState = OvsdbToWlanCloudTypeMappingUtility
.getCloudEquipmentUpgradeStateFromOpensyncUpgradeStatus(upgradeStatusFromAp); .getCloudEquipmentUpgradeStateFromOpensyncUpgradeStatus(upgradeStatusFromAp);
@@ -1484,19 +1480,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
} }
} }
Status protocolStatus = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.PROTOCOL);
if (protocolStatus == null) {
protocolStatus = new Status();
protocolStatus.setCustomerId(customerId);
protocolStatus.setEquipmentId(equipmentId);
protocolStatus.setStatusDataType(StatusDataType.PROTOCOL);
EquipmentProtocolStatusData protocolStatusData = new EquipmentProtocolStatusData();
protocolStatus.setDetails(protocolStatusData);
protocolStatus = statusServiceInterface.update(protocolStatus);
}
String reportedFwImageName = null; String reportedFwImageName = null;
String reportedAltFwImageName = null; String reportedAltFwImageName = null;
@@ -1513,63 +1496,86 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
reportedAltFwImageName = opensyncAPState.getVersionMatrix().get(OvsdbStringConstants.FW_IMAGE_NAME_KEY); reportedAltFwImageName = opensyncAPState.getVersionMatrix().get(OvsdbStringConstants.FW_IMAGE_NAME_KEY);
} }
EquipmentProtocolStatusData protocolStatusData = (EquipmentProtocolStatusData) protocolStatus.getDetails();
protocolStatusData.setReportedSku(opensyncAPState.getSkuNumber());
if (reportedFwImageName != null) {
protocolStatusData.setReportedSwVersion(reportedFwImageName);
}
protocolStatusData.setReportedSwAltVersion(reportedAltFwImageName);
protocolStatusData.setReportedHwVersion(opensyncAPState.getPlatformVersion());
protocolStatusData.setSystemName(opensyncAPState.getModel());
List<Status> updates = new ArrayList<>(); List<Status> updates = new ArrayList<>();
// only post update if there is a change Status protocolStatus = configureProtocolStatus(opensyncAPState, customerId, equipmentId, reportedFwImageName,
if (!((EquipmentProtocolStatusData) statusServiceInterface reportedAltFwImageName);
.getOrNull(customerId, equipmentId, StatusDataType.PROTOCOL).getDetails()).equals(protocolStatusData)) { if (protocolStatus != null) {
protocolStatus.setDetails(protocolStatusData);
updates.add(protocolStatus); updates.add(protocolStatus);
} }
Status firmwareStatus = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.FIRMWARE); Status firmwareStatus = configureFirmwareStatus(customerId, equipmentId, fwUpgradeState, fwUpgradeFailureReason,
if (firmwareStatus == null) { reportedFwImageName, reportedAltFwImageName);
firmwareStatus = new Status(); if (firmwareStatus != null) {
firmwareStatus.setCustomerId(customerId);
firmwareStatus.setEquipmentId(equipmentId);
firmwareStatus.setStatusDataType(StatusDataType.FIRMWARE);
firmwareStatus.setDetails(new EquipmentUpgradeStatusData());
firmwareStatus = statusServiceInterface.update(firmwareStatus);
}
Equipment ce = getCustomerEquipment(apId);
if (ce != null) {
ce.getDetails();
if (fwUpgradeState.equals(EquipmentUpgradeState.up_to_date)) {
LOG.info("Firmware load is up to date.");
EquipmentUpgradeStatusData firmwareStatusData = (EquipmentUpgradeStatusData) firmwareStatus
.getDetails();
if (reportedFwImageName != null) {
if (!firmwareStatusData.getActiveSwVersion().equals(reportedFwImageName)
|| !firmwareStatusData.getUpgradeState().equals(fwUpgradeState)
|| !firmwareStatusData.getAlternateSwVersion().equals(reportedAltFwImageName)) {
firmwareStatusData.setActiveSwVersion(reportedFwImageName);
firmwareStatusData.setAlternateSwVersion(reportedAltFwImageName);
firmwareStatusData.setUpgradeState(fwUpgradeState, fwUpgradeFailureReason);
firmwareStatus.setDetails(firmwareStatusData);
updates.add(firmwareStatus); updates.add(firmwareStatus);
} }
} if (!updates.isEmpty()) {// may be some updates from
// protocol
if (!updates.isEmpty()) { // may be some updates from protocol
// status // status
updates = statusServiceInterface.update(updates); updates = statusServiceInterface.update(updates);
} }
}
private Status configureProtocolStatus(OpensyncAWLANNode opensyncAPState, int customerId, long equipmentId,
String reportedSwImageName, String reportedAltSwImageName) {
Status protocolStatus = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.PROTOCOL);
if (protocolStatus != null) {
EquipmentProtocolStatusData protocolStatusData = ((EquipmentProtocolStatusData) protocolStatus.getDetails());
if (protocolStatusData.getReportedSku() != null && protocolStatusData.getReportedSku().equals(opensyncAPState.getSkuNumber())
&& protocolStatusData.getReportedSwVersion() != null && protocolStatusData.getReportedSwVersion().equals(reportedSwImageName)
&& protocolStatusData.getReportedSwAltVersion() != null && protocolStatusData.getReportedSwAltVersion().equals(reportedAltSwImageName)
&& protocolStatusData.getReportedHwVersion() != null && protocolStatusData.getReportedHwVersion().equals(opensyncAPState.getPlatformVersion())
&& protocolStatusData.getSystemName() != null && protocolStatusData.getSystemName().equals(opensyncAPState.getModel())) {
// no changes
return null;
}
protocolStatusData.setReportedSku(opensyncAPState.getSkuNumber());
if (reportedSwImageName != null) {
protocolStatusData.setReportedSwVersion(reportedSwImageName);
} else {
protocolStatusData.setReportedSwVersion("Unknown");
}
if (reportedAltSwImageName != null) {
protocolStatusData.setReportedSwAltVersion(reportedAltSwImageName);
} else {
protocolStatusData.setReportedSwAltVersion("Unknown");
}
protocolStatusData
.setReportedHwVersion(opensyncAPState.getPlatformVersion());
protocolStatusData.setSystemName(opensyncAPState.getModel());
}
return protocolStatus;
}
private Status configureFirmwareStatus(int customerId, long equipmentId,EquipmentUpgradeState fwUpgradeState,
FailureReason fwUpgradeFailureReason, String reportedFwImageName, String reportedAltFwImageName) {
Status firmwareStatus = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.FIRMWARE);
if (firmwareStatus != null) {
EquipmentUpgradeStatusData upgradeStatusData = (EquipmentUpgradeStatusData)firmwareStatus.getDetails();
if (upgradeStatusData.getActiveSwVersion() != null && upgradeStatusData.getActiveSwVersion().equals(reportedFwImageName) && upgradeStatusData.getAlternateSwVersion() != null &&upgradeStatusData.getAlternateSwVersion().equals(reportedAltFwImageName) && upgradeStatusData.getUpgradeState() != null && upgradeStatusData.getUpgradeState().equals(fwUpgradeState)) {
return null; // no changes
}
if (reportedFwImageName != null) {
upgradeStatusData.setActiveSwVersion(reportedFwImageName);
} else {
upgradeStatusData.setActiveSwVersion("Unknown");
}
if (reportedAltFwImageName != null) {
upgradeStatusData.setAlternateSwVersion(reportedAltFwImageName);
} else {
((EquipmentUpgradeStatusData) firmwareStatus.getDetails())
.setAlternateSwVersion("Unknown");
}
if (fwUpgradeState == null) fwUpgradeState = EquipmentUpgradeState.undefined;
if (fwUpgradeState.equals(EquipmentUpgradeState.up_to_date)) {
LOG.info("Firmware load is up to date.");
upgradeStatusData.setUpgradeState(fwUpgradeState);
firmwareStatus.setDetails(upgradeStatusData);
} else if (fwUpgradeState.equals(EquipmentUpgradeState.download_complete) } else if (fwUpgradeState.equals(EquipmentUpgradeState.download_complete)
|| fwUpgradeState.equals(EquipmentUpgradeState.apply_complete) || fwUpgradeState.equals(EquipmentUpgradeState.apply_complete)
|| fwUpgradeState.equals(EquipmentUpgradeState.apply_initiated) || fwUpgradeState.equals(EquipmentUpgradeState.apply_initiated)
@@ -1581,98 +1587,30 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
LOG.info("Firmware upgrade is in state {}", fwUpgradeState); LOG.info("Firmware upgrade is in state {}", fwUpgradeState);
EquipmentUpgradeStatusData firmwareStatusData = (EquipmentUpgradeStatusData) firmwareStatus upgradeStatusData.setUpgradeState(fwUpgradeState);
.getDetails();
if (reportedFwImageName != null) {
if (!firmwareStatusData.getActiveSwVersion().equals(reportedFwImageName)
|| !firmwareStatusData.getUpgradeState().equals(fwUpgradeState)
|| !firmwareStatusData.getAlternateSwVersion().equals(reportedAltFwImageName)) {
firmwareStatusData.setActiveSwVersion(reportedFwImageName);
firmwareStatusData.setAlternateSwVersion(reportedAltFwImageName);
firmwareStatusData.setUpgradeState(fwUpgradeState, fwUpgradeFailureReason);
if (fwUpgradeState.equals(EquipmentUpgradeState.apply_initiated)) { if (fwUpgradeState.equals(EquipmentUpgradeState.apply_initiated)) {
firmwareStatusData.setUpgradeStartTime(System.currentTimeMillis()); upgradeStatusData.setUpgradeStartTime(System.currentTimeMillis());
} else if (fwUpgradeState.equals(EquipmentUpgradeState.reboot_initiated) } else if (fwUpgradeState.equals(EquipmentUpgradeState.reboot_initiated)
|| fwUpgradeState.equals(EquipmentUpgradeState.rebooting)) { || fwUpgradeState.equals(EquipmentUpgradeState.rebooting)) {
firmwareStatusData.setRebooted(true); upgradeStatusData.setRebooted(true);
} }
firmwareStatus.setDetails(firmwareStatusData); firmwareStatus.setDetails(upgradeStatusData);
updates.add(firmwareStatus);
}
}
if (!updates.isEmpty()) {// may be some updates from protocol
// status
updates = statusServiceInterface.update(updates);
}
// no other action here, these are just transient states
} else if (fwUpgradeState.equals(EquipmentUpgradeState.apply_failed) } else if (fwUpgradeState.equals(EquipmentUpgradeState.apply_failed)
|| fwUpgradeState.equals(EquipmentUpgradeState.download_failed) || fwUpgradeState.equals(EquipmentUpgradeState.download_failed)
|| fwUpgradeState.equals(EquipmentUpgradeState.reboot_failed)) { || fwUpgradeState.equals(EquipmentUpgradeState.reboot_failed)) {
LOG.warn("Firmware upgrade is in a failed state {} due to {}", fwUpgradeState, fwUpgradeFailureReason); LOG.warn("Firmware upgrade is in a failed state {} due to {}", fwUpgradeState, fwUpgradeFailureReason);
EquipmentUpgradeStatusData firmwareStatusData = (EquipmentUpgradeStatusData) firmwareStatus upgradeStatusData.setUpgradeState(fwUpgradeState, fwUpgradeFailureReason);
.getDetails(); firmwareStatus.setDetails(upgradeStatusData);
if (reportedFwImageName != null) {
if (!firmwareStatusData.getActiveSwVersion().equals(reportedFwImageName)
|| !firmwareStatusData.getAlternateSwVersion().equals(reportedAltFwImageName)
|| !firmwareStatusData.getUpgradeState().equals(fwUpgradeState)
|| !firmwareStatusData.getReason().equals(fwUpgradeFailureReason)) {
firmwareStatusData.setActiveSwVersion(reportedFwImageName);
firmwareStatusData.setAlternateSwVersion(reportedAltFwImageName);
firmwareStatusData.setUpgradeState(fwUpgradeState, fwUpgradeFailureReason);
firmwareStatus.setDetails(firmwareStatusData);
updates.add(firmwareStatus);
updates = statusServiceInterface.update(updates);
reconcileFwVersionToTrack(ce, reportedFwImageName, opensyncAPState.getModel());
} else { } else {
if (!updates.isEmpty()) {
updates = statusServiceInterface.update(updates);
}
}
} else { ((EquipmentUpgradeStatusData) firmwareStatus.getDetails())
if (!updates.isEmpty()) {// may be some updates from .setUpgradeState(EquipmentUpgradeState.undefined);
// protocol ((EquipmentUpgradeStatusData) firmwareStatus.getDetails())
// status .setUpgradeStartTime(null);
updates = statusServiceInterface.update(updates);
} }
} }
return firmwareStatus;
} else {
LOG.info("Firmware upgrade state is {}", fwUpgradeState);
EquipmentUpgradeStatusData firmwareStatusData = (EquipmentUpgradeStatusData) firmwareStatus
.getDetails();
if (reportedFwImageName != null) {
if (!firmwareStatusData.getActiveSwVersion().equals(reportedFwImageName)
|| !firmwareStatusData.getUpgradeState().equals(fwUpgradeState)
|| !firmwareStatusData.getAlternateSwVersion().equals(reportedAltFwImageName)) {
firmwareStatusData.setActiveSwVersion(reportedFwImageName);
firmwareStatusData.setAlternateSwVersion(reportedAltFwImageName);
firmwareStatusData.setUpgradeState(fwUpgradeState, fwUpgradeFailureReason);
firmwareStatus.setDetails(firmwareStatusData);
updates.add(firmwareStatus);
updates = statusServiceInterface.update(updates);
} else {
if (!updates.isEmpty()) {// may be some updates from
// protocol
// status
updates = statusServiceInterface.update(updates);
}
}
} else {
if (!updates.isEmpty()) {// may be some updates from
// protocol
// status
updates = statusServiceInterface.update(updates);
}
}
}
}
} }
@Override @Override
@@ -1695,11 +1633,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
return; return;
} }
if (equipmentId < 0L) {
LOG.debug("wifiVIFStateDbTableDelete Cannot get equipmentId {} for session {}", equipmentId);
return;
}
Status activeBssidsStatus = statusServiceInterface.getOrNull(customerId, equipmentId, Status activeBssidsStatus = statusServiceInterface.getOrNull(customerId, equipmentId,
StatusDataType.ACTIVE_BSSIDS); StatusDataType.ACTIVE_BSSIDS);
@@ -1734,7 +1667,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
} }
bssidList.removeAll(toBeDeleted); if (bssidList != null) bssidList.removeAll(toBeDeleted);
statusDetails.setActiveBSSIDs(bssidList); statusDetails.setActiveBSSIDs(bssidList);
@@ -1771,13 +1704,14 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
new MacAddress(deletedClientMac)); new MacAddress(deletedClientMac));
if (client != null) { if (client != null) {
if (clientSession != null) { if (clientSession != null && clientSession.getDetails() != null && clientSession.getDetails().getAssociationState() != null) {
if (!clientSession.getDetails().getAssociationState().equals(AssociationState.Disconnected)) { if (!clientSession.getDetails().getAssociationState().equals(AssociationState.Disconnected)) {
clientSession.getDetails().setAssociationState(AssociationState.Disconnected); clientSession.getDetails().setAssociationState(AssociationState.Disconnected);
clientSession = clientServiceInterface.updateSession(clientSession); clientSession = clientServiceInterface.updateSession(clientSession);
LOG.info("Session {} for client {} is now disconnected.", clientSession, client.getMacAddress()); LOG.info("Session {} for client {} is now disconnected.", clientSession, client.getMacAddress());
} }
} }
} else { } else {
if (clientSession != null) { if (clientSession != null) {
@@ -1788,7 +1722,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
} }
} }
} }
@Override @Override
@@ -1813,7 +1746,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
return; return;
} }
Equipment ce = getCustomerEquipment(apId); Equipment ce = equipmentServiceInterface.getByInventoryIdOrNull(apId);
if (ce == null) { if (ce == null) {
LOG.debug("updateDhcpIpClientFingerprints::Cannot get Equipment for AP {}", apId); LOG.debug("updateDhcpIpClientFingerprints::Cannot get Equipment for AP {}", apId);
@@ -1843,7 +1776,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
} else if (clientMacAddress.equals(equipmentServiceInterface.get(equipmentId).getBaseMacAddress())) { } else if (clientMacAddress.equals(equipmentServiceInterface.get(equipmentId).getBaseMacAddress())) {
LOG.info("Not a client device {} ", dhcpLeasedIps); LOG.info("Not a client device {} ", dhcpLeasedIps);
// In case somehow this equipment has accidentally been // In case somehow this equipment has accidentally been
// tagged as a client, remove // tagged as a client, remove
@@ -1857,7 +1789,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
LOG.info("Deleting invalid client {}", clientServiceInterface.delete(customerId, clientMacAddress)); LOG.info("Deleting invalid client {}", clientServiceInterface.delete(customerId, clientMacAddress));
continue; continue;
} else { } else {
LOG.info("Client {} already exists on the cloud, update client values", dhcpLeasedIps); LOG.info("Client {} already exists on the cloud, update client values", dhcpLeasedIps);
@@ -1937,7 +1868,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
LOG.info("Not a client device {} ", dhcpLeasedIps); LOG.info("Not a client device {} ", dhcpLeasedIps);
// In case somehow this equipment has accidentally been // In case somehow this equipment has accidentally been
// tagged as a client, remove // tagged as a client, remove
@@ -1951,12 +1881,10 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
LOG.info("Deleting invalid client {}", clientServiceInterface.delete(customerId, clientMacAddress)); LOG.info("Deleting invalid client {}", clientServiceInterface.delete(customerId, clientMacAddress));
continue; continue;
} else { } else {
ClientInfoDetails clientDetails = (ClientInfoDetails) client.getDetails(); ClientInfoDetails clientDetails = (ClientInfoDetails) client.getDetails();
if (dhcpLeasedIps.containsKey("hostname")) { if (dhcpLeasedIps.containsKey("hostname")) {

View File

@@ -30,6 +30,7 @@ import com.telecominfraproject.wlan.client.session.models.ClientSessionDetails;
import com.telecominfraproject.wlan.client.session.models.ClientSessionMetricDetails; import com.telecominfraproject.wlan.client.session.models.ClientSessionMetricDetails;
import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface; import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
import com.telecominfraproject.wlan.core.model.equipment.ChannelBandwidth; import com.telecominfraproject.wlan.core.model.equipment.ChannelBandwidth;
import com.telecominfraproject.wlan.core.model.equipment.ChannelHopReason;
import com.telecominfraproject.wlan.core.model.equipment.DetectedAuthMode; import com.telecominfraproject.wlan.core.model.equipment.DetectedAuthMode;
import com.telecominfraproject.wlan.core.model.equipment.MacAddress; import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
import com.telecominfraproject.wlan.core.model.equipment.NeighborScanPacketType; import com.telecominfraproject.wlan.core.model.equipment.NeighborScanPacketType;
@@ -41,7 +42,7 @@ import com.telecominfraproject.wlan.core.model.utils.DecibelUtils;
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface; import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration; import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
import com.telecominfraproject.wlan.equipment.models.Equipment; import com.telecominfraproject.wlan.equipment.models.Equipment;
import com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities.OvsdbToWlanCloudTypeMappingUtility; import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
import com.telecominfraproject.wlan.profile.ProfileServiceInterface; import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
import com.telecominfraproject.wlan.profile.models.Profile; import com.telecominfraproject.wlan.profile.models.Profile;
import com.telecominfraproject.wlan.profile.models.ProfileContainer; import com.telecominfraproject.wlan.profile.models.ProfileContainer;
@@ -74,7 +75,10 @@ import com.telecominfraproject.wlan.status.equipment.report.models.EquipmentPerR
import com.telecominfraproject.wlan.status.equipment.report.models.OperatingSystemPerformance; import com.telecominfraproject.wlan.status.equipment.report.models.OperatingSystemPerformance;
import com.telecominfraproject.wlan.status.equipment.report.models.RadioUtilizationReport; import com.telecominfraproject.wlan.status.equipment.report.models.RadioUtilizationReport;
import com.telecominfraproject.wlan.status.models.Status; import com.telecominfraproject.wlan.status.models.Status;
import com.telecominfraproject.wlan.status.models.StatusCode;
import com.telecominfraproject.wlan.status.models.StatusDataType; import com.telecominfraproject.wlan.status.models.StatusDataType;
import com.telecominfraproject.wlan.status.network.models.NetworkAdminStatusData;
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeChannelHopEvent;
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEventType; import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEventType;
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallReportEvent; import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallReportEvent;
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallStartEvent; import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallStartEvent;
@@ -91,6 +95,7 @@ import sts.OpensyncStats.AssocType;
import sts.OpensyncStats.CallReport; import sts.OpensyncStats.CallReport;
import sts.OpensyncStats.CallStart; import sts.OpensyncStats.CallStart;
import sts.OpensyncStats.CallStop; import sts.OpensyncStats.CallStop;
import sts.OpensyncStats.ChannelSwitchReason;
import sts.OpensyncStats.Client; import sts.OpensyncStats.Client;
import sts.OpensyncStats.ClientReport; import sts.OpensyncStats.ClientReport;
import sts.OpensyncStats.DNSProbeMetric; import sts.OpensyncStats.DNSProbeMetric;
@@ -147,9 +152,9 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
private CloudEventDispatcherInterface equipmentMetricsCollectorInterface; private CloudEventDispatcherInterface equipmentMetricsCollectorInterface;
void processMqttMessage(String topic, WCStatsReport wcStatsReport) { void processMqttMessage(String topic, WCStatsReport wcStatsReport) {
LOG.debug("Received WCStatsReport {}", wcStatsReport.toString()); LOG.info("Received WCStatsReport {}", wcStatsReport.toString());
LOG.info("Received report on topic {}", topic); LOG.debug("Received report on topic {}", topic);
int customerId = extractCustomerIdFromTopic(topic); int customerId = extractCustomerIdFromTopic(topic);
long equipmentId = extractEquipmentIdFromTopic(topic); long equipmentId = extractEquipmentIdFromTopic(topic);
@@ -289,14 +294,13 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
} }
void processEventReport(Report report, int customerId, long equipmentId, String apId, long locationId) { void processEventReport(Report report, int customerId, long equipmentId, String apId, long locationId) {
report.getEventReportList().stream().forEach(e -> { report.getEventReportList().stream().forEach(e -> {
for (sts.OpensyncStats.EventReport.ClientSession apEventClientSession : e.getClientSessionList()) { for (sts.OpensyncStats.EventReport.ClientSession apEventClientSession : e.getClientSessionList()) {
LOG.info("Processing EventReport::ClientSession {}", apEventClientSession); LOG.debug("Processing EventReport::ClientSession {}", apEventClientSession);
processClientConnectEvent(customerId, equipmentId, locationId, e, apEventClientSession); processClientConnectEvent(customerId, equipmentId, locationId, e, apEventClientSession);
@@ -318,10 +322,74 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
} }
publishChannelHopEvents(customerId, equipmentId, e);
}); });
} }
private void publishChannelHopEvents(int customerId, long equipmentId, EventReport e) {
LOG.info("publishChannelHopEvents for customerId {} equipmentId {}");
List<SystemEvent> events = new ArrayList<>();
for (sts.OpensyncStats.EventReport.ChannelSwitchEvent channelSwitchEvent : e.getChannelSwitchList()) {
Equipment equipment = equipmentServiceInterface.getOrNull(equipmentId);
if (equipment == null)
continue;
RadioType radioType = null;
Long timestamp = null;
ChannelHopReason reason = null;
Integer channel = null;
if (channelSwitchEvent.hasBand()) {
radioType = OvsdbToWlanCloudTypeMappingUtility
.getRadioTypeFromOpensyncStatsRadioBandType(channelSwitchEvent.getBand());
}
if (RadioType.isUnsupported(radioType)) {
LOG.warn("publishChannelHopEvents:RadioType {} is unsupported, cannot send RealTimeChannelHopEvent for {}", radioType, channelSwitchEvent);
continue;
}
if (channelSwitchEvent.hasTimestampMs()) {
timestamp = channelSwitchEvent.getTimestampMs();
}
if (timestamp == null) {
LOG.warn("publishChannelHopEvents:timestamp is null, cannot send RealTimeChannelHopEvent for {}", channelSwitchEvent);
continue;
}
if (channelSwitchEvent.hasReason()) {
if (channelSwitchEvent.getReason().equals(ChannelSwitchReason.high_interference)) reason = ChannelHopReason.HighInterference;
else if (channelSwitchEvent.getReason().equals(ChannelSwitchReason.radar_detected)) reason = ChannelHopReason.RadarDetected;
}
if (ChannelHopReason.isUnsupported(reason)) {
LOG.warn("publishChannelHopEvents:reason {} is unsupported, cannot send RealTimeChannelHopEvent for {}", channelSwitchEvent.getReason(), channelSwitchEvent);
continue;
}
if (channelSwitchEvent.hasChannel()) {
channel = channelSwitchEvent.getChannel();
}
if (channel == null) {
LOG.warn("publishChannelHopEvents:channel is null, cannot send RealTimeChannelHopEvent for {}", channelSwitchEvent);
continue;
}
RealTimeChannelHopEvent channelHopEvent = new RealTimeChannelHopEvent(RealTimeEventType.Channel_Hop, customerId, equipmentId, radioType, channel, ((ApElementConfiguration)equipment.getDetails()).getRadioMap().get(radioType).getChannelNumber(), reason, timestamp);
events.add(channelHopEvent);
LOG.debug("publishChannelHopEvents:Adding ChannelHopEvent to bulk list {}", channelHopEvent);
}
if (events.size() > 0) {
LOG.info("publishChannelHopEvents:publishEventsBulk: {}", events);
equipmentMetricsCollectorInterface.publishEventsBulk(events);
} else {
LOG.info("publishChannelHopEvents:No ChannelHopEvents in report");
}
}
protected void processClientConnectEvent(int customerId, long equipmentId, long locationId, EventReport e, protected void processClientConnectEvent(int customerId, long equipmentId, long locationId, EventReport e,
sts.OpensyncStats.EventReport.ClientSession apEventClientSession) { sts.OpensyncStats.EventReport.ClientSession apEventClientSession) {
for (ClientConnectEvent clientConnectEvent : apEventClientSession.getClientConnectEventList()) { for (ClientConnectEvent clientConnectEvent : apEventClientSession.getClientConnectEventList()) {
@@ -442,7 +510,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
} }
clientSessionDetails.setAssociationState(AssociationState._802_11_Associated); clientSessionDetails.setAssociationState(AssociationState._802_11_Associated);
if (clientSession.getDetails() == null) { if (clientSession.getDetails() == null) {
clientSession.setDetails(clientSessionDetails); clientSession.setDetails(clientSessionDetails);
} else { } else {
@@ -453,7 +520,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
} }
} }
} }
@@ -509,7 +575,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
clientSessionDetails.setSessionId(apEventClientSession.getSessionId()); clientSessionDetails.setSessionId(apEventClientSession.getSessionId());
if (clientDisconnectEvent.hasLrcvUpTsInUs()) { if (clientDisconnectEvent.hasLrcvUpTsInUs()) {
clientSessionDetails.setLastRxTimestamp(clientDisconnectEvent.getLrcvUpTsInUs()); clientSessionDetails.setLastRxTimestamp(clientDisconnectEvent.getLrcvUpTsInUs());
} }
@@ -527,7 +592,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
} }
clientSessionDetails.setAssociationState(AssociationState.Disconnected); clientSessionDetails.setAssociationState(AssociationState.Disconnected);
if (clientSession.getDetails() == null) { if (clientSession.getDetails() == null) {
clientSession.setDetails(clientSessionDetails); clientSession.setDetails(clientSessionDetails);
} else { } else {
@@ -536,9 +600,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
clientSession = clientServiceInterface.updateSession(clientSession); clientSession = clientServiceInterface.updateSession(clientSession);
} else { } else {
LOG.info("Cannot update client or client session when no client mac address is present"); LOG.warn("Cannot update client or client session when no client mac address is present");
} }
} }
} }
@@ -589,7 +652,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
clientSessionDetails.setAssociationState(AssociationState._802_11_Authenticated); clientSessionDetails.setAssociationState(AssociationState._802_11_Authenticated);
} }
if (clientSession.getDetails() == null) { if (clientSession.getDetails() == null) {
clientSession.setDetails(clientSessionDetails); clientSession.setDetails(clientSessionDetails);
} else { } else {
@@ -598,9 +660,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
clientSession = clientServiceInterface.updateSession(clientSession); clientSession = clientServiceInterface.updateSession(clientSession);
} else { } else {
LOG.info("Cannot update client or client session when no client mac address is present"); LOG.warn("Cannot update client or client session when no client mac address is present");
} }
} }
} }
@@ -673,7 +734,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
clientSession = clientServiceInterface.updateSession(clientSession); clientSession = clientServiceInterface.updateSession(clientSession);
} else { } else {
LOG.info("Cannot update client or client session when no client mac address is present"); LOG.warn("Cannot update client or client session when no client mac address is present");
} }
} }
} }
@@ -709,7 +770,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
clientSession.setLocationId(locationId); clientSession.setLocationId(locationId);
clientSession.setMacAddress(new MacAddress(clientFailureEvent.getStaMac())); clientSession.setMacAddress(new MacAddress(clientFailureEvent.getStaMac()));
ClientSessionDetails clientSessionDetails = new ClientSessionDetails(); ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
if (clientFailureEvent.hasSsid()) { if (clientFailureEvent.hasSsid()) {
@@ -736,7 +796,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
clientSession = clientServiceInterface.updateSession(clientSession); clientSession = clientServiceInterface.updateSession(clientSession);
} else { } else {
LOG.info("Cannot update client or client session when no client mac address is present"); LOG.warn("Cannot update client or client session when no client mac address is present");
} }
} }
} }
@@ -772,10 +832,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
clientSession.setLocationId(locationId); clientSession.setLocationId(locationId);
clientSession.setMacAddress(new MacAddress(clientFirstDataEvent.getStaMac())); clientSession.setMacAddress(new MacAddress(clientFirstDataEvent.getStaMac()));
ClientSessionDetails clientSessionDetails = new ClientSessionDetails(); ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
if (clientFirstDataEvent.hasFdataRxUpTsInUs()) { if (clientFirstDataEvent.hasFdataRxUpTsInUs()) {
clientSessionDetails.setFirstDataRcvdTimestamp(clientFirstDataEvent.getFdataRxUpTsInUs()); clientSessionDetails.setFirstDataRcvdTimestamp(clientFirstDataEvent.getFdataRxUpTsInUs());
} }
@@ -797,7 +855,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
clientSession = clientServiceInterface.updateSession(clientSession); clientSession = clientServiceInterface.updateSession(clientSession);
} else { } else {
LOG.info("Cannot update client or client session when no client mac address is present"); LOG.warn("Cannot update client or client session when no client mac address is present");
} }
} }
} }
@@ -833,12 +891,10 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
clientSession.setLocationId(locationId); clientSession.setLocationId(locationId);
clientSession.setMacAddress(new MacAddress(clientIdEvent.getCltMac())); clientSession.setMacAddress(new MacAddress(clientIdEvent.getCltMac()));
ClientSessionDetails clientSessionDetails = new ClientSessionDetails(); ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
clientSessionDetails.setSessionId(apEventClientSession.getSessionId()); clientSessionDetails.setSessionId(apEventClientSession.getSessionId());
if (clientSession.getDetails() == null) { if (clientSession.getDetails() == null) {
clientSession.setDetails(clientSessionDetails); clientSession.setDetails(clientSessionDetails);
} else { } else {
@@ -848,7 +904,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
clientSession = clientServiceInterface.updateSession(clientSession); clientSession = clientServiceInterface.updateSession(clientSession);
} else { } else {
LOG.info("Cannot update client or client session when no client mac address is present"); LOG.warn("Cannot update client or client session when no client mac address is present");
} }
} }
} }
@@ -886,10 +942,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
ClientSessionDetails clientSessionDetails = new ClientSessionDetails(); ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
clientSessionDetails.setSessionId(apEventClientSession.getSessionId()); clientSessionDetails.setSessionId(apEventClientSession.getSessionId());
try { try {
clientSessionDetails clientSessionDetails
.setIpAddress(InetAddress.getByAddress(clientIpEvent.getIpAddr().toByteArray())); .setIpAddress(InetAddress.getByAddress(clientIpEvent.getIpAddr().toByteArray()));
@@ -907,7 +961,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
clientSession = clientServiceInterface.updateSession(clientSession); clientSession = clientServiceInterface.updateSession(clientSession);
} else { } else {
LOG.info("Cannot update client or client session when no clientmac address is present"); LOG.warn("Cannot update client or client session when no clientmac address is present");
} }
} }
} }
@@ -974,7 +1028,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
clientSession = clientServiceInterface.updateSession(clientSession); clientSession = clientServiceInterface.updateSession(clientSession);
} else { } else {
LOG.info("Cannot update client or client session when no client mac address is present"); LOG.warn("Cannot update client or client session when no client mac address is present");
} }
} }
} }
@@ -994,7 +1048,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
LOG.debug("Received VideoVoiceReport {} for SIP call", videoVoiceReport); LOG.debug("Received VideoVoiceReport {} for SIP call", videoVoiceReport);
processRealTImeSipCallReportEvent(customerId, equipmentId, eventTimestamp, eventsList, videoVoiceReport); processRealTimeSipCallReportEvent(customerId, equipmentId, eventTimestamp, eventsList, videoVoiceReport);
processRealTimeSipCallStartEvent(customerId, equipmentId, eventTimestamp, eventsList, videoVoiceReport); processRealTimeSipCallStartEvent(customerId, equipmentId, eventTimestamp, eventsList, videoVoiceReport);
@@ -1014,13 +1068,229 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
} }
protected void processRealTImeSipCallReportEvent(int customerId, long equipmentId, long eventTimestamp, protected void processRealTimeSipCallReportEvent(int customerId, long equipmentId, long eventTimestamp,
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) { List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
if (videoVoiceReport.hasCallReport()) { if (videoVoiceReport.hasCallReport()) {
CallReport callReport = videoVoiceReport.getCallReport(); CallReport callReport = videoVoiceReport.getCallReport();
RealTimeSipCallReportEvent cloudSipCallReportEvent = new RealTimeSipCallReportEvent(customerId, equipmentId,
eventTimestamp);
if (callReport.hasClientMac() && callReport.getClientMac().isValidUtf8()) {
cloudSipCallReportEvent.setClientMacAddress(MacAddress.valueOf(callReport.getClientMac().toStringUtf8()));
}
cloudSipCallReportEvent.setStatuses(processRtpFlowStats(callReport.getStatsList()));
cloudSipCallReportEvent.setEventType(RealTimeEventType.SipCallReport);
cloudSipCallReportEvent.setSipCallId(callReport.getWifiSessionId());
cloudSipCallReportEvent.setAssociationId(callReport.getSessionId());
if (callReport.hasReason()) {
cloudSipCallReportEvent.setReportReason(getCallReportReason(callReport.getReason()));
}
if (callReport.hasProviderDomain()) {
cloudSipCallReportEvent.setProviderDomain(callReport.getProviderDomain());
}
if (callReport.getCodecsCount() > 0) {
cloudSipCallReportEvent.setCodecs(callReport.getCodecsList());
}
if (callReport.hasChannel()) {
cloudSipCallReportEvent.setChannel(callReport.getChannel());
}
if (callReport.hasBand()) {
cloudSipCallReportEvent.setRadioType(OvsdbToWlanCloudTypeMappingUtility
.getRadioTypeFromOpensyncStatsRadioBandType(callReport.getBand()));
}
eventsList.add(cloudSipCallReportEvent);
}
}
private SIPCallReportReason getCallReportReason(CallReport.CallReportReason reason) {
if (reason != null) {
switch (reason) {
case ROAMED_TO:
return SIPCallReportReason.ROAMED_TO;
case GOT_PUBLISH:
return SIPCallReportReason.GOT_PUBLISH;
case ROAMED_FROM:
return SIPCallReportReason.ROAMED_FROM;
default:
return SIPCallReportReason.UNSUPPORTED;
}
}
return SIPCallReportReason.UNSUPPORTED;
}
protected void processRealTimeSipCallStartEvent(int customerId, long equipmentId, long eventTimestamp,
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
if (videoVoiceReport.hasCallStart()) {
CallStart apCallStart = videoVoiceReport.getCallStart();
RealTimeSipCallStartEvent cloudSipCallStartEvent = new RealTimeSipCallStartEvent(customerId, equipmentId,
eventTimestamp);
if (apCallStart.hasClientMac() && apCallStart.getClientMac().isValidUtf8()) {
cloudSipCallStartEvent.setClientMacAddress(MacAddress.valueOf(apCallStart.getClientMac().toStringUtf8()));
}
if (apCallStart.hasDeviceInfo()) {
cloudSipCallStartEvent.setDeviceInfo(apCallStart.getDeviceInfo());
}
if (apCallStart.hasProviderDomain()) {
cloudSipCallStartEvent.setProviderDomain(apCallStart.getProviderDomain());
}
if (apCallStart.hasSessionId()) {
cloudSipCallStartEvent.setAssociationId(apCallStart.getSessionId());
}
if (apCallStart.hasWifiSessionId()) {
cloudSipCallStartEvent.setAssociationId(apCallStart.getWifiSessionId());
}
if (apCallStart.getCodecsCount() > 0) {
cloudSipCallStartEvent.setCodecs(apCallStart.getCodecsList());
}
if (apCallStart.hasChannel()) {
cloudSipCallStartEvent.setChannel(apCallStart.getChannel());
}
if (apCallStart.hasBand()) {
cloudSipCallStartEvent.setRadioType(OvsdbToWlanCloudTypeMappingUtility
.getRadioTypeFromOpensyncStatsRadioBandType(apCallStart.getBand()));
}
eventsList.add(cloudSipCallStartEvent);
}
}
protected void processRealTimeSipCallStopEvent(int customerId, long equipmentId, long eventTimestamp,
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
if (videoVoiceReport.hasCallStop()) {
CallStop apCallStop = videoVoiceReport.getCallStop();
RealTimeSipCallStopEvent cloudSipCallStopEvent = new RealTimeSipCallStopEvent(customerId, equipmentId,
eventTimestamp);
if (apCallStop.hasCallDuration()) {
cloudSipCallStopEvent.setCallDuration(apCallStop.getCallDuration());
}
if (apCallStop.hasClientMac() && apCallStop.getClientMac().isValidUtf8()) {
cloudSipCallStopEvent.setClientMacAddress(MacAddress.valueOf(apCallStop.getClientMac().toStringUtf8()));
}
if (apCallStop.hasReason()) {
switch (apCallStop.getReason()) {
case BYE_OK:
cloudSipCallStopEvent.setReason(SipCallStopReason.BYE_OK);
break;
case CALL_DROPPED:
cloudSipCallStopEvent.setReason(SipCallStopReason.DROPPED);
break;
default:
cloudSipCallStopEvent.setReason(SipCallStopReason.UNSUPPORTED);
}
}
if (apCallStop.hasSessionId()) {
cloudSipCallStopEvent.setAssociationId(apCallStop.getSessionId());
}
if (apCallStop.hasWifiSessionId()) {
cloudSipCallStopEvent.setSipCallId(apCallStop.getWifiSessionId());
}
if (apCallStop.getStatsCount() > 0) {
cloudSipCallStopEvent.setStatuses(processRtpFlowStats(apCallStop.getStatsList()));
}
if (apCallStop.hasProviderDomain()) {
cloudSipCallStopEvent.setProviderDomain(apCallStop.getProviderDomain());
}
if (apCallStop.getCodecsCount() > 0) {
cloudSipCallStopEvent.setCodecs(apCallStop.getCodecsList());
}
if (apCallStop.hasChannel()) {
cloudSipCallStopEvent.setChannel(apCallStop.getChannel());
}
if (apCallStop.hasBand()) {
cloudSipCallStopEvent.setRadioType(OvsdbToWlanCloudTypeMappingUtility
.getRadioTypeFromOpensyncStatsRadioBandType(apCallStop.getBand()));
}
eventsList.add(cloudSipCallStopEvent);
}
}
protected void processRtsStartEvent(int customerId, long equipmentId, long eventTimestamp,
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
if (videoVoiceReport.hasStreamVideoServer()) {
StreamingVideoServerDetected apStreamVideoServer = videoVoiceReport.getStreamVideoServer();
RealTimeStreamingStartEvent rtsStartEvent = new RealTimeStreamingStartEvent(customerId, equipmentId,
eventTimestamp);
if (apStreamVideoServer.hasServerIp()) {
try {
rtsStartEvent
.setServerIp(InetAddress.getByAddress(apStreamVideoServer.getServerIp().toByteArray()));
} catch (UnknownHostException e) {
LOG.error("Cannot get IP Address from {}", apStreamVideoServer.getServerIp(), e);
}
}
if (apStreamVideoServer.hasStreamingVideoType()) {
rtsStartEvent.setType(OvsdbToWlanCloudTypeMappingUtility
.getCloudStreamingVideoTypeFromApReport(apStreamVideoServer.getStreamingVideoType()));
}
if (apStreamVideoServer.hasServerDnsName()) {
rtsStartEvent.setServerDnsName(apStreamVideoServer.getServerDnsName());
}
if (apStreamVideoServer.hasClientMac()) {
rtsStartEvent.setClientMacAddress(MacAddress.valueOf(apStreamVideoServer.getClientMac().toByteArray()));
}
if (apStreamVideoServer.hasSessionId()) {
rtsStartEvent.setSessionId(apStreamVideoServer.getSessionId());
}
if (apStreamVideoServer.hasVideoSessionId()) {
rtsStartEvent.setVideoSessionId(apStreamVideoServer.getVideoSessionId());
}
eventsList.add(rtsStartEvent);
}
}
private List<com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats> processRtpFlowStats(List<OpensyncStats.RtpFlowStats> stats) {
List<com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats> cloudRtpFlowStatsList = new ArrayList<>(); List<com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats> cloudRtpFlowStatsList = new ArrayList<>();
for (RtpFlowStats apRtpFlowStats : callReport.getStatsList()) { for (RtpFlowStats apRtpFlowStats : stats) {
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats cloudRtpStats = new com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats(); com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats cloudRtpStats = new com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats();
@@ -1101,156 +1371,10 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
cloudRtpStats.setPacketLossPercentage(apRtpFlowStats.getPacketLossPercent()); cloudRtpStats.setPacketLossPercentage(apRtpFlowStats.getPacketLossPercent());
} }
cloudRtpFlowStatsList.add(cloudRtpStats); cloudRtpFlowStatsList.add(cloudRtpStats);
} }
return cloudRtpFlowStatsList;
RealTimeSipCallReportEvent cloudSipCallReportEvent = new RealTimeSipCallReportEvent(customerId, equipmentId,
eventTimestamp);
cloudSipCallReportEvent.setClientMacAddress(MacAddress.valueOf(callReport.getClientMac()));
cloudSipCallReportEvent.setStatuses(cloudRtpFlowStatsList);
cloudSipCallReportEvent.setEventType(RealTimeEventType.SipCallReport);
cloudSipCallReportEvent.setReportReason(SIPCallReportReason.GOT_PUBLISH);
cloudSipCallReportEvent.setSipCallId(callReport.getWifiSessionId());
cloudSipCallReportEvent.setAssociationId(callReport.getSessionId());
eventsList.add(cloudSipCallReportEvent);
}
}
protected void processRealTimeSipCallStartEvent(int customerId, long equipmentId, long eventTimestamp,
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
if (videoVoiceReport.hasCallStart()) {
CallStart apCallStart = videoVoiceReport.getCallStart();
RealTimeSipCallStartEvent cloudSipCallStartEvent = new RealTimeSipCallStartEvent(customerId, equipmentId,
eventTimestamp);
if (apCallStart.hasClientMac()) {
cloudSipCallStartEvent.setClientMacAddress(MacAddress.valueOf(apCallStart.getClientMac()));
}
if (apCallStart.hasDeviceInfo()) {
cloudSipCallStartEvent.setDeviceInfo(apCallStart.getDeviceInfo());
}
if (apCallStart.hasProviderDomain()) {
cloudSipCallStartEvent.setProviderDomain(apCallStart.getProviderDomain());
}
if (apCallStart.hasSessionId()) {
cloudSipCallStartEvent.setAssociationId(apCallStart.getSessionId());
}
if (apCallStart.hasWifiSessionId()) {
cloudSipCallStartEvent.setAssociationId(apCallStart.getWifiSessionId());
}
eventsList.add(cloudSipCallStartEvent);
}
}
protected void processRealTimeSipCallStopEvent(int customerId, long equipmentId, long eventTimestamp,
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
if (videoVoiceReport.hasCallStop()) {
CallStop apCallStop = videoVoiceReport.getCallStop();
RealTimeSipCallStopEvent cloudSipCallStopEvent = new RealTimeSipCallStopEvent(customerId, equipmentId,
eventTimestamp);
if (apCallStop.hasCallDuration()) {
cloudSipCallStopEvent.setCallDuration(apCallStop.getCallDuration());
}
if (apCallStop.hasClientMac()) {
cloudSipCallStopEvent.setClientMacAddress(MacAddress.valueOf(apCallStop.getClientMac()));
}
if (apCallStop.hasReason()) {
switch (apCallStop.getReason()) {
case BYE_OK:
cloudSipCallStopEvent.setReason(SipCallStopReason.BYE_OK);
break;
case CALL_DROPPED:
cloudSipCallStopEvent.setReason(SipCallStopReason.DROPPED);
break;
default:
cloudSipCallStopEvent.setReason(SipCallStopReason.UNSUPPORTED);
}
}
if (apCallStop.hasSessionId()) {
cloudSipCallStopEvent.setAssociationId(apCallStop.getSessionId());
}
if (apCallStop.hasWifiSessionId()) {
cloudSipCallStopEvent.setSipCallId(apCallStop.getWifiSessionId());
}
eventsList.add(cloudSipCallStopEvent);
}
}
protected void processRtsStartEvent(int customerId, long equipmentId, long eventTimestamp,
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
if (videoVoiceReport.hasStreamVideoServer()) {
StreamingVideoServerDetected apStreamVideoServer = videoVoiceReport.getStreamVideoServer();
RealTimeStreamingStartEvent rtsStartEvent = new RealTimeStreamingStartEvent(customerId, equipmentId,
eventTimestamp);
if (apStreamVideoServer.hasServerIp()) {
try {
rtsStartEvent
.setServerIp(InetAddress.getByAddress(apStreamVideoServer.getServerIp().toByteArray()));
} catch (UnknownHostException e) {
LOG.error("Cannot get IP Address from {}", apStreamVideoServer.getServerIp(), e);
}
}
if (apStreamVideoServer.hasStreamingVideoType()) {
rtsStartEvent.setType(OvsdbToWlanCloudTypeMappingUtility
.getCloudStreamingVideoTypeFromApReport(apStreamVideoServer.getStreamingVideoType()));
}
if (apStreamVideoServer.hasServerDnsName()) {
rtsStartEvent.setServerDnsName(apStreamVideoServer.getServerDnsName());
}
if (apStreamVideoServer.hasClientMac()) {
rtsStartEvent.setClientMacAddress(MacAddress.valueOf(apStreamVideoServer.getClientMac().toByteArray()));
}
if (apStreamVideoServer.hasSessionId()) {
rtsStartEvent.setSessionId(apStreamVideoServer.getSessionId());
}
if (apStreamVideoServer.hasVideoSessionId()) {
rtsStartEvent.setVideoSessionId(apStreamVideoServer.getVideoSessionId());
}
eventsList.add(rtsStartEvent);
}
} }
protected void processRtsStartSessionEvent(int customerId, long equipmentId, long eventTimestamp, protected void processRtsStartSessionEvent(int customerId, long equipmentId, long eventTimestamp,
@@ -1339,10 +1463,9 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
} }
} }
void populateApNodeMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId, void populateApNodeMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId,
long locationId) { long locationId) {
LOG.debug("populateApNodeMetrics for Customer {} Equipment {}", customerId, equipmentId); LOG.info("populateApNodeMetrics for Customer {} Equipment {}", customerId, equipmentId);
ApNodeMetrics apNodeMetrics = new ApNodeMetrics(); ApNodeMetrics apNodeMetrics = new ApNodeMetrics();
ServiceMetric smr = new ServiceMetric(customerId, equipmentId); ServiceMetric smr = new ServiceMetric(customerId, equipmentId);
@@ -1535,7 +1658,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
// we need to perform a weighted average here because the // we need to perform a weighted average here because the
// samples are in percentage, and may be of different durations // samples are in percentage, and may be of different durations
busyTx += surveySample.getBusyTx() * surveySample.getDurationMs(); busyTx += surveySample.getBusyTx() * surveySample.getDurationMs();
busyRx += surveySample.getBusyRx() * surveySample.getDurationMs(); busyRx += surveySample.getBusyRx() * surveySample.getDurationMs();
busy += surveySample.getBusy() * surveySample.getDurationMs(); busy += surveySample.getBusy() * surveySample.getDurationMs();
@@ -1543,7 +1665,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
totalDurationMs += surveySample.getDurationMs(); totalDurationMs += surveySample.getDurationMs();
noiseList.add(getNegativeSignedIntFrom8BitUnsigned(surveySample.getNoise())); noiseList.add(getNegativeSignedIntFrom8BitUnsigned(surveySample.getNoise()));
} }
if (totalDurationMs > 0) { if (totalDurationMs > 0) {
@@ -1593,6 +1714,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
} }
populateNetworkProbeMetrics(report, apNodeMetrics); populateNetworkProbeMetrics(report, apNodeMetrics);
updateNetworkAdminStatusReport(customerId, equipmentId, apNodeMetrics);
RadioUtilizationReport radioUtilizationReport = new RadioUtilizationReport(); RadioUtilizationReport radioUtilizationReport = new RadioUtilizationReport();
radioUtilizationReport.setAvgNoiseFloor(avgNoiseFloor); radioUtilizationReport.setAvgNoiseFloor(avgNoiseFloor);
radioUtilizationReport.setRadioUtilization(radioUtilizationDetailsMap); radioUtilizationReport.setRadioUtilization(radioUtilizationDetailsMap);
@@ -1601,9 +1723,78 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
updateDeviceStatusRadioUtilizationReport(customerId, equipmentId, radioUtilizationReport); updateDeviceStatusRadioUtilizationReport(customerId, equipmentId, radioUtilizationReport);
} }
private void updateNetworkAdminStatusReport(int customerId, long equipmentId, ApNodeMetrics apNodeMetrics) {
apNodeMetrics.getNetworkProbeMetrics().forEach(n -> {
LOG.info("Update NetworkAdminStatusReport for NetworkProbeMetrics {}", n.toString());
Status networkAdminStatus = statusServiceInterface.getOrNull(customerId, equipmentId,
StatusDataType.NETWORK_ADMIN);
if (networkAdminStatus == null) {
networkAdminStatus = new Status();
networkAdminStatus.setCustomerId(customerId);
networkAdminStatus.setEquipmentId(equipmentId);
networkAdminStatus.setCreatedTimestamp(System.currentTimeMillis());
networkAdminStatus.setStatusDataType(StatusDataType.NETWORK_ADMIN);
networkAdminStatus.setDetails(new NetworkAdminStatusData());
networkAdminStatus = statusServiceInterface.update(networkAdminStatus);
}
NetworkAdminStatusData statusData = (NetworkAdminStatusData) networkAdminStatus.getDetails();
if (n.getDnsState() == null) {
LOG.debug("No DnsState present in networkProbeMetrics, DnsState and CloudLinkStatus set to 'normal");
statusData.setDnsStatus(StatusCode.normal);
statusData.setCloudLinkStatus(StatusCode.normal);
} else {
statusData.setDnsStatus(stateUpDownErrorToStatusCode(n.getDnsState()));
statusData.setCloudLinkStatus(stateUpDownErrorToStatusCode(n.getDnsState()));
}
if (n.getDhcpState() == null) {
LOG.debug("No DhcpState present in networkProbeMetrics, set to 'normal");
statusData.setDhcpStatus(StatusCode.normal);
} else {
statusData.setDhcpStatus(stateUpDownErrorToStatusCode(n.getDhcpState()));
}
if (n.getRadiusState() == null) {
LOG.debug("No RadiusState present in networkProbeMetrics, set to 'normal");
statusData.setRadiusStatus(StatusCode.normal);
} else {
statusData.setRadiusStatus(stateUpDownErrorToStatusCode(n.getRadiusState()));
}
networkAdminStatus.setDetails(statusData);
networkAdminStatus = statusServiceInterface.update(networkAdminStatus);
LOG.debug("Updated NetworkAdminStatus {}", networkAdminStatus);
});
}
private static StatusCode stateUpDownErrorToStatusCode(StateUpDownError state) {
switch (state) {
case enabled:
return StatusCode.normal;
case error:
return StatusCode.error;
case disabled:
return StatusCode.disabled;
case UNSUPPORTED:
return StatusCode.requiresAttention;
default:
return StatusCode.normal;
}
}
void updateDeviceStatusRadioUtilizationReport(int customerId, long equipmentId, void updateDeviceStatusRadioUtilizationReport(int customerId, long equipmentId,
RadioUtilizationReport radioUtilizationReport) { RadioUtilizationReport radioUtilizationReport) {
LOG.debug( LOG.info(
"Processing updateDeviceStatusRadioUtilizationReport for equipmentId {} with RadioUtilizationReport {}", "Processing updateDeviceStatusRadioUtilizationReport for equipmentId {} with RadioUtilizationReport {}",
equipmentId, radioUtilizationReport); equipmentId, radioUtilizationReport);
@@ -1657,7 +1848,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
ipAddress = InetAddress.getByName(dnsProbeMetricFromAp.getServerIP()); ipAddress = InetAddress.getByName(dnsProbeMetricFromAp.getServerIP());
cloudDnsProbeMetric.setDnsServerIp(ipAddress); cloudDnsProbeMetric.setDnsServerIp(ipAddress);
} catch (UnknownHostException e) { } catch (UnknownHostException e) {
LOG.error("Could not get DNS Server IP from network_probe metrics", e); LOG.error("Could not get DNS Server IP from network_probe service_metrics_collection_config",
e);
} }
} }
@@ -1671,7 +1863,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
if (radiusMetrics.hasLatency()) { if (radiusMetrics.hasLatency()) {
networkProbeMetrics.setRadiusLatencyInMs(radiusMetrics.getLatency()); networkProbeMetrics.setRadiusLatencyInMs(radiusMetrics.getLatency());
} }
if (radiusMetrics.hasRadiusState()) {
if (radiusMetrics.hasRadiusState()) { if (radiusMetrics.hasRadiusState()) {
StateUpDownError radiusState = OvsdbToWlanCloudTypeMappingUtility StateUpDownError radiusState = OvsdbToWlanCloudTypeMappingUtility
@@ -1681,7 +1872,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
} }
}
} }
if (networkProbe.hasVlanProbe()) { if (networkProbe.hasVlanProbe()) {
@@ -1693,7 +1884,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
StateUpDownError dhcpState = OvsdbToWlanCloudTypeMappingUtility StateUpDownError dhcpState = OvsdbToWlanCloudTypeMappingUtility
.getCloudMetricsStateFromOpensyncStatsStateUpDown(vlanMetrics.getDhcpState()); .getCloudMetricsStateFromOpensyncStatsStateUpDown(vlanMetrics.getDhcpState());
networkProbeMetrics.setDhcpState(dhcpState); networkProbeMetrics.setDhcpState(dhcpState);
} }
@@ -1727,14 +1917,13 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
void populateApClientMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId, void populateApClientMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId,
long locationId) { long locationId) {
LOG.debug("populateApClientMetrics for Customer {} Equipment {}", customerId, equipmentId); LOG.info("populateApClientMetrics for Customer {} Equipment {}", customerId, equipmentId);
for (ClientReport clReport : report.getClientsList()) { for (ClientReport clReport : report.getClientsList()) {
for (Client cl : clReport.getClientListList()) { for (Client cl : clReport.getClientListList()) {
if (cl.getMacAddress() == null) { if (cl.getMacAddress() == null) {
LOG.debug( LOG.debug("No mac address for Client {}, cannot set device mac address for client in ClientMetrics.",
"No mac address for Client {}, cannot set device mac address for client in ClientMetrics.",
cl); cl);
continue; continue;
} }
@@ -1831,7 +2020,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
void populateNeighbourScanReports(List<ServiceMetric> metricRecordList, Report report, int customerId, void populateNeighbourScanReports(List<ServiceMetric> metricRecordList, Report report, int customerId,
long equipmentId, long locationId) { long equipmentId, long locationId) {
LOG.debug("populateNeighbourScanReports for Customer {} Equipment {}", customerId, equipmentId); LOG.info("populateNeighbourScanReports for Customer {} Equipment {}", customerId, equipmentId);
for (Neighbor neighbor : report.getNeighborsList()) { for (Neighbor neighbor : report.getNeighborsList()) {
@@ -1905,18 +2094,18 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
boolean isReassociation = true; boolean isReassociation = true;
if (clientInstance == null) { if (clientInstance == null) {
LOG.info("Cannot get client instance for {}", client.getMacAddress()); LOG.debug("Cannot get client instance for {}", client.getMacAddress());
return null; return null;
} }
LOG.info("Client {}", clientInstance); LOG.debug("Client {}", clientInstance);
ClientSession clientSession = clientServiceInterface.getSessionOrNull(customerId, equipmentId, ClientSession clientSession = clientServiceInterface.getSessionOrNull(customerId, equipmentId,
clientInstance.getMacAddress()); clientInstance.getMacAddress());
if (clientSession == null) { if (clientSession == null) {
LOG.info("Cannot get client session for {}", clientInstance.getMacAddress()); LOG.warn("Cannot get client session for {}", clientInstance.getMacAddress());
return null; return null;
} }
@@ -1956,6 +2145,9 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|| ssidConfig.getSecureMode().equals(SecureMode.wpa2PSK) || ssidConfig.getSecureMode().equals(SecureMode.wpa2PSK)
|| ssidConfig.getSecureMode().equals(SecureMode.wpa2OnlyPSK)) { || ssidConfig.getSecureMode().equals(SecureMode.wpa2OnlyPSK)) {
latestClientSessionDetails.setSecurityType(SecurityType.PSK); latestClientSessionDetails.setSecurityType(SecurityType.PSK);
} else if (ssidConfig.getSecureMode().equals(SecureMode.wpa3OnlySAE)
|| ssidConfig.getSecureMode().equals(SecureMode.wpa3MixedSAE)){
latestClientSessionDetails.setSecurityType(SecurityType.SAE);
} else if (ssidConfig.getSecureMode().equals(SecureMode.wpa2Radius) } else if (ssidConfig.getSecureMode().equals(SecureMode.wpa2Radius)
|| ssidConfig.getSecureMode().equals(SecureMode.wpaRadius) || ssidConfig.getSecureMode().equals(SecureMode.wpaRadius)
|| ssidConfig.getSecureMode().equals(SecureMode.wpa2OnlyRadius)) { || ssidConfig.getSecureMode().equals(SecureMode.wpa2OnlyRadius)) {
@@ -1963,7 +2155,9 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
latestClientSessionDetails.setEapDetails(new ClientEapDetails()); latestClientSessionDetails.setEapDetails(new ClientEapDetails());
} else if (ssidConfig.getSecureMode().equals(SecureMode.wpaEAP) } else if (ssidConfig.getSecureMode().equals(SecureMode.wpaEAP)
|| ssidConfig.getSecureMode().equals(SecureMode.wpa2EAP) || ssidConfig.getSecureMode().equals(SecureMode.wpa2EAP)
|| ssidConfig.getSecureMode().equals(SecureMode.wpa2OnlyEAP)) { || ssidConfig.getSecureMode().equals(SecureMode.wpa2OnlyEAP)
|| ssidConfig.getSecureMode().equals(SecureMode.wpa3OnlyEAP)
|| ssidConfig.getSecureMode().equals(SecureMode.wpa3MixedEAP)) {
latestClientSessionDetails.setSecurityType(SecurityType.RADIUS); latestClientSessionDetails.setSecurityType(SecurityType.RADIUS);
latestClientSessionDetails.setEapDetails(new ClientEapDetails()); latestClientSessionDetails.setEapDetails(new ClientEapDetails());
} else { } else {
@@ -1974,7 +2168,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
latestClientSessionDetails.setDynamicVlan(ssidConfig.getVlanId()); latestClientSessionDetails.setDynamicVlan(ssidConfig.getVlanId());
} }
RadioBasedSsidConfiguration radioConfig = ssidConfig.getRadioBasedConfigs().get(radioType); RadioBasedSsidConfiguration radioConfig = ssidConfig.getRadioBasedConfigs().get(radioType);
latestClientSessionDetails latestClientSessionDetails
.setIs11KUsed(radioConfig.getEnable80211k() != null ? radioConfig.getEnable80211k() : false); .setIs11KUsed(radioConfig.getEnable80211k() != null ? radioConfig.getEnable80211k() : false);
@@ -2003,12 +2196,11 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
ClientSessionMetricDetails calculateClientSessionMetricDetails(sts.OpensyncStats.Client client, long timestamp) { ClientSessionMetricDetails calculateClientSessionMetricDetails(sts.OpensyncStats.Client client, long timestamp) {
LOG.debug("calculateClientSessionMetricDetails for Client {} at timestamp {}", client.getMacAddress(), LOG.info("calculateClientSessionMetricDetails for Client {} at timestamp {}", client.getMacAddress(),
timestamp); timestamp);
ClientSessionMetricDetails metricDetails = new ClientSessionMetricDetails(); ClientSessionMetricDetails metricDetails = new ClientSessionMetricDetails();
if (LOG.isDebugEnabled()) if (LOG.isDebugEnabled())
LOG.debug("Stats: {} DurationMs {}", client.getStats(), client.getDurationMs()); LOG.debug("Stats: {} DurationMs {}", client.getStats(), client.getDurationMs());
int rssi = client.getStats().getRssi(); int rssi = client.getStats().getRssi();
@@ -2049,7 +2241,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
LOG.debug("RxMbps {} TxMbps {} ", metricDetails.getRxMbps(), metricDetails.getTxMbps()); LOG.debug("RxMbps {} TxMbps {} ", metricDetails.getRxMbps(), metricDetails.getTxMbps());
} else { } else {
LOG.info("Cannot calculate tx/rx throughput for Client {} based on duration of {} Ms", LOG.warn("Cannot calculate tx/rx throughput for Client {} based on duration of {} Ms",
client.getMacAddress(), client.getDurationMs()); client.getMacAddress(), client.getDurationMs());
} }
metricDetails.setLastMetricTimestamp(timestamp); metricDetails.setLastMetricTimestamp(timestamp);
@@ -2060,16 +2252,14 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
void populateApSsidMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId, void populateApSsidMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId,
String apId, long locationId) { String apId, long locationId) {
LOG.debug("populateApSsidMetrics for Customer {} Equipment {}", customerId, equipmentId); LOG.info("populateApSsidMetrics for Customer {} Equipment {}", customerId, equipmentId);
ServiceMetric smr = new ServiceMetric(customerId, equipmentId); ServiceMetric smr = new ServiceMetric(customerId, equipmentId);
smr.setLocationId(locationId); smr.setLocationId(locationId);
ApSsidMetrics apSsidMetrics = new ApSsidMetrics(); ApSsidMetrics apSsidMetrics = new ApSsidMetrics();
smr.setDetails(apSsidMetrics); smr.setDetails(apSsidMetrics);
metricRecordList.add(smr); metricRecordList.add(smr);
for (ClientReport clientReport : report.getClientsList()) { for (ClientReport clientReport : report.getClientsList()) {
LOG.debug("ClientReport for channel {} RadioBand {}", clientReport.getChannel(), clientReport.getBand()); LOG.debug("ClientReport for channel {} RadioBand {}", clientReport.getChannel(), clientReport.getBand());
@@ -2120,7 +2310,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
for (Client client : clientReport.getClientListList()) { for (Client client : clientReport.getClientListList()) {
if (client.hasStats()) { if (client.hasStats()) {
if (client.hasSsid()) { if (client.hasSsid()) {
ssid = client.getSsid(); ssid = client.getSsid();
} }
@@ -2145,7 +2334,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
try { try {
if (client.hasConnected() && client.getConnected() && client.hasMacAddress()) { if (client.hasConnected() && client.getConnected() && client.hasMacAddress()) {
// update metrics for connected client // update service_metrics_collection_config for
// connected client
ClientSession session = handleClientSessionMetricsUpdate(customerId, equipmentId, ClientSession session = handleClientSessionMetricsUpdate(customerId, equipmentId,
locationId, radioType, clientReport.getTimestampMs(), client); locationId, radioType, clientReport.getTimestampMs(), client);
if (session != null) { if (session != null) {
@@ -2155,7 +2345,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
// Make sure, if we have a session for this client, // Make sure, if we have a session for this client,
// it // it
// shows disconnected. // shows disconnected.
// update any metrics that need update if the // update any service_metrics_collection_config that
// need update if the
// disconnect occured during this window // disconnect occured during this window
if (client.hasMacAddress()) { if (client.hasMacAddress()) {
ClientSession session = clientServiceInterface.getSessionOrNull(customerId, equipmentId, ClientSession session = clientServiceInterface.getSessionOrNull(customerId, equipmentId,
@@ -2193,9 +2384,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
continue; // not connected continue; // not connected
} }
} catch (Exception e) { } catch (Exception e) {
LOG.debug("Unabled to update client {} session {}", client, e); LOG.error("Unabled to update client {}", client, e);
} }
} }
@@ -2267,12 +2457,22 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
void populateChannelInfoReports(List<ServiceMetric> metricRecordList, Report report, int customerId, void populateChannelInfoReports(List<ServiceMetric> metricRecordList, Report report, int customerId,
long equipmentId, long locationId, long profileId) { long equipmentId, long locationId, long profileId) {
LOG.debug("populateChannelInfoReports for Customer {} Equipment {}", customerId, equipmentId); LOG.info("populateChannelInfoReports for Customer {} Equipment {}", customerId, equipmentId);
ProfileContainer profileContainer = new ProfileContainer( ProfileContainer profileContainer = new ProfileContainer(
profileServiceInterface.getProfileWithChildren(profileId)); profileServiceInterface.getProfileWithChildren(profileId));
RfConfiguration rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf)
Profile rfProfile = profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf);
RfConfiguration rfConfig = null;
if (rfProfile != null) {
rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf)
.getDetails(); .getDetails();
}
if (rfConfig == null) {
LOG.warn("Cannot get RfConfiguration for customerId {} equipmentId {}", customerId,equipmentId);
return;
}
for (Survey survey : report.getSurveyList()) { for (Survey survey : report.getSurveyList()) {
@@ -2327,7 +2527,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
channelInfoReports.setChannelInformationReportsPerRadio(channelInfoMap); channelInfoReports.setChannelInformationReportsPerRadio(channelInfoMap);
} }
channelInfoReports.setChannelInformationReportsPerRadio(channelInfoMap); channelInfoReports.setChannelInformationReportsPerRadio(channelInfoMap);
smr.setDetails(channelInfoReports); smr.setDetails(channelInfoReports);
smr.setCreatedTimestamp(survey.getTimestampMs()); smr.setCreatedTimestamp(survey.getTimestampMs());
@@ -2337,10 +2536,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
} }
} }
int getNegativeSignedIntFrom8BitUnsigned(int unsignedValue) { int getNegativeSignedIntFrom8BitUnsigned(int unsignedValue) {
byte b = (byte) Integer.parseInt(Integer.toHexString(unsignedValue), 16); byte b = (byte) Integer.parseInt(Integer.toHexString(unsignedValue), 16);
return b; return b;

View File

@@ -88,7 +88,6 @@ import sts.OpensyncStats.Client;
import sts.OpensyncStats.ClientReport; import sts.OpensyncStats.ClientReport;
import sts.OpensyncStats.EventReport; import sts.OpensyncStats.EventReport;
import sts.OpensyncStats.EventReport.ClientAssocEvent; import sts.OpensyncStats.EventReport.ClientAssocEvent;
import sts.OpensyncStats.EventType;
import sts.OpensyncStats.RadioBandType; import sts.OpensyncStats.RadioBandType;
import sts.OpensyncStats.Report; import sts.OpensyncStats.Report;
@@ -162,20 +161,6 @@ public class OpensyncExternalIntegrationCloudTest {
} }
@Test
public void testGetCustomerEquipment() {
Equipment equipment = new Equipment();
equipment.setDetails(ApElementConfiguration.createWithDefaults());
Mockito.when(
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
.thenReturn(equipment);
assertNotNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818122"));
assertNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818133"));
}
@Test @Test
public void testApConnected() { public void testApConnected() {
@@ -697,7 +682,7 @@ public class OpensyncExternalIntegrationCloudTest {
protocolStatus.setCustomerId(2); protocolStatus.setCustomerId(2);
protocolStatus.setEquipmentId(1L); protocolStatus.setEquipmentId(1L);
EquipmentProtocolStatusData protocolStatusData = new EquipmentProtocolStatusData(); EquipmentProtocolStatusData protocolStatusData = new EquipmentProtocolStatusData();
protocolStatusData.setReportedCC(CountryCode.ca); protocolStatusData.setReportedCC(CountryCode.CA);
protocolStatus.setDetails(protocolStatusData); protocolStatus.setDetails(protocolStatusData);
protocolStatus.setStatusDataType(StatusDataType.PROTOCOL); protocolStatus.setStatusDataType(StatusDataType.PROTOCOL);

View File

@@ -7,6 +7,7 @@ import java.net.InetAddress;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.telecominfraproject.wlan.systemevent.models.SystemEvent;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore; import org.junit.Ignore;
@@ -39,6 +40,8 @@ import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
import com.telecominfraproject.wlan.core.model.equipment.RadioType; import com.telecominfraproject.wlan.core.model.equipment.RadioType;
import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface; import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface;
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface; import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
import com.telecominfraproject.wlan.equipment.models.Equipment;
import com.telecominfraproject.wlan.firmware.FirmwareServiceInterface; import com.telecominfraproject.wlan.firmware.FirmwareServiceInterface;
import com.telecominfraproject.wlan.location.service.LocationServiceInterface; import com.telecominfraproject.wlan.location.service.LocationServiceInterface;
import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController; import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController;
@@ -52,18 +55,21 @@ import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSIDs;
import com.telecominfraproject.wlan.status.models.Status; import com.telecominfraproject.wlan.status.models.Status;
import com.telecominfraproject.wlan.status.models.StatusDataType; import com.telecominfraproject.wlan.status.models.StatusDataType;
import sts.OpensyncStats;
import sts.OpensyncStats.AssocType; import sts.OpensyncStats.AssocType;
import sts.OpensyncStats.ChannelSwitchReason;
import sts.OpensyncStats.Client; import sts.OpensyncStats.Client;
import sts.OpensyncStats.ClientReport; import sts.OpensyncStats.ClientReport;
import sts.OpensyncStats.DNSProbeMetric; import sts.OpensyncStats.DNSProbeMetric;
import sts.OpensyncStats.EventReport; import sts.OpensyncStats.EventReport;
import sts.OpensyncStats.EventReport.ChannelSwitchEvent;
import sts.OpensyncStats.EventReport.ClientAssocEvent;
import sts.OpensyncStats.NetworkProbe; import sts.OpensyncStats.NetworkProbe;
import sts.OpensyncStats.RADIUSMetrics; import sts.OpensyncStats.RADIUSMetrics;
import sts.OpensyncStats.RadioBandType; import sts.OpensyncStats.RadioBandType;
import sts.OpensyncStats.Report; import sts.OpensyncStats.Report;
import sts.OpensyncStats.StateUpDown; import sts.OpensyncStats.StateUpDown;
import sts.OpensyncStats.VLANMetrics; import sts.OpensyncStats.VLANMetrics;
import sts.OpensyncStats.EventReport.ClientAssocEvent;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@ActiveProfiles(profiles = { "integration_test", }) @ActiveProfiles(profiles = { "integration_test", })
@@ -164,6 +170,20 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
@Test @Test
public void testProcessMqttMessageStringReport() { public void testProcessMqttMessageStringReport() {
Equipment equipment = new Equipment();
equipment.setDetails(ApElementConfiguration.createWithDefaults());
equipment.setId(1L);
Mockito.when(
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
.thenReturn(equipment);
equipment.setProfileId(0L);
Mockito.when(equipmentServiceInterface.getOrNull(1L)).thenReturn(equipment);
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
Report report = Report.newBuilder().setNodeID("21P10C68818122") Report report = Report.newBuilder().setNodeID("21P10C68818122")
.addAllClients(getOpensyncStatsClientReportsList()) .addAllClients(getOpensyncStatsClientReportsList())
@@ -239,6 +259,55 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
// TODO: implement me when wcs stats reports supported // TODO: implement me when wcs stats reports supported
} }
// Verify CallStart, CallStop and CallReport are properly processed and published as
// respective events (5 events in total)
@Test
public void testProcessMqttMessageStringMultipleVideoVoiceReport() {
OpensyncStats.VideoVoiceReport.Builder callStartVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder().
setCallStart(getDefaultCallStart());
OpensyncStats.VideoVoiceReport.Builder callReportGotPublishVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder().
setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.GOT_PUBLISH, 121, 1028, 1316, 1888, 298, 2, 100, 200));
OpensyncStats.VideoVoiceReport.Builder callReportRoamedToVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder().
setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_TO, 123, 1020, 1116, 1345, 223, 0, 102, 203));
OpensyncStats.VideoVoiceReport.Builder callReportRoamedFromVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder().
setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_FROM, 122, 1029, 1300, 1234, 111, 3, 101, 201));
OpensyncStats.VideoVoiceReport.Builder callStopVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder().
setCallStop(getDefaultCallStop());
// Create report with multiple voiceReports in one
Report multipleVoiceReportsInOneReport = Report.newBuilder().addVideoVoiceReport(callStartVoiceReportBuilder).
addVideoVoiceReport(callReportGotPublishVoiceReportBuilder).
addVideoVoiceReport(callReportRoamedFromVoiceReportBuilder).
addVideoVoiceReport(callReportRoamedToVoiceReportBuilder).
addVideoVoiceReport(callStopVoiceReportBuilder).
setNodeID("1").
build();
opensyncExternalIntegrationMqttProcessor.populateSipCallReport(null, multipleVoiceReportsInOneReport, 1, 2L, "TestAP", 12L);
Mockito.verify(equipmentMetricsCollectorInterface, Mockito.times(1)).publishEventsBulk(Mockito.anyList());
}
// Create report with 1 voiceReports that contains multiple Calls
// Note that GOT_PUBLISH and ROAMED_FROM are ignored in the CallReport. ROAMED_TO overwrites them
@Test
public void testProcessMqttMessageStringOneVideoVoiceReport() {
OpensyncStats.VideoVoiceReport.Builder videoVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder().
setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.GOT_PUBLISH, 121, 1028, 1316,1888, 298, 2, 100,200)).
setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_FROM, 122, 1029, 1300,1234, 111, 3, 101,201)).
setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_TO, 123, 1020, 1116,1345, 223, 0, 102,203)).
setCallStart(getDefaultCallStart()).
setCallStop(getDefaultCallStop());
Report oneVoiceReportWithMultipleCallsInOneReport = Report.getDefaultInstance().toBuilder().
addVideoVoiceReport(videoVoiceReportBuilder).
setNodeID("1").
build();
opensyncExternalIntegrationMqttProcessor.populateSipCallReport(null, oneVoiceReportWithMultipleCallsInOneReport, 1, 2L, "TestAP", 12L);
Mockito.verify(equipmentMetricsCollectorInterface, Mockito.times(1)).publishEventsBulk(Mockito.anyList());
}
@Test @Test
public void testpopulateNetworkProbeMetrics() throws Exception { public void testpopulateNetworkProbeMetrics() throws Exception {
@@ -297,6 +366,74 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
return bssidList; return bssidList;
} }
private OpensyncStats.CallStart getDefaultCallStart() {
OpensyncStats.CallStart.Builder callStartBuilder = OpensyncStats.CallStart.newBuilder();
callStartBuilder.setBand(RadioBandType.BAND5G);
callStartBuilder.setChannel(40);
callStartBuilder.addCodecs("110 opus/48000/2");
callStartBuilder.addCodecs("102 iLBC/8000");
callStartBuilder.setClientMac(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes()));
callStartBuilder.setDeviceInfo("Test Device");
callStartBuilder.setProviderDomain("skype");
callStartBuilder.setSessionId(123L);
callStartBuilder.setWifiSessionId(1234L);
return callStartBuilder.build();
}
private OpensyncStats.CallStop getDefaultCallStop() {
OpensyncStats.CallStop.Builder callStopBuilder = OpensyncStats.CallStop.newBuilder();
callStopBuilder.setBand(RadioBandType.BAND5G);
callStopBuilder.setChannel(40);
callStopBuilder.addCodecs("110 opus/48000/2");
callStopBuilder.addCodecs("102 iLBC/8000");
callStopBuilder.setClientMac(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes()));
callStopBuilder.setCallDuration(1230);
callStopBuilder.setProviderDomain("skype");
callStopBuilder.setSessionId(123L);
callStopBuilder.setWifiSessionId(1234L);
callStopBuilder.setReason(OpensyncStats.CallStop.CallStopReason.BYE_OK);
callStopBuilder.addStats(getRtpFlowStats(121, 1380, 1400,3000, 119, 3, 205,350));
return callStopBuilder.build();
}
private OpensyncStats.RtpFlowStats getRtpFlowStats(int codec, int jitter, int latency, int totalPackets,
int totalPacketsLost, int mos, int firstRtpSeq, int lastRtpSeq) {
OpensyncStats.RtpFlowStats.Builder rtpFlowStatsBuilder = OpensyncStats.RtpFlowStats.newBuilder();
rtpFlowStatsBuilder.setCodec(codec);
rtpFlowStatsBuilder.setBlockCodecs(ByteString.copyFrom(new byte[] { (byte) 0xe6, 0x1 }));
rtpFlowStatsBuilder.setDirection(OpensyncStats.RtpFlowStats.RtpFlowDirection.RTP_DOWNSTREAM);
rtpFlowStatsBuilder.setRtpFlowType(OpensyncStats.RtpFlowStats.RtpFlowType.RTP_VOICE);
rtpFlowStatsBuilder.setJitter(jitter);
rtpFlowStatsBuilder.setLatency(latency);
rtpFlowStatsBuilder.setTotalPacketsSent(totalPackets);
rtpFlowStatsBuilder.setTotalPacketsLost(totalPacketsLost);
rtpFlowStatsBuilder.setMosx100(mos);
rtpFlowStatsBuilder.setRtpSeqFirst(firstRtpSeq);
rtpFlowStatsBuilder.setRtpSeqLast(lastRtpSeq);
return rtpFlowStatsBuilder.build();
}
private OpensyncStats.CallReport getDefaultCallReport(OpensyncStats.CallReport.CallReportReason reason, int codec,
int jitter, int latency, int totalPackets, int totalPacketsLost,
int mos, int firstRtpSeq, int lastRtpSeq) {
OpensyncStats.CallReport.Builder callReportBuilder = OpensyncStats.CallReport.newBuilder();
callReportBuilder.setBand(RadioBandType.BAND5G);
callReportBuilder.setChannel(40);
callReportBuilder.addCodecs("110 opus/48000/2");
callReportBuilder.addCodecs("102 iLBC/8000");
callReportBuilder.setClientMac(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes()));
callReportBuilder.setProviderDomain("skype");
callReportBuilder.setSessionId(123L);
callReportBuilder.setWifiSessionId(1234L);
callReportBuilder.setReason(reason);
callReportBuilder.addStats(getRtpFlowStats(codec, jitter, latency, totalPackets, totalPacketsLost,
mos, firstRtpSeq, lastRtpSeq));
return callReportBuilder.build();
}
private List<EventReport> getOpensyncStatsEventReportsList() { private List<EventReport> getOpensyncStatsEventReportsList() {
@@ -342,7 +479,14 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
List<sts.OpensyncStats.EventReport.ClientSession> clientSessionList = new ArrayList<>(); List<sts.OpensyncStats.EventReport.ClientSession> clientSessionList = new ArrayList<>();
clientSessionList.add(clientSessionBuilder.build()); clientSessionList.add(clientSessionBuilder.build());
sts.OpensyncStats.EventReport.ChannelSwitchEvent.Builder channelSwitchEventBuilder = sts.OpensyncStats.EventReport.ChannelSwitchEvent.getDefaultInstance().toBuilder();
channelSwitchEventBuilder.setBand(RadioBandType.BAND5GL).setChannel(40).setReason(ChannelSwitchReason.high_interference).setTimestampMs(System.currentTimeMillis());
List<ChannelSwitchEvent> channelSwitchEventList = new ArrayList<>();
channelSwitchEventList.add(channelSwitchEventBuilder.build());
eventReportBuilder.addAllClientSession(clientSessionList); eventReportBuilder.addAllClientSession(clientSessionList);
eventReportBuilder.addAllChannelSwitch(channelSwitchEventList);
eventReportList.add(eventReportBuilder.build()); eventReportList.add(eventReportBuilder.build());

View File

@@ -22,11 +22,7 @@
<artifactId>tip-wlan-opensync-protobuf</artifactId> <artifactId>tip-wlan-opensync-protobuf</artifactId>
<version>${tip-wlan-cloud.release.version}</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency>
<artifactId>customer-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency> <dependency>
<artifactId>equipment-models</artifactId> <artifactId>equipment-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
@@ -47,11 +43,7 @@
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>${tip-wlan-cloud.release.version}</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency>
<artifactId>client-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency> <dependency>
<groupId>com.vmware.ovsdb</groupId> <groupId>com.vmware.ovsdb</groupId>

View File

@@ -12,7 +12,7 @@
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>opensync-ext-interface</artifactId> <artifactId>opensync-gateway</artifactId>
<version>${tip-wlan-cloud.release.version}</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@@ -2,7 +2,7 @@
"model_type": "Equipment", "model_type": "Equipment",
"id": 51, "id": 51,
"customerId": 2, "customerId": 2,
"profileId": 5, "profileId": 12,
"locationId": 8, "locationId": 8,
"equipmentType": "AP", "equipmentType": "AP",
"inventoryId": "Test_Client_21P10C68818122", "inventoryId": "Test_Client_21P10C68818122",

View File

@@ -10,55 +10,48 @@
"countryCode" : "ca", "countryCode" : "ca",
"maintenanceWindow" : null, "maintenanceWindow" : null,
"rrmEnabled" : true, "rrmEnabled" : true,
"dailyRebalancingDetails" : { "dailyActivityDetails" : {
"SUNDAY" : { "SUNDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"MONDAY" : { "MONDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"TUESDAY" : { "TUESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"WEDNESDAY" : { "WEDNESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"THURSDAY" : { "THURSDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"FRIDAY" : { "FRIDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"SATURDAY" : { "SATURDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
} }
} }
}, },

View File

@@ -1,6 +1,6 @@
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 17, "id": 12,
"customerId": 2, "customerId": 2,
"profileType": "equipment_ap", "profileType": "equipment_ap",
"name": "ApProfile-3-radios", "name": "ApProfile-3-radios",
@@ -20,6 +20,11 @@
"syntheticClientEnabled": true, "syntheticClientEnabled": true,
"ledControlEnabled": true, "ledControlEnabled": true,
"equipmentDiscovery": false, "equipmentDiscovery": false,
"greTunnelName": null,
"greParentIfName": null,
"greLocalInetAddr": null,
"greRemoteInetAddr": null,
"greRemoteMacAddr": null,
"radioMap": { "radioMap": {
"is2dot4GHz": { "is2dot4GHz": {
"model_type": "RadioProfileConfiguration", "model_type": "RadioProfileConfiguration",
@@ -39,12 +44,13 @@
}, },
"profileType": "equipment_ap" "profileType": "equipment_ap"
}, },
"createdTimestamp": 1602182806348, "createdTimestamp": 1606778369934,
"lastModifiedTimestamp": 1602182806348, "lastModifiedTimestamp": 1606778443413,
"childProfileIds": [ "childProfileIds": [
2, 16,
5, 5,
10,
11, 11,
13 15
] ]
} }

View File

@@ -1,16 +1,16 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 10, "id": 24,
"customerId": 2, "customerId": 2,
"profileType": "hotspot_2pt0", "profileType": "passpoint",
"name": "TipWlan-Hotspot20-Config", "name": "TipWlan-Passpoint-Config",
"details": { "details": {
"model_type": "Hotspot2Profile", "model_type": "PasspointProfile",
"enableInterworkingAndHs20": true, "enableInterworkingAndHs20": true,
"hessid": null, "hessid": null,
"accessNetworkType": "free_public_network", "passpointAccessNetworkType": "free_public_network",
"networkAuthenticationType": "acceptance_of_terms_and_conditions", "passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
"additionalStepsRequiredForAccess": 0, "additionalStepsRequiredForAccess": 0,
"deauthRequestTimeout": 0, "deauthRequestTimeout": 0,
"operatingClass": 0, "operatingClass": 0,
@@ -29,10 +29,10 @@
"internetConnectivity": true, "internetConnectivity": true,
"connectionCapabilitySet": [ "connectionCapabilitySet": [
{ {
"model_type": "ConnectionCapability", "model_type": "PasspointConnectionCapability",
"connectionCapabilitiesPortNumber": 8888, "connectionCapabilitiesPortNumber": 8888,
"connectionCapabilitiesIpProtocol": "TCP", "connectionCapabilitiesStatus": "open",
"connectionCapabilitiesStatus": "open" "connectionCapabilitiesIpProtocol": "TCP"
} }
], ],
"ipAddressTypeAvailability": "public_IPv4_address_available", "ipAddressTypeAvailability": "public_IPv4_address_available",
@@ -45,28 +45,27 @@
"disableDownstreamGroupAddressedForwarding": false, "disableDownstreamGroupAddressedForwarding": false,
"enable2pt4GHz": true, "enable2pt4GHz": true,
"enable5GHz": true, "enable5GHz": true,
"associatedAccessSsidNames": [ "associatedAccessSsidProfileIds": [
"TipWlan-cloud-hotspot-access" 15
], ],
"osuSsidName": "TipWlan-cloud-3-radios", "osuSsidProfileId": 16,
"operatorProfileName": "TipWlan-Hotspot20-Operator", "passpointOperatorProfileId": 17,
"venueProfileName": "TipWlan-Hotspot20-Venue", "passpointVenueProfileId": 18,
"idProviderProfileNames": [ "passpointOsuProviderProfileIds": [
"TipWlan-Hotspot20-OSU-Provider-2", 19,
"TipWlan-Hotspot20-OSU-Provider" 20
], ],
"profileType": "hotspot_2pt0", "accessNetworkType": "free_public_network",
"associatedSsids": [ "networkAuthenticationType": "acceptance_of_terms_and_conditions",
"TipWlan-cloud-hotspot-access" "profileType": "passpoint"
]
}, },
"createdTimestamp": 1602182806040, "createdTimestamp": 1606778370807,
"lastModifiedTimestamp": 1602182806040, "lastModifiedTimestamp": 1606778370807,
"childProfileIds": [ "childProfileIds": [
6, 17,
7, 18,
8, 19,
9 20
] ]
} }
] ]

View File

@@ -1,16 +1,16 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 8, "id": 19,
"customerId": 2, "customerId": 2,
"profileType": "id_provider", "profileType": "passpoint_osu_id_provider",
"name": "TipWlan-Hotspot20-OSU-Provider", "name": "TipWlan-Passpoint-OSU-Provider",
"details": { "details": {
"model_type": "Hotspot20IdProviderProfile", "model_type": "PasspointOsuProviderProfile",
"domainName": "rogers.com", "domainName": "rogers.com",
"mccMncList": [ "mccMncList": [
{ {
"model_type": "MccMnc", "model_type": "PasspointMccMnc",
"mcc": 302, "mcc": 302,
"mnc": 720, "mnc": 720,
"iso": "ca", "iso": "ca",
@@ -22,7 +22,7 @@
], ],
"naiRealmList": [ "naiRealmList": [
{ {
"model_type": "NaiRealmInformation", "model_type": "PasspointNaiRealmInformation",
"naiRealms": [ "naiRealms": [
"rogers.com" "rogers.com"
], ],
@@ -44,7 +44,7 @@
], ],
"osuIconList": [ "osuIconList": [
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -55,7 +55,7 @@
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "fra", "languageCode": "fra",
@@ -66,7 +66,7 @@
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -77,10 +77,10 @@
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
} }
], ],
"osuServerUri": "https://example.com/osu/rogers/", "osuServerUri": "https://example.com/osu/rogers",
"osuFriendlyName": [ "osuFriendlyName": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example provider rogers", "dupleName": "Example provider rogers",
@@ -88,7 +88,7 @@
"asDuple": "eng:Example provider rogers" "asDuple": "eng:Example provider rogers"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur rogers", "dupleName": "Exemple de fournisseur rogers",
@@ -104,7 +104,7 @@
], ],
"osuServiceDescription": [ "osuServiceDescription": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example services rogers", "dupleName": "Example services rogers",
@@ -112,7 +112,7 @@
"asDuple": "eng:Example services rogers" "asDuple": "eng:Example services rogers"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemples de services rogers", "dupleName": "Exemples de services rogers",
@@ -120,24 +120,31 @@
"asDuple": "fra:Exemples de services rogers" "asDuple": "fra:Exemples de services rogers"
} }
], ],
"profileType": "id_provider" "roamingOi": [
1,
2,
3,
4
],
"profileType": "passpoint_osu_id_provider"
}, },
"createdTimestamp": 1602182805654, "createdTimestamp": 1606778370345,
"lastModifiedTimestamp": 1602182805654, "lastModifiedTimestamp": 1606778370345,
"childProfileIds": [] "childProfileIds": [
}, ]
{ },
{
"model_type": "Profile", "model_type": "Profile",
"id": 9, "id": 20,
"customerId": 2, "customerId": 2,
"profileType": "id_provider", "profileType": "passpoint_osu_id_provider",
"name": "TipWlan-Hotspot20-OSU-Provider-2", "name": "TipWlan-Passpoint-OSU-Provider-2",
"details": { "details": {
"model_type": "Hotspot20IdProviderProfile", "model_type": "PasspointOsuProviderProfile",
"domainName": "telus.com", "domainName": "telus.com",
"mccMncList": [ "mccMncList": [
{ {
"model_type": "MccMnc", "model_type": "PasspointMccMnc",
"mcc": 302, "mcc": 302,
"mnc": 220, "mnc": 220,
"iso": "ca", "iso": "ca",
@@ -149,7 +156,7 @@
], ],
"naiRealmList": [ "naiRealmList": [
{ {
"model_type": "NaiRealmInformation", "model_type": "PasspointNaiRealmInformation",
"naiRealms": [ "naiRealms": [
"telus.com" "telus.com"
], ],
@@ -171,7 +178,7 @@
], ],
"osuIconList": [ "osuIconList": [
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -182,7 +189,7 @@
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "fra", "languageCode": "fra",
@@ -193,7 +200,7 @@
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -204,10 +211,10 @@
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
} }
], ],
"osuServerUri": "https://example.com/osu/telus/", "osuServerUri": "https://example.com/osu/telus",
"osuFriendlyName": [ "osuFriendlyName": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example provider telus", "dupleName": "Example provider telus",
@@ -215,7 +222,7 @@
"asDuple": "eng:Example provider telus" "asDuple": "eng:Example provider telus"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur telus", "dupleName": "Exemple de fournisseur telus",
@@ -231,7 +238,7 @@
], ],
"osuServiceDescription": [ "osuServiceDescription": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example services telus", "dupleName": "Example services telus",
@@ -239,7 +246,7 @@
"asDuple": "eng:Example services telus" "asDuple": "eng:Example services telus"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemples de services telus", "dupleName": "Exemples de services telus",
@@ -247,10 +254,17 @@
"asDuple": "fra:Exemples de services telus" "asDuple": "fra:Exemples de services telus"
} }
], ],
"profileType": "id_provider" "roamingOi": [
1,
2,
3,
4
],
"profileType": "passpoint_osu_id_provider"
}, },
"createdTimestamp": 1602182805660, "createdTimestamp": 1606778370351,
"lastModifiedTimestamp": 1602182805660, "lastModifiedTimestamp": 1606778370351,
"childProfileIds": [] "childProfileIds": [
}
] ]
}
]

View File

@@ -1,16 +1,16 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 2, "id": 10,
"customerId": 2, "customerId": 2,
"profileType": "metrics", "profileType": "service_metrics_collection_config",
"name": "Metrics-Profile-3-radios", "name": "Metrics-Profile-3-Radios",
"details": { "details": {
"model_type": "ServiceMetricsCollectionConfigProfile", "model_type": "ServiceMetricsCollectionConfigProfile",
"radioTypes": [ "radioTypes": [
"is5GHzU",
"is5GHzL", "is5GHzL",
"is2dot4GHz" "is2dot4GHz",
"is5GHzU"
], ],
"serviceMetricDataTypes": [ "serviceMetricDataTypes": [
"ApNode", "ApNode",
@@ -29,9 +29,9 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW", "radioType": "is5GHzL",
"radioType": "is5GHzU", "serviceMetricDataType": "ApNode",
"serviceMetricDataType": "ApNode" "statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -41,9 +41,9 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW", "radioType": "is5GHzU",
"radioType": "is5GHzL", "serviceMetricDataType": "ApNode",
"serviceMetricDataType": "ApNode" "statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -53,9 +53,9 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode" "serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -65,33 +65,33 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL",
"serviceMetricDataType": "ApNode"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU", "radioType": "is5GHzU",
"serviceMetricDataType": "ApNode" "serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
} }
], ],
"ApSsid": [ "ApSsid": [
@@ -99,7 +99,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is2dot4GHz", "radioType": "is5GHzU",
"serviceMetricDataType": "ApSsid" "serviceMetricDataType": "ApSsid"
}, },
{ {
@@ -113,7 +113,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is5GHzU", "radioType": "is2dot4GHz",
"serviceMetricDataType": "ApSsid" "serviceMetricDataType": "ApSsid"
} }
], ],
@@ -122,7 +122,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is2dot4GHz", "radioType": "is5GHzU",
"serviceMetricDataType": "Client" "serviceMetricDataType": "Client"
}, },
{ {
@@ -136,7 +136,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is5GHzU", "radioType": "is2dot4GHz",
"serviceMetricDataType": "Client" "serviceMetricDataType": "Client"
} }
], ],
@@ -144,38 +144,14 @@
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 120,
"channelSurveyType": "ON_CHANNEL", "channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL", "radioType": "is5GHzL",
"serviceMetricDataType": "Channel" "serviceMetricDataType": "Channel",
}, "statsReportFormat": "RAW"
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -185,95 +161,83 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW", "radioType": "is5GHzU",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL", "radioType": "is5GHzL",
"serviceMetricDataType": "Channel" "serviceMetricDataType": "Channel",
}, "statsReportFormat": "RAW"
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel"
} }
], ],
"Neighbour": [ "Neighbour": [
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 120,
"channelSurveyType": "ON_CHANNEL", "channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU", "radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour" "serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 120, "reportingIntervalSeconds": 60,
"channelSurveyType": "OFF_CHANNEL", "channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL", "radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour" "serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -283,16 +247,53 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour" "serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
} }
] ]
}, },
"profileType": "metrics" "profileType": "service_metrics_collection_config"
}, },
"createdTimestamp": 1602113058699, "createdTimestamp": 1606778369931,
"lastModifiedTimestamp": 1602113058699, "lastModifiedTimestamp": 1606778369931,
"childProfileIds": [] "childProfileIds": [
]
} }
] ]

View File

@@ -1,25 +1,25 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 6, "id": 17,
"customerId": 2, "customerId": 2,
"profileType": "operator", "profileType": "passpoint_operator",
"name": "TipWlan-Hotspot20-Operator", "name": "TipWlan-Passpoint-Operator",
"details": { "details": {
"model_type": "OperatorProfile", "model_type": "PasspointOperatorProfile",
"serverOnlyAuthenticatedL2EncryptionNetwork": false, "serverOnlyAuthenticatedL2EncryptionNetwork": false,
"x509CertificateLocation": "/etc/ca.pem", "x509CertificateLocation": "/etc/ca.pem",
"operatorFriendlyName": [ "operatorFriendlyName": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Default friendly operator name", "dupleName": "Default friendly passpoint_operator name",
"defaultDupleSeparator": ":", "defaultDupleSeparator": ":",
"asDuple": "eng:Default friendly operator name" "asDuple": "eng:Default friendly passpoint_operator name"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Nom de l'opérateur convivial par défaut", "dupleName": "Nom de l'opérateur convivial par défaut",
@@ -27,10 +27,11 @@
"asDuple": "fra:Nom de l'opérateur convivial par défaut" "asDuple": "fra:Nom de l'opérateur convivial par défaut"
} }
], ],
"profileType": "operator" "profileType": "passpoint_operator"
}, },
"createdTimestamp": 1602113058719, "createdTimestamp": 1606778369945,
"lastModifiedTimestamp": 1602113058719, "lastModifiedTimestamp": 1606778369945,
"childProfileIds": [] "childProfileIds": [
]
} }
] ]

View File

@@ -1,6 +1,6 @@
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 13, "id": 11,
"customerId": 2, "customerId": 2,
"profileType": "rf", "profileType": "rf",
"name": "TipWlan-rf", "name": "TipWlan-rf",
@@ -9,16 +9,15 @@
"rfConfigMap": { "rfConfigMap": {
"is5GHz": { "is5GHz": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is5GHz", "radioType": "is5GHz",
"radioMode": "modeAC", "radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz", "channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -26,17 +25,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -46,26 +40,31 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}, }
"minAutoCellSize": -65
}, },
"is2dot4GHz": { "is2dot4GHz": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"radioMode": "modeN", "radioMode": "modeN",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is20MHz", "channelBandwidth": "is20MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -73,17 +72,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -93,26 +87,31 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 20, "dropInSnrPercentage": 20,
"minLoadFactor": 50 "minLoadFactor": 50
}, }
"minAutoCellSize": -65
}, },
"is5GHzU": { "is5GHzU": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is5GHzU", "radioType": "is5GHzU",
"radioMode": "modeAC", "radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz", "channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -120,17 +119,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -140,26 +134,31 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}, }
"minAutoCellSize": -65
}, },
"is5GHzL": { "is5GHzL": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is5GHzL", "radioType": "is5GHzL",
"radioMode": "modeAC", "radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz", "channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -167,17 +166,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -187,18 +181,24 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}, }
"minAutoCellSize": -65
} }
}, },
"profileType": "rf" "profileType": "rf"
}, },
"createdTimestamp": 1602182806063, "createdTimestamp": 1606778369933,
"lastModifiedTimestamp": 1602182806063, "lastModifiedTimestamp": 1606778369933,
"childProfileIds": [] "childProfileIds": []
} }

View File

@@ -4,72 +4,6 @@
"id": 5, "id": 5,
"customerId": 2, "customerId": 2,
"profileType": "ssid", "profileType": "ssid",
"name": "TipWlan-cloud-hotspot-access",
"details": {
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-hotspot-access",
"appliedRadios": [
"is5GHzU",
"is5GHzL",
"is2dot4GHz"
],
"ssidAdminState": "enabled",
"secureMode": "wpa2PSK",
"vlanId": 1,
"keyStr": "testing123",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false,
"radioBasedConfigs": {
"is5GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is2dot4GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzL": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1602113058718,
"lastModifiedTimestamp": 1602113059547,
"childProfileIds": [
10
]
},
{
"model_type": "Profile",
"id": 11,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-3-radios", "name": "TipWlan-cloud-3-radios",
"details": { "details": {
"model_type": "SsidConfiguration", "model_type": "SsidConfiguration",
@@ -80,13 +14,15 @@
"is5GHzU" "is5GHzU"
], ],
"ssidAdminState": "enabled", "ssidAdminState": "enabled",
"secureMode": "open", "secureMode": "wpa2OnlyPSK",
"vlanId": 1, "vlanId": 1,
"keyStr": null, "keyStr": "openwifi",
"broadcastSsid": "enabled", "broadcastSsid": "enabled",
"keyRefresh": 0, "keyRefresh": 0,
"noLocalSubnets": false, "noLocalSubnets": false,
"radiusServiceName": null, "radiusServiceName": null,
"radiusAccountingServiceName": null,
"radiusAcountingServiceInterval": null,
"captivePortalId": null, "captivePortalId": null,
"bandwidthLimitDown": 0, "bandwidthLimitDown": 0,
"bandwidthLimitUp": 0, "bandwidthLimitUp": 0,
@@ -94,7 +30,7 @@
"clientBandwidthLimitUp": 0, "clientBandwidthLimitUp": 0,
"videoTrafficOnly": false, "videoTrafficOnly": false,
"radioBasedConfigs": { "radioBasedConfigs": {
"is5GHz": { "is5GHzL": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
@@ -106,17 +42,83 @@
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
}, },
"is5GHzU": { "is5GHz": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
}, },
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": "BRIDGE",
"profileType": "ssid"
},
"createdTimestamp": 1606778369598,
"lastModifiedTimestamp": 1606778369598,
"childProfileIds": [
]
},
{
"model_type": "Profile",
"id": 15,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-passpoint-access",
"details": {
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-passpoint-access",
"appliedRadios": [
"is5GHzL",
"is5GHzU"
],
"ssidAdminState": "enabled",
"secureMode": "wpa2PSK",
"vlanId": 1,
"keyStr": "testing123",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"radiusAccountingServiceName": null,
"radiusAcountingServiceInterval": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false,
"radioBasedConfigs": {
"is5GHzL": { "is5GHzL": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
},
"is2dot4GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
} }
}, },
"bonjourGatewayProfileId": null, "bonjourGatewayProfileId": null,
@@ -125,10 +127,77 @@
"forwardMode": null, "forwardMode": null,
"profileType": "ssid" "profileType": "ssid"
}, },
"createdTimestamp": 1602183994766, "createdTimestamp": 1606778369943,
"lastModifiedTimestamp": 1602183994766, "lastModifiedTimestamp": 1606778370811,
"childProfileIds": [ "childProfileIds": [
10 24
]
},
{
"model_type": "Profile",
"id": 16,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-passpoint-osu",
"details": {
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-passpoint-osu",
"appliedRadios": [
"is2dot4GHz"
],
"ssidAdminState": "enabled",
"secureMode": "open",
"vlanId": 1,
"keyStr": null,
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"radiusAccountingServiceName": null,
"radiusAcountingServiceInterval": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false,
"radioBasedConfigs": {
"is5GHzL": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is2dot4GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1606778369944,
"lastModifiedTimestamp": 1606778370352,
"childProfileIds": [
19,
20
] ]
} }
] ]

View File

@@ -1,15 +1,15 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 7, "id": 18,
"customerId": 2, "customerId": 2,
"profileType": "venue", "profileType": "passpoint_venue",
"name": "TipWlan-Hotspot20-Venue", "name": "TipWlan-Passpoint-Venue",
"details": { "details": {
"model_type": "VenueProfile", "model_type": "PasspointVenueProfile",
"venueNameSet": [ "venueNameSet": [
{ {
"model_type": "VenueName", "model_type": "PasspointVenueName",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemple de lieu", "dupleName": "Exemple de lieu",
@@ -18,25 +18,26 @@
"asDuple": "fra:Exemple de lieu" "asDuple": "fra:Exemple de lieu"
}, },
{ {
"model_type": "VenueName", "model_type": "PasspointVenueName",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example venue", "dupleName": "Example passpoint_venue",
"defaultDupleSeparator": ":", "defaultDupleSeparator": ":",
"venueUrl": "http://www.example.com/info-eng", "venueUrl": "http://www.example.com/info-eng",
"asDuple": "eng:Example venue" "asDuple": "eng:Example passpoint_venue"
} }
], ],
"venueTypeAssignment": { "venueTypeAssignment": {
"model_type": "VenueTypeAssignment", "model_type": "PasspointVenueTypeAssignment",
"venueDescription": "Research and Development Facility", "venueDescription": "Research and Development Facility",
"venueGroupId": 2, "venueGroupId": 2,
"venueTypeId": 8 "venueTypeId": 8
}, },
"profileType": "venue" "profileType": "passpoint_venue"
}, },
"createdTimestamp": 1602113058725, "createdTimestamp": 1606778369950,
"lastModifiedTimestamp": 1602113058725, "lastModifiedTimestamp": 1606778369950,
"childProfileIds": [] "childProfileIds": [
]
} }
] ]

View File

@@ -7,6 +7,7 @@
<listEntry value="1"/> <listEntry value="1"/>
</listAttribute> </listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/> <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES" value="true"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/> <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH"> <listAttribute key="org.eclipse.jdt.launching.CLASSPATH">

View File

@@ -2,7 +2,7 @@
"model_type": "Equipment", "model_type": "Equipment",
"id": 51, "id": 51,
"customerId": 2, "customerId": 2,
"profileId": 5, "profileId": 12,
"locationId": 8, "locationId": 8,
"equipmentType": "AP", "equipmentType": "AP",
"inventoryId": "Test_Client_21P10C68818122", "inventoryId": "Test_Client_21P10C68818122",

View File

@@ -10,55 +10,48 @@
"countryCode" : "ca", "countryCode" : "ca",
"maintenanceWindow" : null, "maintenanceWindow" : null,
"rrmEnabled" : true, "rrmEnabled" : true,
"dailyRebalancingDetails" : { "dailyActivityDetails" : {
"SUNDAY" : { "SUNDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"MONDAY" : { "MONDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"TUESDAY" : { "TUESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"WEDNESDAY" : { "WEDNESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"THURSDAY" : { "THURSDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"FRIDAY" : { "FRIDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"SATURDAY" : { "SATURDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
} }
} }
}, },

View File

@@ -10,55 +10,48 @@
"countryCode" : "usa", "countryCode" : "usa",
"maintenanceWindow" : null, "maintenanceWindow" : null,
"rrmEnabled" : true, "rrmEnabled" : true,
"dailyRebalancingDetails" : { "dailyActivityDetails" : {
"SUNDAY" : { "SUNDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"MONDAY" : { "MONDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"TUESDAY" : { "TUESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"WEDNESDAY" : { "WEDNESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"THURSDAY" : { "THURSDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"FRIDAY" : { "FRIDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"SATURDAY" : { "SATURDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
} }
} }
}, },

View File

@@ -1,6 +1,6 @@
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 17, "id": 12,
"customerId": 2, "customerId": 2,
"profileType": "equipment_ap", "profileType": "equipment_ap",
"name": "ApProfile-3-radios", "name": "ApProfile-3-radios",
@@ -20,6 +20,11 @@
"syntheticClientEnabled": true, "syntheticClientEnabled": true,
"ledControlEnabled": true, "ledControlEnabled": true,
"equipmentDiscovery": false, "equipmentDiscovery": false,
"greTunnelName": null,
"greParentIfName": null,
"greLocalInetAddr": null,
"greRemoteInetAddr": null,
"greRemoteMacAddr": null,
"radioMap": { "radioMap": {
"is2dot4GHz": { "is2dot4GHz": {
"model_type": "RadioProfileConfiguration", "model_type": "RadioProfileConfiguration",
@@ -39,12 +44,13 @@
}, },
"profileType": "equipment_ap" "profileType": "equipment_ap"
}, },
"createdTimestamp": 1602182806348, "createdTimestamp": 1606778369934,
"lastModifiedTimestamp": 1602182806348, "lastModifiedTimestamp": 1606778443413,
"childProfileIds": [ "childProfileIds": [
2, 16,
5, 5,
10,
11, 11,
13 15
] ]
} }

View File

@@ -1,16 +1,16 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 10, "id": 24,
"customerId": 2, "customerId": 2,
"profileType": "hotspot_2pt0", "profileType": "passpoint",
"name": "TipWlan-Hotspot20-Config", "name": "TipWlan-Passpoint-Config",
"details": { "details": {
"model_type": "Hotspot2Profile", "model_type": "PasspointProfile",
"enableInterworkingAndHs20": true, "enableInterworkingAndHs20": true,
"hessid": null, "hessid": null,
"accessNetworkType": "free_public_network", "passpointAccessNetworkType": "free_public_network",
"networkAuthenticationType": "acceptance_of_terms_and_conditions", "passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
"additionalStepsRequiredForAccess": 0, "additionalStepsRequiredForAccess": 0,
"deauthRequestTimeout": 0, "deauthRequestTimeout": 0,
"operatingClass": 0, "operatingClass": 0,
@@ -29,10 +29,10 @@
"internetConnectivity": true, "internetConnectivity": true,
"connectionCapabilitySet": [ "connectionCapabilitySet": [
{ {
"model_type": "ConnectionCapability", "model_type": "PasspointConnectionCapability",
"connectionCapabilitiesPortNumber": 8888, "connectionCapabilitiesPortNumber": 8888,
"connectionCapabilitiesIpProtocol": "TCP", "connectionCapabilitiesStatus": "open",
"connectionCapabilitiesStatus": "open" "connectionCapabilitiesIpProtocol": "TCP"
} }
], ],
"ipAddressTypeAvailability": "public_IPv4_address_available", "ipAddressTypeAvailability": "public_IPv4_address_available",
@@ -45,28 +45,27 @@
"disableDownstreamGroupAddressedForwarding": false, "disableDownstreamGroupAddressedForwarding": false,
"enable2pt4GHz": true, "enable2pt4GHz": true,
"enable5GHz": true, "enable5GHz": true,
"associatedAccessSsidNames": [ "associatedAccessSsidProfileIds": [
"TipWlan-cloud-hotspot-access" 15
], ],
"osuSsidName": "TipWlan-cloud-3-radios", "osuSsidProfileId": 16,
"operatorProfileName": "TipWlan-Hotspot20-Operator", "passpointOperatorProfileId": 17,
"venueProfileName": "TipWlan-Hotspot20-Venue", "passpointVenueProfileId": 18,
"idProviderProfileNames": [ "passpointOsuProviderProfileIds": [
"TipWlan-Hotspot20-OSU-Provider-2", 19,
"TipWlan-Hotspot20-OSU-Provider" 20
], ],
"profileType": "hotspot_2pt0", "accessNetworkType": "free_public_network",
"associatedSsids": [ "networkAuthenticationType": "acceptance_of_terms_and_conditions",
"TipWlan-cloud-hotspot-access" "profileType": "passpoint"
]
}, },
"createdTimestamp": 1602182806040, "createdTimestamp": 1606778370807,
"lastModifiedTimestamp": 1602182806040, "lastModifiedTimestamp": 1606778370807,
"childProfileIds": [ "childProfileIds": [
6, 17,
7, 18,
8, 19,
9 20
] ]
} }
] ]

View File

@@ -1,16 +1,16 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 8, "id": 19,
"customerId": 2, "customerId": 2,
"profileType": "id_provider", "profileType": "passpoint_osu_id_provider",
"name": "TipWlan-Hotspot20-OSU-Provider", "name": "TipWlan-Passpoint-OSU-Provider",
"details": { "details": {
"model_type": "Hotspot20IdProviderProfile", "model_type": "PasspointOsuProviderProfile",
"domainName": "rogers.com", "domainName": "rogers.com",
"mccMncList": [ "mccMncList": [
{ {
"model_type": "MccMnc", "model_type": "PasspointMccMnc",
"mcc": 302, "mcc": 302,
"mnc": 720, "mnc": 720,
"iso": "ca", "iso": "ca",
@@ -22,7 +22,7 @@
], ],
"naiRealmList": [ "naiRealmList": [
{ {
"model_type": "NaiRealmInformation", "model_type": "PasspointNaiRealmInformation",
"naiRealms": [ "naiRealms": [
"rogers.com" "rogers.com"
], ],
@@ -44,7 +44,7 @@
], ],
"osuIconList": [ "osuIconList": [
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -55,7 +55,7 @@
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "fra", "languageCode": "fra",
@@ -66,7 +66,7 @@
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -77,10 +77,10 @@
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
} }
], ],
"osuServerUri": "https://example.com/osu/rogers/", "osuServerUri": "https://example.com/osu/rogers",
"osuFriendlyName": [ "osuFriendlyName": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example provider rogers", "dupleName": "Example provider rogers",
@@ -88,7 +88,7 @@
"asDuple": "eng:Example provider rogers" "asDuple": "eng:Example provider rogers"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur rogers", "dupleName": "Exemple de fournisseur rogers",
@@ -104,7 +104,7 @@
], ],
"osuServiceDescription": [ "osuServiceDescription": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example services rogers", "dupleName": "Example services rogers",
@@ -112,7 +112,7 @@
"asDuple": "eng:Example services rogers" "asDuple": "eng:Example services rogers"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemples de services rogers", "dupleName": "Exemples de services rogers",
@@ -120,24 +120,31 @@
"asDuple": "fra:Exemples de services rogers" "asDuple": "fra:Exemples de services rogers"
} }
], ],
"profileType": "id_provider" "roamingOi": [
1,
2,
3,
4
],
"profileType": "passpoint_osu_id_provider"
}, },
"createdTimestamp": 1602182805654, "createdTimestamp": 1606778370345,
"lastModifiedTimestamp": 1602182805654, "lastModifiedTimestamp": 1606778370345,
"childProfileIds": [] "childProfileIds": [
}, ]
{ },
{
"model_type": "Profile", "model_type": "Profile",
"id": 9, "id": 20,
"customerId": 2, "customerId": 2,
"profileType": "id_provider", "profileType": "passpoint_osu_id_provider",
"name": "TipWlan-Hotspot20-OSU-Provider-2", "name": "TipWlan-Passpoint-OSU-Provider-2",
"details": { "details": {
"model_type": "Hotspot20IdProviderProfile", "model_type": "PasspointOsuProviderProfile",
"domainName": "telus.com", "domainName": "telus.com",
"mccMncList": [ "mccMncList": [
{ {
"model_type": "MccMnc", "model_type": "PasspointMccMnc",
"mcc": 302, "mcc": 302,
"mnc": 220, "mnc": 220,
"iso": "ca", "iso": "ca",
@@ -149,7 +156,7 @@
], ],
"naiRealmList": [ "naiRealmList": [
{ {
"model_type": "NaiRealmInformation", "model_type": "PasspointNaiRealmInformation",
"naiRealms": [ "naiRealms": [
"telus.com" "telus.com"
], ],
@@ -171,7 +178,7 @@
], ],
"osuIconList": [ "osuIconList": [
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -182,7 +189,7 @@
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "fra", "languageCode": "fra",
@@ -193,7 +200,7 @@
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -204,10 +211,10 @@
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
} }
], ],
"osuServerUri": "https://example.com/osu/telus/", "osuServerUri": "https://example.com/osu/telus",
"osuFriendlyName": [ "osuFriendlyName": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example provider telus", "dupleName": "Example provider telus",
@@ -215,7 +222,7 @@
"asDuple": "eng:Example provider telus" "asDuple": "eng:Example provider telus"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur telus", "dupleName": "Exemple de fournisseur telus",
@@ -231,7 +238,7 @@
], ],
"osuServiceDescription": [ "osuServiceDescription": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example services telus", "dupleName": "Example services telus",
@@ -239,7 +246,7 @@
"asDuple": "eng:Example services telus" "asDuple": "eng:Example services telus"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemples de services telus", "dupleName": "Exemples de services telus",
@@ -247,10 +254,17 @@
"asDuple": "fra:Exemples de services telus" "asDuple": "fra:Exemples de services telus"
} }
], ],
"profileType": "id_provider" "roamingOi": [
1,
2,
3,
4
],
"profileType": "passpoint_osu_id_provider"
}, },
"createdTimestamp": 1602182805660, "createdTimestamp": 1606778370351,
"lastModifiedTimestamp": 1602182805660, "lastModifiedTimestamp": 1606778370351,
"childProfileIds": [] "childProfileIds": [
}
] ]
}
]

View File

@@ -1,16 +1,16 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 2, "id": 10,
"customerId": 2, "customerId": 2,
"profileType": "metrics", "profileType": "service_metrics_collection_config",
"name": "Metrics-Profile-3-radios", "name": "Metrics-Profile-3-Radios",
"details": { "details": {
"model_type": "ServiceMetricsCollectionConfigProfile", "model_type": "ServiceMetricsCollectionConfigProfile",
"radioTypes": [ "radioTypes": [
"is5GHzU",
"is5GHzL", "is5GHzL",
"is2dot4GHz" "is2dot4GHz",
"is5GHzU"
], ],
"serviceMetricDataTypes": [ "serviceMetricDataTypes": [
"ApNode", "ApNode",
@@ -29,9 +29,9 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW", "radioType": "is5GHzL",
"radioType": "is5GHzU", "serviceMetricDataType": "ApNode",
"serviceMetricDataType": "ApNode" "statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -41,9 +41,9 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW", "radioType": "is5GHzU",
"radioType": "is5GHzL", "serviceMetricDataType": "ApNode",
"serviceMetricDataType": "ApNode" "statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -53,9 +53,9 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode" "serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -65,33 +65,33 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL",
"serviceMetricDataType": "ApNode"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU", "radioType": "is5GHzU",
"serviceMetricDataType": "ApNode" "serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
} }
], ],
"ApSsid": [ "ApSsid": [
@@ -99,7 +99,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is2dot4GHz", "radioType": "is5GHzU",
"serviceMetricDataType": "ApSsid" "serviceMetricDataType": "ApSsid"
}, },
{ {
@@ -113,7 +113,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is5GHzU", "radioType": "is2dot4GHz",
"serviceMetricDataType": "ApSsid" "serviceMetricDataType": "ApSsid"
} }
], ],
@@ -122,7 +122,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is2dot4GHz", "radioType": "is5GHzU",
"serviceMetricDataType": "Client" "serviceMetricDataType": "Client"
}, },
{ {
@@ -136,7 +136,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is5GHzU", "radioType": "is2dot4GHz",
"serviceMetricDataType": "Client" "serviceMetricDataType": "Client"
} }
], ],
@@ -144,38 +144,14 @@
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 120,
"channelSurveyType": "ON_CHANNEL", "channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL", "radioType": "is5GHzL",
"serviceMetricDataType": "Channel" "serviceMetricDataType": "Channel",
}, "statsReportFormat": "RAW"
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -185,95 +161,83 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW", "radioType": "is5GHzU",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL", "radioType": "is5GHzL",
"serviceMetricDataType": "Channel" "serviceMetricDataType": "Channel",
}, "statsReportFormat": "RAW"
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel"
} }
], ],
"Neighbour": [ "Neighbour": [
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 120,
"channelSurveyType": "ON_CHANNEL", "channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU", "radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour" "serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 120, "reportingIntervalSeconds": 60,
"channelSurveyType": "OFF_CHANNEL", "channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL", "radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour" "serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -283,16 +247,53 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour" "serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
} }
] ]
}, },
"profileType": "metrics" "profileType": "service_metrics_collection_config"
}, },
"createdTimestamp": 1602113058699, "createdTimestamp": 1606778369931,
"lastModifiedTimestamp": 1602113058699, "lastModifiedTimestamp": 1606778369931,
"childProfileIds": [] "childProfileIds": [
]
} }
] ]

View File

@@ -1,25 +1,25 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 6, "id": 17,
"customerId": 2, "customerId": 2,
"profileType": "operator", "profileType": "passpoint_operator",
"name": "TipWlan-Hotspot20-Operator", "name": "TipWlan-Passpoint-Operator",
"details": { "details": {
"model_type": "OperatorProfile", "model_type": "PasspointOperatorProfile",
"serverOnlyAuthenticatedL2EncryptionNetwork": false, "serverOnlyAuthenticatedL2EncryptionNetwork": false,
"x509CertificateLocation": "/etc/ca.pem", "x509CertificateLocation": "/etc/ca.pem",
"operatorFriendlyName": [ "operatorFriendlyName": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Default friendly operator name", "dupleName": "Default friendly passpoint_operator name",
"defaultDupleSeparator": ":", "defaultDupleSeparator": ":",
"asDuple": "eng:Default friendly operator name" "asDuple": "eng:Default friendly passpoint_operator name"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Nom de l'opérateur convivial par défaut", "dupleName": "Nom de l'opérateur convivial par défaut",
@@ -27,10 +27,11 @@
"asDuple": "fra:Nom de l'opérateur convivial par défaut" "asDuple": "fra:Nom de l'opérateur convivial par défaut"
} }
], ],
"profileType": "operator" "profileType": "passpoint_operator"
}, },
"createdTimestamp": 1602113058719, "createdTimestamp": 1606778369945,
"lastModifiedTimestamp": 1602113058719, "lastModifiedTimestamp": 1606778369945,
"childProfileIds": [] "childProfileIds": [
]
} }
] ]

View File

@@ -1,6 +1,6 @@
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 13, "id": 11,
"customerId": 2, "customerId": 2,
"profileType": "rf", "profileType": "rf",
"name": "TipWlan-rf", "name": "TipWlan-rf",
@@ -9,16 +9,15 @@
"rfConfigMap": { "rfConfigMap": {
"is5GHz": { "is5GHz": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is5GHz", "radioType": "is5GHz",
"radioMode": "modeAC", "radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz", "channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -26,17 +25,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -46,26 +40,31 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}, }
"minAutoCellSize": -65
}, },
"is2dot4GHz": { "is2dot4GHz": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"radioMode": "modeN", "radioMode": "modeN",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is20MHz", "channelBandwidth": "is20MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -73,17 +72,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -93,26 +87,31 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 20, "dropInSnrPercentage": 20,
"minLoadFactor": 50 "minLoadFactor": 50
}, }
"minAutoCellSize": -65
}, },
"is5GHzU": { "is5GHzU": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is5GHzU", "radioType": "is5GHzU",
"radioMode": "modeAC", "radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz", "channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -120,17 +119,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -140,26 +134,31 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}, }
"minAutoCellSize": -65
}, },
"is5GHzL": { "is5GHzL": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is5GHzL", "radioType": "is5GHzL",
"radioMode": "modeAC", "radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz", "channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -167,17 +166,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -187,18 +181,24 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}, }
"minAutoCellSize": -65
} }
}, },
"profileType": "rf" "profileType": "rf"
}, },
"createdTimestamp": 1602182806063, "createdTimestamp": 1606778369933,
"lastModifiedTimestamp": 1602182806063, "lastModifiedTimestamp": 1606778369933,
"childProfileIds": [] "childProfileIds": []
} }

View File

@@ -4,72 +4,6 @@
"id": 5, "id": 5,
"customerId": 2, "customerId": 2,
"profileType": "ssid", "profileType": "ssid",
"name": "TipWlan-cloud-hotspot-access",
"details": {
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-hotspot-access",
"appliedRadios": [
"is5GHzU",
"is5GHzL",
"is2dot4GHz"
],
"ssidAdminState": "enabled",
"secureMode": "wpa2PSK",
"vlanId": 1,
"keyStr": "testing123",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false,
"radioBasedConfigs": {
"is5GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is2dot4GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzL": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1602113058718,
"lastModifiedTimestamp": 1602113059547,
"childProfileIds": [
10
]
},
{
"model_type": "Profile",
"id": 11,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-3-radios", "name": "TipWlan-cloud-3-radios",
"details": { "details": {
"model_type": "SsidConfiguration", "model_type": "SsidConfiguration",
@@ -80,13 +14,15 @@
"is5GHzU" "is5GHzU"
], ],
"ssidAdminState": "enabled", "ssidAdminState": "enabled",
"secureMode": "open", "secureMode": "wpa2OnlyPSK",
"vlanId": 1, "vlanId": 1,
"keyStr": null, "keyStr": "openwifi",
"broadcastSsid": "enabled", "broadcastSsid": "enabled",
"keyRefresh": 0, "keyRefresh": 0,
"noLocalSubnets": false, "noLocalSubnets": false,
"radiusServiceName": null, "radiusServiceName": null,
"radiusAccountingServiceName": null,
"radiusAcountingServiceInterval": null,
"captivePortalId": null, "captivePortalId": null,
"bandwidthLimitDown": 0, "bandwidthLimitDown": 0,
"bandwidthLimitUp": 0, "bandwidthLimitUp": 0,
@@ -94,7 +30,7 @@
"clientBandwidthLimitUp": 0, "clientBandwidthLimitUp": 0,
"videoTrafficOnly": false, "videoTrafficOnly": false,
"radioBasedConfigs": { "radioBasedConfigs": {
"is5GHz": { "is5GHzL": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
@@ -106,17 +42,83 @@
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
}, },
"is5GHzU": { "is5GHz": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
}, },
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": "BRIDGE",
"profileType": "ssid"
},
"createdTimestamp": 1606778369598,
"lastModifiedTimestamp": 1606778369598,
"childProfileIds": [
]
},
{
"model_type": "Profile",
"id": 15,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-passpoint-access",
"details": {
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-passpoint-access",
"appliedRadios": [
"is5GHzL",
"is5GHzU"
],
"ssidAdminState": "enabled",
"secureMode": "wpa2PSK",
"vlanId": 1,
"keyStr": "testing123",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"radiusAccountingServiceName": null,
"radiusAcountingServiceInterval": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false,
"radioBasedConfigs": {
"is5GHzL": { "is5GHzL": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
},
"is2dot4GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
} }
}, },
"bonjourGatewayProfileId": null, "bonjourGatewayProfileId": null,
@@ -125,10 +127,77 @@
"forwardMode": null, "forwardMode": null,
"profileType": "ssid" "profileType": "ssid"
}, },
"createdTimestamp": 1602183994766, "createdTimestamp": 1606778369943,
"lastModifiedTimestamp": 1602183994766, "lastModifiedTimestamp": 1606778370811,
"childProfileIds": [ "childProfileIds": [
10 24
]
},
{
"model_type": "Profile",
"id": 16,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-passpoint-osu",
"details": {
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-passpoint-osu",
"appliedRadios": [
"is2dot4GHz"
],
"ssidAdminState": "enabled",
"secureMode": "open",
"vlanId": 1,
"keyStr": null,
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"radiusAccountingServiceName": null,
"radiusAcountingServiceInterval": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false,
"radioBasedConfigs": {
"is5GHzL": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is2dot4GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1606778369944,
"lastModifiedTimestamp": 1606778370352,
"childProfileIds": [
19,
20
] ]
} }
] ]

View File

@@ -1,15 +1,15 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 7, "id": 18,
"customerId": 2, "customerId": 2,
"profileType": "venue", "profileType": "passpoint_venue",
"name": "TipWlan-Hotspot20-Venue", "name": "TipWlan-Passpoint-Venue",
"details": { "details": {
"model_type": "VenueProfile", "model_type": "PasspointVenueProfile",
"venueNameSet": [ "venueNameSet": [
{ {
"model_type": "VenueName", "model_type": "PasspointVenueName",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemple de lieu", "dupleName": "Exemple de lieu",
@@ -18,25 +18,26 @@
"asDuple": "fra:Exemple de lieu" "asDuple": "fra:Exemple de lieu"
}, },
{ {
"model_type": "VenueName", "model_type": "PasspointVenueName",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example venue", "dupleName": "Example passpoint_venue",
"defaultDupleSeparator": ":", "defaultDupleSeparator": ":",
"venueUrl": "http://www.example.com/info-eng", "venueUrl": "http://www.example.com/info-eng",
"asDuple": "eng:Example venue" "asDuple": "eng:Example passpoint_venue"
} }
], ],
"venueTypeAssignment": { "venueTypeAssignment": {
"model_type": "VenueTypeAssignment", "model_type": "PasspointVenueTypeAssignment",
"venueDescription": "Research and Development Facility", "venueDescription": "Research and Development Facility",
"venueGroupId": 2, "venueGroupId": 2,
"venueTypeId": 8 "venueTypeId": 8
}, },
"profileType": "venue" "profileType": "passpoint_venue"
}, },
"createdTimestamp": 1602113058725, "createdTimestamp": 1606778369950,
"lastModifiedTimestamp": 1602113058725, "lastModifiedTimestamp": 1606778369950,
"childProfileIds": [] "childProfileIds": [
]
} }
] ]

View File

@@ -2,7 +2,7 @@
"model_type": "Equipment", "model_type": "Equipment",
"id": 51, "id": 51,
"customerId": 2, "customerId": 2,
"profileId": 5, "profileId": 12,
"locationId": 8, "locationId": 8,
"equipmentType": "AP", "equipmentType": "AP",
"inventoryId": "Test_Client_21P10C68818122", "inventoryId": "Test_Client_21P10C68818122",

View File

@@ -10,55 +10,48 @@
"countryCode" : "ca", "countryCode" : "ca",
"maintenanceWindow" : null, "maintenanceWindow" : null,
"rrmEnabled" : true, "rrmEnabled" : true,
"dailyRebalancingDetails" : { "dailyActivityDetails" : {
"SUNDAY" : { "SUNDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"MONDAY" : { "MONDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"TUESDAY" : { "TUESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"WEDNESDAY" : { "WEDNESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"THURSDAY" : { "THURSDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"FRIDAY" : { "FRIDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"SATURDAY" : { "SATURDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
} }
} }
}, },

View File

@@ -10,55 +10,48 @@
"countryCode" : "usa", "countryCode" : "usa",
"maintenanceWindow" : null, "maintenanceWindow" : null,
"rrmEnabled" : true, "rrmEnabled" : true,
"dailyRebalancingDetails" : { "dailyActivityDetails" : {
"SUNDAY" : { "SUNDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"MONDAY" : { "MONDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"TUESDAY" : { "TUESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"WEDNESDAY" : { "WEDNESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"THURSDAY" : { "THURSDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"FRIDAY" : { "FRIDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"SATURDAY" : { "SATURDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
} }
} }
}, },

View File

@@ -1,6 +1,6 @@
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 17, "id": 12,
"customerId": 2, "customerId": 2,
"profileType": "equipment_ap", "profileType": "equipment_ap",
"name": "ApProfile-3-radios", "name": "ApProfile-3-radios",
@@ -20,6 +20,11 @@
"syntheticClientEnabled": true, "syntheticClientEnabled": true,
"ledControlEnabled": true, "ledControlEnabled": true,
"equipmentDiscovery": false, "equipmentDiscovery": false,
"greTunnelName": null,
"greParentIfName": null,
"greLocalInetAddr": null,
"greRemoteInetAddr": null,
"greRemoteMacAddr": null,
"radioMap": { "radioMap": {
"is2dot4GHz": { "is2dot4GHz": {
"model_type": "RadioProfileConfiguration", "model_type": "RadioProfileConfiguration",
@@ -39,12 +44,13 @@
}, },
"profileType": "equipment_ap" "profileType": "equipment_ap"
}, },
"createdTimestamp": 1602182806348, "createdTimestamp": 1606778369934,
"lastModifiedTimestamp": 1602182806348, "lastModifiedTimestamp": 1606778443413,
"childProfileIds": [ "childProfileIds": [
2, 16,
5, 5,
10,
11, 11,
13 15
] ]
} }

View File

@@ -1,16 +1,16 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 10, "id": 24,
"customerId": 2, "customerId": 2,
"profileType": "hotspot_2pt0", "profileType": "passpoint",
"name": "TipWlan-Hotspot20-Config", "name": "TipWlan-Passpoint-Config",
"details": { "details": {
"model_type": "Hotspot2Profile", "model_type": "PasspointProfile",
"enableInterworkingAndHs20": true, "enableInterworkingAndHs20": true,
"hessid": null, "hessid": null,
"accessNetworkType": "free_public_network", "passpointAccessNetworkType": "free_public_network",
"networkAuthenticationType": "acceptance_of_terms_and_conditions", "passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
"additionalStepsRequiredForAccess": 0, "additionalStepsRequiredForAccess": 0,
"deauthRequestTimeout": 0, "deauthRequestTimeout": 0,
"operatingClass": 0, "operatingClass": 0,
@@ -29,10 +29,10 @@
"internetConnectivity": true, "internetConnectivity": true,
"connectionCapabilitySet": [ "connectionCapabilitySet": [
{ {
"model_type": "ConnectionCapability", "model_type": "PasspointConnectionCapability",
"connectionCapabilitiesPortNumber": 8888, "connectionCapabilitiesPortNumber": 8888,
"connectionCapabilitiesIpProtocol": "TCP", "connectionCapabilitiesStatus": "open",
"connectionCapabilitiesStatus": "open" "connectionCapabilitiesIpProtocol": "TCP"
} }
], ],
"ipAddressTypeAvailability": "public_IPv4_address_available", "ipAddressTypeAvailability": "public_IPv4_address_available",
@@ -45,28 +45,27 @@
"disableDownstreamGroupAddressedForwarding": false, "disableDownstreamGroupAddressedForwarding": false,
"enable2pt4GHz": true, "enable2pt4GHz": true,
"enable5GHz": true, "enable5GHz": true,
"associatedAccessSsidNames": [ "associatedAccessSsidProfileIds": [
"TipWlan-cloud-hotspot-access" 15
], ],
"osuSsidName": "TipWlan-cloud-3-radios", "osuSsidProfileId": 16,
"operatorProfileName": "TipWlan-Hotspot20-Operator", "passpointOperatorProfileId": 17,
"venueProfileName": "TipWlan-Hotspot20-Venue", "passpointVenueProfileId": 18,
"idProviderProfileNames": [ "passpointOsuProviderProfileIds": [
"TipWlan-Hotspot20-OSU-Provider-2", 19,
"TipWlan-Hotspot20-OSU-Provider" 20
], ],
"profileType": "hotspot_2pt0", "accessNetworkType": "free_public_network",
"associatedSsids": [ "networkAuthenticationType": "acceptance_of_terms_and_conditions",
"TipWlan-cloud-hotspot-access" "profileType": "passpoint"
]
}, },
"createdTimestamp": 1602182806040, "createdTimestamp": 1606778370807,
"lastModifiedTimestamp": 1602182806040, "lastModifiedTimestamp": 1606778370807,
"childProfileIds": [ "childProfileIds": [
6, 17,
7, 18,
8, 19,
9 20
] ]
} }
] ]

View File

@@ -1,16 +1,16 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 8, "id": 19,
"customerId": 2, "customerId": 2,
"profileType": "id_provider", "profileType": "passpoint_osu_id_provider",
"name": "TipWlan-Hotspot20-OSU-Provider", "name": "TipWlan-Passpoint-OSU-Provider",
"details": { "details": {
"model_type": "Hotspot20IdProviderProfile", "model_type": "PasspointOsuProviderProfile",
"domainName": "rogers.com", "domainName": "rogers.com",
"mccMncList": [ "mccMncList": [
{ {
"model_type": "MccMnc", "model_type": "PasspointMccMnc",
"mcc": 302, "mcc": 302,
"mnc": 720, "mnc": 720,
"iso": "ca", "iso": "ca",
@@ -22,7 +22,7 @@
], ],
"naiRealmList": [ "naiRealmList": [
{ {
"model_type": "NaiRealmInformation", "model_type": "PasspointNaiRealmInformation",
"naiRealms": [ "naiRealms": [
"rogers.com" "rogers.com"
], ],
@@ -44,7 +44,7 @@
], ],
"osuIconList": [ "osuIconList": [
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -55,7 +55,7 @@
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "fra", "languageCode": "fra",
@@ -66,7 +66,7 @@
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -77,10 +77,10 @@
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
} }
], ],
"osuServerUri": "https://example.com/osu/rogers/", "osuServerUri": "https://example.com/osu/rogers",
"osuFriendlyName": [ "osuFriendlyName": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example provider rogers", "dupleName": "Example provider rogers",
@@ -88,7 +88,7 @@
"asDuple": "eng:Example provider rogers" "asDuple": "eng:Example provider rogers"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur rogers", "dupleName": "Exemple de fournisseur rogers",
@@ -104,7 +104,7 @@
], ],
"osuServiceDescription": [ "osuServiceDescription": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example services rogers", "dupleName": "Example services rogers",
@@ -112,7 +112,7 @@
"asDuple": "eng:Example services rogers" "asDuple": "eng:Example services rogers"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemples de services rogers", "dupleName": "Exemples de services rogers",
@@ -120,24 +120,31 @@
"asDuple": "fra:Exemples de services rogers" "asDuple": "fra:Exemples de services rogers"
} }
], ],
"profileType": "id_provider" "roamingOi": [
1,
2,
3,
4
],
"profileType": "passpoint_osu_id_provider"
}, },
"createdTimestamp": 1602182805654, "createdTimestamp": 1606778370345,
"lastModifiedTimestamp": 1602182805654, "lastModifiedTimestamp": 1606778370345,
"childProfileIds": [] "childProfileIds": [
}, ]
{ },
{
"model_type": "Profile", "model_type": "Profile",
"id": 9, "id": 20,
"customerId": 2, "customerId": 2,
"profileType": "id_provider", "profileType": "passpoint_osu_id_provider",
"name": "TipWlan-Hotspot20-OSU-Provider-2", "name": "TipWlan-Passpoint-OSU-Provider-2",
"details": { "details": {
"model_type": "Hotspot20IdProviderProfile", "model_type": "PasspointOsuProviderProfile",
"domainName": "telus.com", "domainName": "telus.com",
"mccMncList": [ "mccMncList": [
{ {
"model_type": "MccMnc", "model_type": "PasspointMccMnc",
"mcc": 302, "mcc": 302,
"mnc": 220, "mnc": 220,
"iso": "ca", "iso": "ca",
@@ -149,7 +156,7 @@
], ],
"naiRealmList": [ "naiRealmList": [
{ {
"model_type": "NaiRealmInformation", "model_type": "PasspointNaiRealmInformation",
"naiRealms": [ "naiRealms": [
"telus.com" "telus.com"
], ],
@@ -171,7 +178,7 @@
], ],
"osuIconList": [ "osuIconList": [
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -182,7 +189,7 @@
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "fra", "languageCode": "fra",
@@ -193,7 +200,7 @@
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -204,10 +211,10 @@
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
} }
], ],
"osuServerUri": "https://example.com/osu/telus/", "osuServerUri": "https://example.com/osu/telus",
"osuFriendlyName": [ "osuFriendlyName": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example provider telus", "dupleName": "Example provider telus",
@@ -215,7 +222,7 @@
"asDuple": "eng:Example provider telus" "asDuple": "eng:Example provider telus"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur telus", "dupleName": "Exemple de fournisseur telus",
@@ -231,7 +238,7 @@
], ],
"osuServiceDescription": [ "osuServiceDescription": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example services telus", "dupleName": "Example services telus",
@@ -239,7 +246,7 @@
"asDuple": "eng:Example services telus" "asDuple": "eng:Example services telus"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemples de services telus", "dupleName": "Exemples de services telus",
@@ -247,10 +254,17 @@
"asDuple": "fra:Exemples de services telus" "asDuple": "fra:Exemples de services telus"
} }
], ],
"profileType": "id_provider" "roamingOi": [
1,
2,
3,
4
],
"profileType": "passpoint_osu_id_provider"
}, },
"createdTimestamp": 1602182805660, "createdTimestamp": 1606778370351,
"lastModifiedTimestamp": 1602182805660, "lastModifiedTimestamp": 1606778370351,
"childProfileIds": [] "childProfileIds": [
}
] ]
}
]

View File

@@ -1,16 +1,16 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 2, "id": 10,
"customerId": 2, "customerId": 2,
"profileType": "metrics", "profileType": "service_metrics_collection_config",
"name": "Metrics-Profile-3-radios", "name": "Metrics-Profile-3-Radios",
"details": { "details": {
"model_type": "ServiceMetricsCollectionConfigProfile", "model_type": "ServiceMetricsCollectionConfigProfile",
"radioTypes": [ "radioTypes": [
"is5GHzU",
"is5GHzL", "is5GHzL",
"is2dot4GHz" "is2dot4GHz",
"is5GHzU"
], ],
"serviceMetricDataTypes": [ "serviceMetricDataTypes": [
"ApNode", "ApNode",
@@ -29,9 +29,9 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW", "radioType": "is5GHzL",
"radioType": "is5GHzU", "serviceMetricDataType": "ApNode",
"serviceMetricDataType": "ApNode" "statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -41,9 +41,9 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW", "radioType": "is5GHzU",
"radioType": "is5GHzL", "serviceMetricDataType": "ApNode",
"serviceMetricDataType": "ApNode" "statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -53,9 +53,9 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode" "serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -65,33 +65,33 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL",
"serviceMetricDataType": "ApNode"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU", "radioType": "is5GHzU",
"serviceMetricDataType": "ApNode" "serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
} }
], ],
"ApSsid": [ "ApSsid": [
@@ -99,7 +99,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is2dot4GHz", "radioType": "is5GHzU",
"serviceMetricDataType": "ApSsid" "serviceMetricDataType": "ApSsid"
}, },
{ {
@@ -113,7 +113,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is5GHzU", "radioType": "is2dot4GHz",
"serviceMetricDataType": "ApSsid" "serviceMetricDataType": "ApSsid"
} }
], ],
@@ -122,7 +122,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is2dot4GHz", "radioType": "is5GHzU",
"serviceMetricDataType": "Client" "serviceMetricDataType": "Client"
}, },
{ {
@@ -136,7 +136,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is5GHzU", "radioType": "is2dot4GHz",
"serviceMetricDataType": "Client" "serviceMetricDataType": "Client"
} }
], ],
@@ -144,38 +144,14 @@
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 120,
"channelSurveyType": "ON_CHANNEL", "channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL", "radioType": "is5GHzL",
"serviceMetricDataType": "Channel" "serviceMetricDataType": "Channel",
}, "statsReportFormat": "RAW"
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -185,95 +161,83 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW", "radioType": "is5GHzU",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL", "radioType": "is5GHzL",
"serviceMetricDataType": "Channel" "serviceMetricDataType": "Channel",
}, "statsReportFormat": "RAW"
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel"
} }
], ],
"Neighbour": [ "Neighbour": [
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 120,
"channelSurveyType": "ON_CHANNEL", "channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU", "radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour" "serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 120, "reportingIntervalSeconds": 60,
"channelSurveyType": "OFF_CHANNEL", "channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL", "radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour" "serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -283,16 +247,53 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour" "serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
} }
] ]
}, },
"profileType": "metrics" "profileType": "service_metrics_collection_config"
}, },
"createdTimestamp": 1602113058699, "createdTimestamp": 1606778369931,
"lastModifiedTimestamp": 1602113058699, "lastModifiedTimestamp": 1606778369931,
"childProfileIds": [] "childProfileIds": [
]
} }
] ]

View File

@@ -1,25 +1,25 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 6, "id": 17,
"customerId": 2, "customerId": 2,
"profileType": "operator", "profileType": "passpoint_operator",
"name": "TipWlan-Hotspot20-Operator", "name": "TipWlan-Passpoint-Operator",
"details": { "details": {
"model_type": "OperatorProfile", "model_type": "PasspointOperatorProfile",
"serverOnlyAuthenticatedL2EncryptionNetwork": false, "serverOnlyAuthenticatedL2EncryptionNetwork": false,
"x509CertificateLocation": "/etc/ca.pem", "x509CertificateLocation": "/etc/ca.pem",
"operatorFriendlyName": [ "operatorFriendlyName": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Default friendly operator name", "dupleName": "Default friendly passpoint_operator name",
"defaultDupleSeparator": ":", "defaultDupleSeparator": ":",
"asDuple": "eng:Default friendly operator name" "asDuple": "eng:Default friendly passpoint_operator name"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Nom de l'opérateur convivial par défaut", "dupleName": "Nom de l'opérateur convivial par défaut",
@@ -27,10 +27,11 @@
"asDuple": "fra:Nom de l'opérateur convivial par défaut" "asDuple": "fra:Nom de l'opérateur convivial par défaut"
} }
], ],
"profileType": "operator" "profileType": "passpoint_operator"
}, },
"createdTimestamp": 1602113058719, "createdTimestamp": 1606778369945,
"lastModifiedTimestamp": 1602113058719, "lastModifiedTimestamp": 1606778369945,
"childProfileIds": [] "childProfileIds": [
]
} }
] ]

View File

@@ -1,6 +1,6 @@
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 13, "id": 11,
"customerId": 2, "customerId": 2,
"profileType": "rf", "profileType": "rf",
"name": "TipWlan-rf", "name": "TipWlan-rf",
@@ -9,16 +9,15 @@
"rfConfigMap": { "rfConfigMap": {
"is5GHz": { "is5GHz": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is5GHz", "radioType": "is5GHz",
"radioMode": "modeAC", "radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz", "channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -26,17 +25,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -46,26 +40,31 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}, }
"minAutoCellSize": -65
}, },
"is2dot4GHz": { "is2dot4GHz": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"radioMode": "modeN", "radioMode": "modeN",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is20MHz", "channelBandwidth": "is20MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -73,17 +72,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -93,26 +87,31 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 20, "dropInSnrPercentage": 20,
"minLoadFactor": 50 "minLoadFactor": 50
}, }
"minAutoCellSize": -65
}, },
"is5GHzU": { "is5GHzU": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is5GHzU", "radioType": "is5GHzU",
"radioMode": "modeAC", "radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz", "channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -120,17 +119,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -140,26 +134,31 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}, }
"minAutoCellSize": -65
}, },
"is5GHzL": { "is5GHzL": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is5GHzL", "radioType": "is5GHzL",
"radioMode": "modeAC", "radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz", "channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -167,17 +166,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -187,18 +181,24 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}, }
"minAutoCellSize": -65
} }
}, },
"profileType": "rf" "profileType": "rf"
}, },
"createdTimestamp": 1602182806063, "createdTimestamp": 1606778369933,
"lastModifiedTimestamp": 1602182806063, "lastModifiedTimestamp": 1606778369933,
"childProfileIds": [] "childProfileIds": []
} }

View File

@@ -4,72 +4,6 @@
"id": 5, "id": 5,
"customerId": 2, "customerId": 2,
"profileType": "ssid", "profileType": "ssid",
"name": "TipWlan-cloud-hotspot-access",
"details": {
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-hotspot-access",
"appliedRadios": [
"is5GHzU",
"is5GHzL",
"is2dot4GHz"
],
"ssidAdminState": "enabled",
"secureMode": "wpa2PSK",
"vlanId": 1,
"keyStr": "testing123",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false,
"radioBasedConfigs": {
"is5GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is2dot4GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzL": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1602113058718,
"lastModifiedTimestamp": 1602113059547,
"childProfileIds": [
10
]
},
{
"model_type": "Profile",
"id": 11,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-3-radios", "name": "TipWlan-cloud-3-radios",
"details": { "details": {
"model_type": "SsidConfiguration", "model_type": "SsidConfiguration",
@@ -80,13 +14,15 @@
"is5GHzU" "is5GHzU"
], ],
"ssidAdminState": "enabled", "ssidAdminState": "enabled",
"secureMode": "open", "secureMode": "wpa2OnlyPSK",
"vlanId": 1, "vlanId": 1,
"keyStr": null, "keyStr": "openwifi",
"broadcastSsid": "enabled", "broadcastSsid": "enabled",
"keyRefresh": 0, "keyRefresh": 0,
"noLocalSubnets": false, "noLocalSubnets": false,
"radiusServiceName": null, "radiusServiceName": null,
"radiusAccountingServiceName": null,
"radiusAcountingServiceInterval": null,
"captivePortalId": null, "captivePortalId": null,
"bandwidthLimitDown": 0, "bandwidthLimitDown": 0,
"bandwidthLimitUp": 0, "bandwidthLimitUp": 0,
@@ -94,7 +30,7 @@
"clientBandwidthLimitUp": 0, "clientBandwidthLimitUp": 0,
"videoTrafficOnly": false, "videoTrafficOnly": false,
"radioBasedConfigs": { "radioBasedConfigs": {
"is5GHz": { "is5GHzL": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
@@ -106,17 +42,83 @@
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
}, },
"is5GHzU": { "is5GHz": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
}, },
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": "BRIDGE",
"profileType": "ssid"
},
"createdTimestamp": 1606778369598,
"lastModifiedTimestamp": 1606778369598,
"childProfileIds": [
]
},
{
"model_type": "Profile",
"id": 15,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-passpoint-access",
"details": {
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-passpoint-access",
"appliedRadios": [
"is5GHzL",
"is5GHzU"
],
"ssidAdminState": "enabled",
"secureMode": "wpa2PSK",
"vlanId": 1,
"keyStr": "testing123",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"radiusAccountingServiceName": null,
"radiusAcountingServiceInterval": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false,
"radioBasedConfigs": {
"is5GHzL": { "is5GHzL": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
},
"is2dot4GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
} }
}, },
"bonjourGatewayProfileId": null, "bonjourGatewayProfileId": null,
@@ -125,10 +127,77 @@
"forwardMode": null, "forwardMode": null,
"profileType": "ssid" "profileType": "ssid"
}, },
"createdTimestamp": 1602183994766, "createdTimestamp": 1606778369943,
"lastModifiedTimestamp": 1602183994766, "lastModifiedTimestamp": 1606778370811,
"childProfileIds": [ "childProfileIds": [
10 24
]
},
{
"model_type": "Profile",
"id": 16,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-passpoint-osu",
"details": {
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-passpoint-osu",
"appliedRadios": [
"is2dot4GHz"
],
"ssidAdminState": "enabled",
"secureMode": "open",
"vlanId": 1,
"keyStr": null,
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"radiusAccountingServiceName": null,
"radiusAcountingServiceInterval": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false,
"radioBasedConfigs": {
"is5GHzL": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is2dot4GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1606778369944,
"lastModifiedTimestamp": 1606778370352,
"childProfileIds": [
19,
20
] ]
} }
] ]

View File

@@ -1,15 +1,15 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 7, "id": 18,
"customerId": 2, "customerId": 2,
"profileType": "venue", "profileType": "passpoint_venue",
"name": "TipWlan-Hotspot20-Venue", "name": "TipWlan-Passpoint-Venue",
"details": { "details": {
"model_type": "VenueProfile", "model_type": "PasspointVenueProfile",
"venueNameSet": [ "venueNameSet": [
{ {
"model_type": "VenueName", "model_type": "PasspointVenueName",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemple de lieu", "dupleName": "Exemple de lieu",
@@ -18,25 +18,26 @@
"asDuple": "fra:Exemple de lieu" "asDuple": "fra:Exemple de lieu"
}, },
{ {
"model_type": "VenueName", "model_type": "PasspointVenueName",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example venue", "dupleName": "Example passpoint_venue",
"defaultDupleSeparator": ":", "defaultDupleSeparator": ":",
"venueUrl": "http://www.example.com/info-eng", "venueUrl": "http://www.example.com/info-eng",
"asDuple": "eng:Example venue" "asDuple": "eng:Example passpoint_venue"
} }
], ],
"venueTypeAssignment": { "venueTypeAssignment": {
"model_type": "VenueTypeAssignment", "model_type": "PasspointVenueTypeAssignment",
"venueDescription": "Research and Development Facility", "venueDescription": "Research and Development Facility",
"venueGroupId": 2, "venueGroupId": 2,
"venueTypeId": 8 "venueTypeId": 8
}, },
"profileType": "venue" "profileType": "passpoint_venue"
}, },
"createdTimestamp": 1602113058725, "createdTimestamp": 1606778369950,
"lastModifiedTimestamp": 1602113058725, "lastModifiedTimestamp": 1606778369950,
"childProfileIds": [] "childProfileIds": [
]
} }
] ]

View File

@@ -15,11 +15,6 @@
</properties> </properties>
<dependencies> <dependencies>
<dependency>
<groupId>com.telecominfraproject.wlan</groupId>
<artifactId>opensync-gateway</artifactId>
<version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency> <dependency>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>opensync-ext-static</artifactId> <artifactId>opensync-ext-static</artifactId>

View File

@@ -2,7 +2,7 @@
"model_type": "Equipment", "model_type": "Equipment",
"id": 51, "id": 51,
"customerId": 2, "customerId": 2,
"profileId": 5, "profileId": 12,
"locationId": 8, "locationId": 8,
"equipmentType": "AP", "equipmentType": "AP",
"inventoryId": "Test_Client_21P10C68818122", "inventoryId": "Test_Client_21P10C68818122",

View File

@@ -10,55 +10,48 @@
"countryCode" : "ca", "countryCode" : "ca",
"maintenanceWindow" : null, "maintenanceWindow" : null,
"rrmEnabled" : true, "rrmEnabled" : true,
"dailyRebalancingDetails" : { "dailyActivityDetails" : {
"SUNDAY" : { "SUNDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"MONDAY" : { "MONDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"TUESDAY" : { "TUESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"WEDNESDAY" : { "WEDNESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"THURSDAY" : { "THURSDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"FRIDAY" : { "FRIDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"SATURDAY" : { "SATURDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
} }
} }
}, },

View File

@@ -10,55 +10,48 @@
"countryCode" : "usa", "countryCode" : "usa",
"maintenanceWindow" : null, "maintenanceWindow" : null,
"rrmEnabled" : true, "rrmEnabled" : true,
"dailyRebalancingDetails" : { "dailyActivityDetails" : {
"SUNDAY" : { "SUNDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"MONDAY" : { "MONDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"TUESDAY" : { "TUESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"WEDNESDAY" : { "WEDNESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"THURSDAY" : { "THURSDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"FRIDAY" : { "FRIDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
}, },
"SATURDAY" : { "SATURDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern", "timezone" : "US/Eastern"
"lastBusySnapshot" : 0
} }
} }
}, },

View File

@@ -1,6 +1,6 @@
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 17, "id": 12,
"customerId": 2, "customerId": 2,
"profileType": "equipment_ap", "profileType": "equipment_ap",
"name": "ApProfile-3-radios", "name": "ApProfile-3-radios",
@@ -20,6 +20,11 @@
"syntheticClientEnabled": true, "syntheticClientEnabled": true,
"ledControlEnabled": true, "ledControlEnabled": true,
"equipmentDiscovery": false, "equipmentDiscovery": false,
"greTunnelName": null,
"greParentIfName": null,
"greLocalInetAddr": null,
"greRemoteInetAddr": null,
"greRemoteMacAddr": null,
"radioMap": { "radioMap": {
"is2dot4GHz": { "is2dot4GHz": {
"model_type": "RadioProfileConfiguration", "model_type": "RadioProfileConfiguration",
@@ -39,12 +44,13 @@
}, },
"profileType": "equipment_ap" "profileType": "equipment_ap"
}, },
"createdTimestamp": 1602182806348, "createdTimestamp": 1606778369934,
"lastModifiedTimestamp": 1602182806348, "lastModifiedTimestamp": 1606778443413,
"childProfileIds": [ "childProfileIds": [
2, 16,
5, 5,
10,
11, 11,
13 15
] ]
} }

View File

@@ -1,16 +1,16 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 10, "id": 24,
"customerId": 2, "customerId": 2,
"profileType": "hotspot_2pt0", "profileType": "passpoint",
"name": "TipWlan-Hotspot20-Config", "name": "TipWlan-Passpoint-Config",
"details": { "details": {
"model_type": "Hotspot2Profile", "model_type": "PasspointProfile",
"enableInterworkingAndHs20": true, "enableInterworkingAndHs20": true,
"hessid": null, "hessid": null,
"accessNetworkType": "free_public_network", "passpointAccessNetworkType": "free_public_network",
"networkAuthenticationType": "acceptance_of_terms_and_conditions", "passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
"additionalStepsRequiredForAccess": 0, "additionalStepsRequiredForAccess": 0,
"deauthRequestTimeout": 0, "deauthRequestTimeout": 0,
"operatingClass": 0, "operatingClass": 0,
@@ -29,10 +29,10 @@
"internetConnectivity": true, "internetConnectivity": true,
"connectionCapabilitySet": [ "connectionCapabilitySet": [
{ {
"model_type": "ConnectionCapability", "model_type": "PasspointConnectionCapability",
"connectionCapabilitiesPortNumber": 8888, "connectionCapabilitiesPortNumber": 8888,
"connectionCapabilitiesIpProtocol": "TCP", "connectionCapabilitiesStatus": "open",
"connectionCapabilitiesStatus": "open" "connectionCapabilitiesIpProtocol": "TCP"
} }
], ],
"ipAddressTypeAvailability": "public_IPv4_address_available", "ipAddressTypeAvailability": "public_IPv4_address_available",
@@ -45,28 +45,27 @@
"disableDownstreamGroupAddressedForwarding": false, "disableDownstreamGroupAddressedForwarding": false,
"enable2pt4GHz": true, "enable2pt4GHz": true,
"enable5GHz": true, "enable5GHz": true,
"associatedAccessSsidNames": [ "associatedAccessSsidProfileIds": [
"TipWlan-cloud-hotspot-access" 15
], ],
"osuSsidName": "TipWlan-cloud-3-radios", "osuSsidProfileId": 16,
"operatorProfileName": "TipWlan-Hotspot20-Operator", "passpointOperatorProfileId": 17,
"venueProfileName": "TipWlan-Hotspot20-Venue", "passpointVenueProfileId": 18,
"idProviderProfileNames": [ "passpointOsuProviderProfileIds": [
"TipWlan-Hotspot20-OSU-Provider-2", 19,
"TipWlan-Hotspot20-OSU-Provider" 20
], ],
"profileType": "hotspot_2pt0", "accessNetworkType": "free_public_network",
"associatedSsids": [ "networkAuthenticationType": "acceptance_of_terms_and_conditions",
"TipWlan-cloud-hotspot-access" "profileType": "passpoint"
]
}, },
"createdTimestamp": 1602182806040, "createdTimestamp": 1606778370807,
"lastModifiedTimestamp": 1602182806040, "lastModifiedTimestamp": 1606778370807,
"childProfileIds": [ "childProfileIds": [
6, 17,
7, 18,
8, 19,
9 20
] ]
} }
] ]

View File

@@ -1,16 +1,16 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 8, "id": 19,
"customerId": 2, "customerId": 2,
"profileType": "id_provider", "profileType": "passpoint_osu_id_provider",
"name": "TipWlan-Hotspot20-OSU-Provider", "name": "TipWlan-Passpoint-OSU-Provider",
"details": { "details": {
"model_type": "Hotspot20IdProviderProfile", "model_type": "PasspointOsuProviderProfile",
"domainName": "rogers.com", "domainName": "rogers.com",
"mccMncList": [ "mccMncList": [
{ {
"model_type": "MccMnc", "model_type": "PasspointMccMnc",
"mcc": 302, "mcc": 302,
"mnc": 720, "mnc": 720,
"iso": "ca", "iso": "ca",
@@ -22,7 +22,7 @@
], ],
"naiRealmList": [ "naiRealmList": [
{ {
"model_type": "NaiRealmInformation", "model_type": "PasspointNaiRealmInformation",
"naiRealms": [ "naiRealms": [
"rogers.com" "rogers.com"
], ],
@@ -44,7 +44,7 @@
], ],
"osuIconList": [ "osuIconList": [
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -55,7 +55,7 @@
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "fra", "languageCode": "fra",
@@ -66,7 +66,7 @@
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -77,10 +77,10 @@
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
} }
], ],
"osuServerUri": "https://example.com/osu/rogers/", "osuServerUri": "https://example.com/osu/rogers",
"osuFriendlyName": [ "osuFriendlyName": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example provider rogers", "dupleName": "Example provider rogers",
@@ -88,7 +88,7 @@
"asDuple": "eng:Example provider rogers" "asDuple": "eng:Example provider rogers"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur rogers", "dupleName": "Exemple de fournisseur rogers",
@@ -104,7 +104,7 @@
], ],
"osuServiceDescription": [ "osuServiceDescription": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example services rogers", "dupleName": "Example services rogers",
@@ -112,7 +112,7 @@
"asDuple": "eng:Example services rogers" "asDuple": "eng:Example services rogers"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemples de services rogers", "dupleName": "Exemples de services rogers",
@@ -120,24 +120,31 @@
"asDuple": "fra:Exemples de services rogers" "asDuple": "fra:Exemples de services rogers"
} }
], ],
"profileType": "id_provider" "roamingOi": [
1,
2,
3,
4
],
"profileType": "passpoint_osu_id_provider"
}, },
"createdTimestamp": 1602182805654, "createdTimestamp": 1606778370345,
"lastModifiedTimestamp": 1602182805654, "lastModifiedTimestamp": 1606778370345,
"childProfileIds": [] "childProfileIds": [
}, ]
{ },
{
"model_type": "Profile", "model_type": "Profile",
"id": 9, "id": 20,
"customerId": 2, "customerId": 2,
"profileType": "id_provider", "profileType": "passpoint_osu_id_provider",
"name": "TipWlan-Hotspot20-OSU-Provider-2", "name": "TipWlan-Passpoint-OSU-Provider-2",
"details": { "details": {
"model_type": "Hotspot20IdProviderProfile", "model_type": "PasspointOsuProviderProfile",
"domainName": "telus.com", "domainName": "telus.com",
"mccMncList": [ "mccMncList": [
{ {
"model_type": "MccMnc", "model_type": "PasspointMccMnc",
"mcc": 302, "mcc": 302,
"mnc": 220, "mnc": 220,
"iso": "ca", "iso": "ca",
@@ -149,7 +156,7 @@
], ],
"naiRealmList": [ "naiRealmList": [
{ {
"model_type": "NaiRealmInformation", "model_type": "PasspointNaiRealmInformation",
"naiRealms": [ "naiRealms": [
"telus.com" "telus.com"
], ],
@@ -171,7 +178,7 @@
], ],
"osuIconList": [ "osuIconList": [
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -182,7 +189,7 @@
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "fra", "languageCode": "fra",
@@ -193,7 +200,7 @@
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
}, },
{ {
"model_type": "OsuIcon", "model_type": "PasspointOsuIcon",
"iconWidth": 32, "iconWidth": 32,
"iconHeight": 32, "iconHeight": 32,
"languageCode": "eng", "languageCode": "eng",
@@ -204,10 +211,10 @@
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
} }
], ],
"osuServerUri": "https://example.com/osu/telus/", "osuServerUri": "https://example.com/osu/telus",
"osuFriendlyName": [ "osuFriendlyName": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example provider telus", "dupleName": "Example provider telus",
@@ -215,7 +222,7 @@
"asDuple": "eng:Example provider telus" "asDuple": "eng:Example provider telus"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur telus", "dupleName": "Exemple de fournisseur telus",
@@ -231,7 +238,7 @@
], ],
"osuServiceDescription": [ "osuServiceDescription": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example services telus", "dupleName": "Example services telus",
@@ -239,7 +246,7 @@
"asDuple": "eng:Example services telus" "asDuple": "eng:Example services telus"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemples de services telus", "dupleName": "Exemples de services telus",
@@ -247,10 +254,17 @@
"asDuple": "fra:Exemples de services telus" "asDuple": "fra:Exemples de services telus"
} }
], ],
"profileType": "id_provider" "roamingOi": [
1,
2,
3,
4
],
"profileType": "passpoint_osu_id_provider"
}, },
"createdTimestamp": 1602182805660, "createdTimestamp": 1606778370351,
"lastModifiedTimestamp": 1602182805660, "lastModifiedTimestamp": 1606778370351,
"childProfileIds": [] "childProfileIds": [
}
] ]
}
]

View File

@@ -1,16 +1,16 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 2, "id": 10,
"customerId": 2, "customerId": 2,
"profileType": "metrics", "profileType": "service_metrics_collection_config",
"name": "Metrics-Profile-3-radios", "name": "Metrics-Profile-3-Radios",
"details": { "details": {
"model_type": "ServiceMetricsCollectionConfigProfile", "model_type": "ServiceMetricsCollectionConfigProfile",
"radioTypes": [ "radioTypes": [
"is5GHzU",
"is5GHzL", "is5GHzL",
"is2dot4GHz" "is2dot4GHz",
"is5GHzU"
], ],
"serviceMetricDataTypes": [ "serviceMetricDataTypes": [
"ApNode", "ApNode",
@@ -29,9 +29,9 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW", "radioType": "is5GHzL",
"radioType": "is5GHzU", "serviceMetricDataType": "ApNode",
"serviceMetricDataType": "ApNode" "statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -41,9 +41,9 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW", "radioType": "is5GHzU",
"radioType": "is5GHzL", "serviceMetricDataType": "ApNode",
"serviceMetricDataType": "ApNode" "statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -53,9 +53,9 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode" "serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -65,33 +65,33 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL",
"serviceMetricDataType": "ApNode"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU", "radioType": "is5GHzU",
"serviceMetricDataType": "ApNode" "serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
} }
], ],
"ApSsid": [ "ApSsid": [
@@ -99,7 +99,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is2dot4GHz", "radioType": "is5GHzU",
"serviceMetricDataType": "ApSsid" "serviceMetricDataType": "ApSsid"
}, },
{ {
@@ -113,7 +113,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is5GHzU", "radioType": "is2dot4GHz",
"serviceMetricDataType": "ApSsid" "serviceMetricDataType": "ApSsid"
} }
], ],
@@ -122,7 +122,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is2dot4GHz", "radioType": "is5GHzU",
"serviceMetricDataType": "Client" "serviceMetricDataType": "Client"
}, },
{ {
@@ -136,7 +136,7 @@
"model_type": "ServiceMetricRadioConfigParameters", "model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 60,
"radioType": "is5GHzU", "radioType": "is2dot4GHz",
"serviceMetricDataType": "Client" "serviceMetricDataType": "Client"
} }
], ],
@@ -144,38 +144,14 @@
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 120,
"channelSurveyType": "ON_CHANNEL", "channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL", "radioType": "is5GHzL",
"serviceMetricDataType": "Channel" "serviceMetricDataType": "Channel",
}, "statsReportFormat": "RAW"
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -185,95 +161,83 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW", "radioType": "is5GHzU",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL", "radioType": "is5GHzL",
"serviceMetricDataType": "Channel" "serviceMetricDataType": "Channel",
}, "statsReportFormat": "RAW"
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel"
} }
], ],
"Neighbour": [ "Neighbour": [
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 60, "reportingIntervalSeconds": 120,
"channelSurveyType": "ON_CHANNEL", "channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU", "radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour" "serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30, "samplingInterval": 30,
"reportingIntervalSeconds": 120, "reportingIntervalSeconds": 60,
"channelSurveyType": "OFF_CHANNEL", "channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is5GHzL", "radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour" "serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
}, },
{ {
"model_type": "ServiceMetricSurveyConfigParameters", "model_type": "ServiceMetricSurveyConfigParameters",
@@ -283,16 +247,53 @@
"scanIntervalMillis": 0, "scanIntervalMillis": 0,
"percentUtilizationThreshold": 10, "percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600, "delayMillisecondsThreshold": 600,
"statsReportFormat": "RAW",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour" "serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
} }
] ]
}, },
"profileType": "metrics" "profileType": "service_metrics_collection_config"
}, },
"createdTimestamp": 1602113058699, "createdTimestamp": 1606778369931,
"lastModifiedTimestamp": 1602113058699, "lastModifiedTimestamp": 1606778369931,
"childProfileIds": [] "childProfileIds": [
]
} }
] ]

View File

@@ -1,25 +1,25 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 6, "id": 17,
"customerId": 2, "customerId": 2,
"profileType": "operator", "profileType": "passpoint_operator",
"name": "TipWlan-Hotspot20-Operator", "name": "TipWlan-Passpoint-Operator",
"details": { "details": {
"model_type": "OperatorProfile", "model_type": "PasspointOperatorProfile",
"serverOnlyAuthenticatedL2EncryptionNetwork": false, "serverOnlyAuthenticatedL2EncryptionNetwork": false,
"x509CertificateLocation": "/etc/ca.pem", "x509CertificateLocation": "/etc/ca.pem",
"operatorFriendlyName": [ "operatorFriendlyName": [
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Default friendly operator name", "dupleName": "Default friendly passpoint_operator name",
"defaultDupleSeparator": ":", "defaultDupleSeparator": ":",
"asDuple": "eng:Default friendly operator name" "asDuple": "eng:Default friendly passpoint_operator name"
}, },
{ {
"model_type": "Hotspot20Duple", "model_type": "PasspointDuple",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Nom de l'opérateur convivial par défaut", "dupleName": "Nom de l'opérateur convivial par défaut",
@@ -27,10 +27,11 @@
"asDuple": "fra:Nom de l'opérateur convivial par défaut" "asDuple": "fra:Nom de l'opérateur convivial par défaut"
} }
], ],
"profileType": "operator" "profileType": "passpoint_operator"
}, },
"createdTimestamp": 1602113058719, "createdTimestamp": 1606778369945,
"lastModifiedTimestamp": 1602113058719, "lastModifiedTimestamp": 1606778369945,
"childProfileIds": [] "childProfileIds": [
]
} }
] ]

View File

@@ -1,6 +1,6 @@
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 13, "id": 11,
"customerId": 2, "customerId": 2,
"profileType": "rf", "profileType": "rf",
"name": "TipWlan-rf", "name": "TipWlan-rf",
@@ -9,16 +9,15 @@
"rfConfigMap": { "rfConfigMap": {
"is5GHz": { "is5GHz": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is5GHz", "radioType": "is5GHz",
"radioMode": "modeAC", "radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz", "channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -26,17 +25,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -46,26 +40,31 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}, }
"minAutoCellSize": -65
}, },
"is2dot4GHz": { "is2dot4GHz": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"radioMode": "modeN", "radioMode": "modeN",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is20MHz", "channelBandwidth": "is20MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -73,17 +72,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -93,26 +87,31 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 20, "dropInSnrPercentage": 20,
"minLoadFactor": 50 "minLoadFactor": 50
}, }
"minAutoCellSize": -65
}, },
"is5GHzU": { "is5GHzU": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is5GHzU", "radioType": "is5GHzU",
"radioMode": "modeAC", "radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz", "channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -120,17 +119,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -140,26 +134,31 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}, }
"minAutoCellSize": -65
}, },
"is5GHzL": { "is5GHzL": {
"model_type": "RfElementConfiguration", "model_type": "RfElementConfiguration",
"rf": "TipWlan-rf",
"radioType": "is5GHzL", "radioType": "is5GHzL",
"radioMode": "modeAC", "radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100, "beaconInterval": 100,
"forceScanDuringVoice": "disabled", "forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535, "rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz", "channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo", "mimoMode": "twoByTwo",
"maxNumClients": 100, "maxNumClients": 100,
"multicastRate": "auto",
"autoChannelSelection": false, "autoChannelSelection": false,
"activeScanSettings": { "activeScanSettings": {
"model_type": "ActiveScanSettings", "model_type": "ActiveScanSettings",
@@ -167,17 +166,12 @@
"scanFrequencySeconds": 10, "scanFrequencySeconds": 10,
"scanDurationMillis": 65 "scanDurationMillis": 65
}, },
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApEnabled": null,
"neighbouringListApConfig": { "neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration", "model_type": "NeighbouringAPListConfiguration",
"minSignal": -85, "minSignal": -85,
"maxAps": 25 "maxAps": 25
}, },
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"channelHopSettings": { "channelHopSettings": {
"model_type": "ChannelHopSettings", "model_type": "ChannelHopSettings",
@@ -187,18 +181,24 @@
"nonWifiThresholdTimeInSeconds": 180, "nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI" "obssHopMode": "NON_WIFI"
}, },
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": { "bestApSettings": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}, }
"minAutoCellSize": -65
} }
}, },
"profileType": "rf" "profileType": "rf"
}, },
"createdTimestamp": 1602182806063, "createdTimestamp": 1606778369933,
"lastModifiedTimestamp": 1602182806063, "lastModifiedTimestamp": 1606778369933,
"childProfileIds": [] "childProfileIds": []
} }

View File

@@ -4,72 +4,6 @@
"id": 5, "id": 5,
"customerId": 2, "customerId": 2,
"profileType": "ssid", "profileType": "ssid",
"name": "TipWlan-cloud-hotspot-access",
"details": {
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-hotspot-access",
"appliedRadios": [
"is5GHzU",
"is5GHzL",
"is2dot4GHz"
],
"ssidAdminState": "enabled",
"secureMode": "wpa2PSK",
"vlanId": 1,
"keyStr": "testing123",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false,
"radioBasedConfigs": {
"is5GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is2dot4GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzL": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1602113058718,
"lastModifiedTimestamp": 1602113059547,
"childProfileIds": [
10
]
},
{
"model_type": "Profile",
"id": 11,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-3-radios", "name": "TipWlan-cloud-3-radios",
"details": { "details": {
"model_type": "SsidConfiguration", "model_type": "SsidConfiguration",
@@ -80,13 +14,15 @@
"is5GHzU" "is5GHzU"
], ],
"ssidAdminState": "enabled", "ssidAdminState": "enabled",
"secureMode": "open", "secureMode": "wpa2OnlyPSK",
"vlanId": 1, "vlanId": 1,
"keyStr": null, "keyStr": "openwifi",
"broadcastSsid": "enabled", "broadcastSsid": "enabled",
"keyRefresh": 0, "keyRefresh": 0,
"noLocalSubnets": false, "noLocalSubnets": false,
"radiusServiceName": null, "radiusServiceName": null,
"radiusAccountingServiceName": null,
"radiusAcountingServiceInterval": null,
"captivePortalId": null, "captivePortalId": null,
"bandwidthLimitDown": 0, "bandwidthLimitDown": 0,
"bandwidthLimitUp": 0, "bandwidthLimitUp": 0,
@@ -94,7 +30,7 @@
"clientBandwidthLimitUp": 0, "clientBandwidthLimitUp": 0,
"videoTrafficOnly": false, "videoTrafficOnly": false,
"radioBasedConfigs": { "radioBasedConfigs": {
"is5GHz": { "is5GHzL": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
@@ -106,17 +42,83 @@
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
}, },
"is5GHzU": { "is5GHz": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
}, },
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": "BRIDGE",
"profileType": "ssid"
},
"createdTimestamp": 1606778369598,
"lastModifiedTimestamp": 1606778369598,
"childProfileIds": [
]
},
{
"model_type": "Profile",
"id": 15,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-passpoint-access",
"details": {
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-passpoint-access",
"appliedRadios": [
"is5GHzL",
"is5GHzU"
],
"ssidAdminState": "enabled",
"secureMode": "wpa2PSK",
"vlanId": 1,
"keyStr": "testing123",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"radiusAccountingServiceName": null,
"radiusAcountingServiceInterval": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false,
"radioBasedConfigs": {
"is5GHzL": { "is5GHzL": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
},
"is2dot4GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
} }
}, },
"bonjourGatewayProfileId": null, "bonjourGatewayProfileId": null,
@@ -125,10 +127,77 @@
"forwardMode": null, "forwardMode": null,
"profileType": "ssid" "profileType": "ssid"
}, },
"createdTimestamp": 1602183994766, "createdTimestamp": 1606778369943,
"lastModifiedTimestamp": 1602183994766, "lastModifiedTimestamp": 1606778370811,
"childProfileIds": [ "childProfileIds": [
10 24
]
},
{
"model_type": "Profile",
"id": 16,
"customerId": 2,
"profileType": "ssid",
"name": "TipWlan-cloud-passpoint-osu",
"details": {
"model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-passpoint-osu",
"appliedRadios": [
"is2dot4GHz"
],
"ssidAdminState": "enabled",
"secureMode": "open",
"vlanId": 1,
"keyStr": null,
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"radiusAccountingServiceName": null,
"radiusAcountingServiceInterval": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false,
"radioBasedConfigs": {
"is5GHzL": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is2dot4GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHz": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
},
"is5GHzU": {
"model_type": "RadioBasedSsidConfiguration",
"enable80211r": null,
"enable80211k": null,
"enable80211v": null
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1606778369944,
"lastModifiedTimestamp": 1606778370352,
"childProfileIds": [
19,
20
] ]
} }
] ]

View File

@@ -1,15 +1,15 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 7, "id": 18,
"customerId": 2, "customerId": 2,
"profileType": "venue", "profileType": "passpoint_venue",
"name": "TipWlan-Hotspot20-Venue", "name": "TipWlan-Passpoint-Venue",
"details": { "details": {
"model_type": "VenueProfile", "model_type": "PasspointVenueProfile",
"venueNameSet": [ "venueNameSet": [
{ {
"model_type": "VenueName", "model_type": "PasspointVenueName",
"locale": "fr_CA", "locale": "fr_CA",
"dupleIso3Language": "fra", "dupleIso3Language": "fra",
"dupleName": "Exemple de lieu", "dupleName": "Exemple de lieu",
@@ -18,25 +18,26 @@
"asDuple": "fra:Exemple de lieu" "asDuple": "fra:Exemple de lieu"
}, },
{ {
"model_type": "VenueName", "model_type": "PasspointVenueName",
"locale": "en_CA", "locale": "en_CA",
"dupleIso3Language": "eng", "dupleIso3Language": "eng",
"dupleName": "Example venue", "dupleName": "Example passpoint_venue",
"defaultDupleSeparator": ":", "defaultDupleSeparator": ":",
"venueUrl": "http://www.example.com/info-eng", "venueUrl": "http://www.example.com/info-eng",
"asDuple": "eng:Example venue" "asDuple": "eng:Example passpoint_venue"
} }
], ],
"venueTypeAssignment": { "venueTypeAssignment": {
"model_type": "VenueTypeAssignment", "model_type": "PasspointVenueTypeAssignment",
"venueDescription": "Research and Development Facility", "venueDescription": "Research and Development Facility",
"venueGroupId": 2, "venueGroupId": 2,
"venueTypeId": 8 "venueTypeId": 8
}, },
"profileType": "venue" "profileType": "passpoint_venue"
}, },
"createdTimestamp": 1602113058725, "createdTimestamp": 1606778369950,
"lastModifiedTimestamp": 1602113058725, "lastModifiedTimestamp": 1606778369950,
"childProfileIds": [] "childProfileIds": [
]
} }
] ]

View File

@@ -7,6 +7,7 @@
<listEntry value="1"/> <listEntry value="1"/>
</listAttribute> </listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/> <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES" value="true"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/> <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/> <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>

View File

@@ -23,7 +23,16 @@
<artifactId>opensync-ext-interface</artifactId> <artifactId>opensync-ext-interface</artifactId>
<version>${tip-wlan-cloud.release.version}</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency>
<artifactId>client-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency>
<artifactId>customer-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency> <dependency>
<groupId>com.vmware.ovsdb</groupId> <groupId>com.vmware.ovsdb</groupId>
<artifactId>ovsdb-client</artifactId> <artifactId>ovsdb-client</artifactId>
@@ -37,12 +46,6 @@
</dependency> </dependency>
<!-- MQTT dependencies BEGIN --> <!-- MQTT dependencies BEGIN -->
<dependency>
<groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-opensync-protobuf</artifactId>
<version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency> <dependency>
<artifactId>service-metric-service-interface</artifactId> <artifactId>service-metric-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>

View File

@@ -30,7 +30,7 @@ import com.telecominfraproject.wlan.opensync.external.integration.models.Opensyn
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState; import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients; import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients;
import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDao; import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDao;
import com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities.OvsdbStringConstants; import com.telecominfraproject.wlan.opensync.util.OvsdbStringConstants;
import com.telecominfraproject.wlan.opensync.util.SslUtil; import com.telecominfraproject.wlan.opensync.util.SslUtil;
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration; import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
import com.vmware.ovsdb.callback.ConnectionCallback; import com.vmware.ovsdb.callback.ConnectionCallback;
@@ -193,38 +193,36 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
LOG.debug("Client {} connect for AP {}", clientCn, apId); LOG.debug("Client {} connect for AP {}", clientCn, apId);
ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
ovsdbDao.removeAllSsids(ovsdbClient); // always
ovsdbDao.removeAllInetConfigs(ovsdbClient);
ovsdbDao.removeWifiRrm(ovsdbClient);
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId); OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId);
if (opensyncAPConfig != null) { if (opensyncAPConfig != null) {
ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
ovsdbDao.removeAllSsids(ovsdbClient, opensyncAPConfig); // always
ovsdbDao.removeWifiRrm(ovsdbClient);
ovsdbDao.removeAllGreTunnels(ovsdbClient, opensyncAPConfig);
ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig); ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
ovsdbDao.configureInterfaces(ovsdbClient);
ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig); ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig); ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
ovsdbDao.createVlanNetworkInterfaces(ovsdbClient, opensyncAPConfig);
ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
if (opensyncAPConfig.getHotspotConfig() != null) { if (opensyncAPConfig.getHotspotConfig() != null) {
ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig); ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
} }
ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig);
if (((ApNetworkConfiguration) opensyncAPConfig.getApProfile().getDetails()).getSyntheticClientEnabled()) {
ovsdbDao.enableNetworkProbeForSyntheticClient(ovsdbClient);
}
} else {
ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
ovsdbDao.removeAllSsids(ovsdbClient); // always
ovsdbDao.removeWifiRrm(ovsdbClient);
ovsdbDao.removeAllGreTunnels(ovsdbClient, null);
}
ovsdbDao.configureInterfaces(ovsdbClient);
ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig);
if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) { if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) {
ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats); ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats);
} }
} else {
LOG.info("No Configuration available for {}", apId);
}
LOG.debug("Client connect Done"); LOG.debug("Client connect Done");
return connectNodeInfo; return connectNodeInfo;
@@ -270,19 +268,23 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
} }
ovsdbDao.removeAllPasspointConfigs(ovsdbClient); ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
ovsdbDao.removeAllSsids(ovsdbClient, opensyncAPConfig); // always ovsdbDao.removeAllSsids(ovsdbClient); // always
ovsdbDao.removeAllGreTunnels(ovsdbClient, opensyncAPConfig); ovsdbDao.removeAllInetConfigs(ovsdbClient);
ovsdbDao.removeWifiRrm(ovsdbClient); ovsdbDao.removeWifiRrm(ovsdbClient);
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig); ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
ovsdbDao.configureInterfaces(ovsdbClient);
ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig); ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig); ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
ovsdbDao.createVlanNetworkInterfaces(ovsdbClient, opensyncAPConfig);
ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
if (opensyncAPConfig.getHotspotConfig() != null) { if (opensyncAPConfig.getHotspotConfig() != null) {
ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig); ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
} }
ovsdbDao.configureInterfaces(ovsdbClient);
ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig); ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig);
if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) { if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) {
ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats); ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats);
@@ -372,6 +374,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
@Override @Override
public void update(TableUpdates tableUpdates) { public void update(TableUpdates tableUpdates) {
try {
LOG.info(OvsdbDao.dhcpLeasedIpDbTable + "_" + key + " monitor callback received {}", LOG.info(OvsdbDao.dhcpLeasedIpDbTable + "_" + key + " monitor callback received {}",
tableUpdates); tableUpdates);
@@ -429,6 +432,9 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
extIntegrationInterface.dhcpLeasedIpDbTableUpdate(update, key, RowUpdateOperation.MODIFY); extIntegrationInterface.dhcpLeasedIpDbTableUpdate(update, key, RowUpdateOperation.MODIFY);
} }
} catch (Exception e) {
LOG.error("dhcpLeasedIpDbTableUpdate failed", e);
}
} }
@@ -447,6 +453,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
@Override @Override
public void update(TableUpdates tableUpdates) { public void update(TableUpdates tableUpdates) {
try {
LOG.info(OvsdbDao.commandStateDbTable + "_" + key + " monitor callback received {}", LOG.info(OvsdbDao.commandStateDbTable + "_" + key + " monitor callback received {}",
tableUpdates); tableUpdates);
@@ -504,6 +511,9 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
extIntegrationInterface.commandStateDbTableUpdate(update, key, RowUpdateOperation.MODIFY); extIntegrationInterface.commandStateDbTableUpdate(update, key, RowUpdateOperation.MODIFY);
} }
} catch (Exception e) {
LOG.error("commandStateDbTableUpdate failed", e);
}
} }
@@ -521,10 +531,14 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
@Override @Override
public void update(TableUpdates tableUpdates) { public void update(TableUpdates tableUpdates) {
try {
LOG.info(OvsdbDao.awlanNodeDbTable + "_" + key + " monitor callback received {}", tableUpdates); LOG.info(OvsdbDao.awlanNodeDbTable + "_" + key + " monitor callback received {}", tableUpdates);
extIntegrationInterface.awlanNodeDbTableUpdate( extIntegrationInterface.awlanNodeDbTableUpdate(
ovsdbDao.getOpensyncAWLANNode(tableUpdates, key, ovsdbClient), key); ovsdbDao.getOpensyncAWLANNode(tableUpdates, key, ovsdbClient), key);
} catch (Exception e) {
LOG.error("awlanNodeDbTableUpdate failed",e);
}
} }
}); });
@@ -542,6 +556,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
@Override @Override
public void update(TableUpdates tableUpdates) { public void update(TableUpdates tableUpdates) {
try {
LOG.info(OvsdbDao.wifiAssociatedClientsDbTable + "_" + key + " monitor callback received {}", LOG.info(OvsdbDao.wifiAssociatedClientsDbTable + "_" + key + " monitor callback received {}",
tableUpdates); tableUpdates);
@@ -567,6 +582,9 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
// now address the update/add // now address the update/add
extIntegrationInterface.wifiAssociatedClientsDbTableUpdate(associatedClients, key); extIntegrationInterface.wifiAssociatedClientsDbTableUpdate(associatedClients, key);
} catch (Exception e) {
LOG.error("wifiAssociatedClientsDbTableUpdate failed", e);
}
} }
@@ -585,6 +603,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
@Override @Override
public void update(TableUpdates tableUpdates) { public void update(TableUpdates tableUpdates) {
try {
LOG.info(OvsdbDao.ovsdbName, LOG.info(OvsdbDao.ovsdbName,
OvsdbDao.wifiInetStateDbTable + "_" + key + " monitor callback received {}", OvsdbDao.wifiInetStateDbTable + "_" + key + " monitor callback received {}",
tableUpdates); tableUpdates);
@@ -612,6 +631,9 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
// now process updates and mutations // now process updates and mutations
extIntegrationInterface.wifiInetStateDbTableUpdate(inetStateInsertOrUpdate, key); extIntegrationInterface.wifiInetStateDbTableUpdate(inetStateInsertOrUpdate, key);
} catch (Exception e) {
LOG.error("wifiInetStateDbTableUpdate failed",e);
}
} }
@@ -629,11 +651,15 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
@Override @Override
public void update(TableUpdates tableUpdates) { public void update(TableUpdates tableUpdates) {
try {
LOG.info(OvsdbDao.wifiRadioStateDbTable + "_" + key + " monitor callback received {}", LOG.info(OvsdbDao.wifiRadioStateDbTable + "_" + key + " monitor callback received {}",
tableUpdates); tableUpdates);
extIntegrationInterface.wifiRadioStatusDbTableUpdate( extIntegrationInterface.wifiRadioStatusDbTableUpdate(
ovsdbDao.getOpensyncAPRadioState(tableUpdates, key, ovsdbClient), key); ovsdbDao.getOpensyncAPRadioState(tableUpdates, key, ovsdbClient), key);
} catch (Exception e) {
LOG.error("wifiRadioStatusDbTableUpdate failed",e);
}
} }
}); });
@@ -650,6 +676,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
@Override @Override
public void update(TableUpdates tableUpdates) { public void update(TableUpdates tableUpdates) {
try {
LOG.info(OvsdbDao.wifiVifStateDbTable + "_" + key + " monitor callback received {}", LOG.info(OvsdbDao.wifiVifStateDbTable + "_" + key + " monitor callback received {}",
tableUpdates); tableUpdates);
@@ -683,6 +710,9 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
} }
} }
} catch (Exception e) {
LOG.error("wifiVIFStateDbTableUpdate failed", e);
}
} }

View File

@@ -8,7 +8,10 @@ import java.util.Set;
import com.vmware.ovsdb.protocol.operation.notation.Uuid; import com.vmware.ovsdb.protocol.operation.notation.Uuid;
public class WifiVifConfigInfo implements Cloneable{ public class WifiVifConfigInfo implements Cloneable {
// multi_ap
// {"key":{"enum":["set",["backhaul_bss","backhaul_sta","fronthaul_backhaul_bss","fronthaul_bss","none"]],"type":"string"},"min":0}
public String bridge; public String bridge;
public int btm; public int btm;
@@ -22,7 +25,11 @@ public class WifiVifConfigInfo implements Cloneable{
public String ssidBroadcast; public String ssidBroadcast;
public boolean uapsdEnable; public boolean uapsdEnable;
public int vifRadioIdx; public int vifRadioIdx;
public Map<String,String> security; public Map<String, String> security;
public Map<String, String> captivePortal;
public Set<String> captiveAllowlist;
public Map<String, String> customOptions;
public Map<String, String> meshOptions;
public Uuid uuid; public Uuid uuid;
public int vlanId; public int vlanId;
@@ -31,56 +38,96 @@ public class WifiVifConfigInfo implements Cloneable{
public Set<String> macList; public Set<String> macList;
public String macListType; public String macListType;
public int ftMobilityDomain; public int ftMobilityDomain;
public boolean wpsPbc;
public boolean wps;
public boolean wds;
public String wpsPbcKeyId;
public boolean mcast2ucast;
public boolean dynamicBeacon;
public int vifDbgLvl;
public Set<Uuid> credentialConfigs;
public String parent;
public String multiAp;
@Override @Override
public WifiVifConfigInfo clone() { public WifiVifConfigInfo clone() {
try { try {
WifiVifConfigInfo ret = (WifiVifConfigInfo)super.clone(); WifiVifConfigInfo ret = (WifiVifConfigInfo) super.clone();
if(security!=null) { if (security != null) {
ret.security = new HashMap<>(this.security); ret.security = new HashMap<>(this.security);
} }
if (macList!=null) { if (macList != null) {
ret.macList = new HashSet<>(this.macList); ret.macList = new HashSet<>(this.macList);
} }
if (captivePortal != null) {
ret.captivePortal = new HashMap<>(this.captivePortal);
}
if (captiveAllowlist != null) {
ret.captiveAllowlist = new HashSet<>(this.captiveAllowlist);
}
if (customOptions != null) {
ret.customOptions = new HashMap<>(this.customOptions);
}
if (meshOptions != null) {
ret.meshOptions = new HashMap<>(this.meshOptions);
}
if (credentialConfigs != null) {
ret.credentialConfigs = new HashSet<>(this.credentialConfigs);
}
return ret; return ret;
}catch(CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {
throw new IllegalStateException("Cannot clone ", e); throw new IllegalStateException("Cannot clone ", e);
} }
} }
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash(apBridge, bridge, btm, enabled, ftMobilityDomain, ftPsk, groupRekey, ifName, macList, return Objects.hash(apBridge, bridge, btm, captiveAllowlist, captivePortal, credentialConfigs, customOptions,
macListType, minHwMode, mode, rrm, security, ssid, ssidBroadcast, uapsdEnable, uuid, vifRadioIdx, dynamicBeacon, enabled, ftMobilityDomain, ftPsk, groupRekey, ifName, macList, macListType, mcast2ucast,
vlanId); meshOptions, minHwMode, mode, multiAp, parent, rrm, security, ssid, ssidBroadcast, uapsdEnable, uuid,
vifDbgLvl, vifRadioIdx, vlanId, wds, wps, wpsPbc, wpsPbcKeyId);
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
if (this == obj) { if (this == obj)
return true; return true;
} if (obj == null)
if (!(obj instanceof WifiVifConfigInfo)) { return false;
if (getClass() != obj.getClass())
return false; return false;
}
WifiVifConfigInfo other = (WifiVifConfigInfo) obj; WifiVifConfigInfo other = (WifiVifConfigInfo) obj;
return Objects.equals(apBridge, other.apBridge) && Objects.equals(bridge, other.bridge) && btm == other.btm return Objects.equals(apBridge, other.apBridge) && Objects.equals(bridge, other.bridge) && btm == other.btm
&& Objects.equals(captiveAllowlist, other.captiveAllowlist)
&& Objects.equals(captivePortal, other.captivePortal)
&& Objects.equals(credentialConfigs, other.credentialConfigs)
&& Objects.equals(customOptions, other.customOptions) && dynamicBeacon == other.dynamicBeacon
&& enabled == other.enabled && ftMobilityDomain == other.ftMobilityDomain && ftPsk == other.ftPsk && enabled == other.enabled && ftMobilityDomain == other.ftMobilityDomain && ftPsk == other.ftPsk
&& groupRekey == other.groupRekey && Objects.equals(ifName, other.ifName) && groupRekey == other.groupRekey && Objects.equals(ifName, other.ifName)
&& Objects.equals(macList, other.macList) && Objects.equals(macListType, other.macListType) && Objects.equals(macList, other.macList) && Objects.equals(macListType, other.macListType)
&& Objects.equals(minHwMode, other.minHwMode) && Objects.equals(mode, other.mode) && rrm == other.rrm && mcast2ucast == other.mcast2ucast && Objects.equals(meshOptions, other.meshOptions)
&& Objects.equals(minHwMode, other.minHwMode) && Objects.equals(mode, other.mode)
&& Objects.equals(multiAp, other.multiAp) && Objects.equals(parent, other.parent) && rrm == other.rrm
&& Objects.equals(security, other.security) && Objects.equals(ssid, other.ssid) && Objects.equals(security, other.security) && Objects.equals(ssid, other.ssid)
&& Objects.equals(ssidBroadcast, other.ssidBroadcast) && uapsdEnable == other.uapsdEnable && Objects.equals(ssidBroadcast, other.ssidBroadcast) && uapsdEnable == other.uapsdEnable
&& Objects.equals(uuid, other.uuid) && vifRadioIdx == other.vifRadioIdx && vlanId == other.vlanId; && Objects.equals(uuid, other.uuid) && vifDbgLvl == other.vifDbgLvl && vifRadioIdx == other.vifRadioIdx
&& vlanId == other.vlanId && wds == other.wds && wps == other.wps && wpsPbc == other.wpsPbc
&& Objects.equals(wpsPbcKeyId, other.wpsPbcKeyId);
} }
@Override @Override
public String toString() { public String toString() {
return String.format( return "WifiVifConfigInfo [bridge=" + bridge + ", btm=" + btm + ", enabled=" + enabled + ", ftPsk=" + ftPsk
"WifiVifConfigInfo [bridge=%s, ap_bridge=%s, btm=%s, enabled=%s, ftPsk=%s, ftMobilityDomain=%s, groupRekey=%s, ifName=%s, minHwMode=%s, mode=%s, rrm=%s, ssid=%s, ssidBroadcast=%s, uapsdEnable=%s, vifRadioIdx=%s, security=%s, uuid=%s, vlanId=%s, macList=%s, macListType=%s]", + ", groupRekey=" + groupRekey + ", ifName=" + ifName + ", mode=" + mode + ", rrm=" + rrm + ", ssid="
bridge, apBridge, btm, enabled, ftPsk, ftMobilityDomain, groupRekey, ifName, minHwMode, mode, rrm, ssid, ssidBroadcast, uapsdEnable, + ssid + ", ssidBroadcast=" + ssidBroadcast + ", uapsdEnable=" + uapsdEnable + ", vifRadioIdx="
vifRadioIdx, security, uuid, vlanId, macList, macListType); + vifRadioIdx + ", security=" + security + ", captivePortal=" + captivePortal + ", captiveAllowlist="
+ captiveAllowlist + ", customOptions=" + customOptions + ", meshOptions=" + meshOptions + ", uuid="
+ uuid + ", vlanId=" + vlanId + ", apBridge=" + apBridge + ", minHwMode=" + minHwMode + ", macList="
+ macList + ", macListType=" + macListType + ", ftMobilityDomain=" + ftMobilityDomain + ", wpsPbc="
+ wpsPbc + ", wps=" + wps + ", wds=" + wds + ", wpsPbcKeyId=" + wpsPbcKeyId + ", mcast2ucast="
+ mcast2ucast + ", dynamicBeacon=" + dynamicBeacon + ", vifDbgLvl=" + vifDbgLvl + ", credentialConfigs="
+ credentialConfigs + ", parent=" + parent + ", multiAp=" + multiAp + "]";
} }
} }

View File

@@ -1,4 +1,4 @@
package com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities; package com.telecominfraproject.wlan.opensync.util;
public class OvsdbStringConstants { public class OvsdbStringConstants {

View File

@@ -1,11 +1,11 @@
package com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities; package com.telecominfraproject.wlan.opensync.util;
import com.telecominfraproject.wlan.client.models.ClientType; import com.telecominfraproject.wlan.client.models.ClientType;
import com.telecominfraproject.wlan.core.model.equipment.RadioType; import com.telecominfraproject.wlan.core.model.equipment.RadioType;
import com.telecominfraproject.wlan.core.model.equipment.SecurityType; import com.telecominfraproject.wlan.core.model.equipment.SecurityType;
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo; import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDeviceType; import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDeviceType;
import com.telecominfraproject.wlan.profile.metrics.ChannelUtilizationSurveyType; import com.telecominfraproject.wlan.profile.metrics.ServiceMetricsChannelUtilizationSurveyType;
import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError; import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError;
import com.telecominfraproject.wlan.servicemetric.models.ServiceMetricDataType; import com.telecominfraproject.wlan.servicemetric.models.ServiceMetricDataType;
import com.telecominfraproject.wlan.status.equipment.models.EquipmentUpgradeState; import com.telecominfraproject.wlan.status.equipment.models.EquipmentUpgradeState;
@@ -83,7 +83,7 @@ public class OvsdbToWlanCloudTypeMappingUtility {
} }
public static String getOvsdbStatsSurveyTypeFromProfileSurveyType(ChannelUtilizationSurveyType surveyType) { public static String getOvsdbStatsSurveyTypeFromProfileSurveyType(ServiceMetricsChannelUtilizationSurveyType surveyType) {
switch (surveyType) { switch (surveyType) {
case FULL: case FULL:
return "full"; return "full";

View File

@@ -126,7 +126,7 @@ public class OpensyncGatewayTipWlanOvsdbClientTest {
Mockito.verify(ovsdbSessionMapInterface).getSession("Test_Client_21P10C68818122"); Mockito.verify(ovsdbSessionMapInterface).getSession("Test_Client_21P10C68818122");
Mockito.verify(ovsdbSession).getOvsdbClient(); Mockito.verify(ovsdbSession).getOvsdbClient();
Mockito.verify(opensyncExternalIntegrationInterface).getApConfig("Test_Client_21P10C68818122"); Mockito.verify(opensyncExternalIntegrationInterface).getApConfig("Test_Client_21P10C68818122");
Mockito.verify(ovsdbDao).removeAllSsids(ovsdbClient, apConfig); Mockito.verify(ovsdbDao).removeAllSsids(ovsdbClient);
Mockito.verify(ovsdbDao).removeAllStatsConfigs(ovsdbClient); Mockito.verify(ovsdbDao).removeAllStatsConfigs(ovsdbClient);
Mockito.verify(ovsdbDao).configureWifiRadios(ovsdbClient, apConfig); Mockito.verify(ovsdbDao).configureWifiRadios(ovsdbClient, apConfig);
Mockito.verify(ovsdbDao).configureSsids(ovsdbClient, apConfig); Mockito.verify(ovsdbDao).configureSsids(ovsdbClient, apConfig);

View File

@@ -1,5 +1,6 @@
package com.telecominfraproject.wlan.opensync.ovsdb.dao; package com.telecominfraproject.wlan.opensync.ovsdb.dao;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
@@ -7,6 +8,7 @@ import java.net.InetAddress;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
@@ -32,13 +34,15 @@ import org.springframework.test.context.junit4.SpringRunner;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.telecominfraproject.wlan.customer.models.Customer; import com.telecominfraproject.wlan.location.models.Location;
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo; import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig; import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPHotspot20Config; import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPHotspot20Config;
import com.telecominfraproject.wlan.profile.models.Profile; import com.telecominfraproject.wlan.profile.models.Profile;
import com.telecominfraproject.wlan.profile.models.ProfileType; import com.telecominfraproject.wlan.profile.models.ProfileType;
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration; import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
import com.telecominfraproject.wlan.status.network.models.RadiusDetails;
import com.vmware.ovsdb.exception.OvsdbClientException; import com.vmware.ovsdb.exception.OvsdbClientException;
import com.vmware.ovsdb.protocol.operation.notation.Atom; import com.vmware.ovsdb.protocol.operation.notation.Atom;
import com.vmware.ovsdb.protocol.operation.notation.Row; import com.vmware.ovsdb.protocol.operation.notation.Row;
@@ -62,6 +66,8 @@ import com.vmware.ovsdb.service.OvsdbClient;
}) })
public class OvsdbDaoTest { public class OvsdbDaoTest {
static final int DEFAULT_CUSTOMER_ID = 1;
private static final long HOTSPOT_CONFIG_ID = 1; private static final long HOTSPOT_CONFIG_ID = 1;
private static final long HOTSPOT_PROVIDER_ID_1 = 2; private static final long HOTSPOT_PROVIDER_ID_1 = 2;
private static final long HOTSPOT_PROVIDER_ID_2 = 3; private static final long HOTSPOT_PROVIDER_ID_2 = 3;
@@ -136,48 +142,6 @@ public class OvsdbDaoTest {
mockito.finishMocking(); mockito.finishMocking();
} }
@Test
public void testRemoveAllGreTunnels() throws Exception {
List<Row> rows = new ArrayList<>();
OperationResult[] operationResult = new OperationResult[] { new SelectResult(rows) };
Mockito.when(ovsdbClient.transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList()))
.thenReturn(selectionFutureResult);
Mockito.when(selectionFutureResult.get(30, TimeUnit.SECONDS)).thenReturn(operationResult);
Profile apProfile = new Profile();
apProfile.setCustomerId(2);
apProfile.setId(1L);
apProfile.setName("ApProfile");
apProfile.setProfileType(ProfileType.equipment_ap);
ApNetworkConfiguration tunnelProfileDetails = ApNetworkConfiguration.createWithDefaults();
tunnelProfileDetails.setGreLocalInetAddr(InetAddress.getByName("10.0.10.10"));
tunnelProfileDetails.setGreRemoteInetAddr(InetAddress.getByName("192.168.0.10"));
tunnelProfileDetails.setGreTunnelName("gre1");
tunnelProfileDetails.setGreParentIfName("wan");
apProfile.setDetails(tunnelProfileDetails);
OpensyncAPConfig apConfig = Mockito.mock(OpensyncAPConfig.class);
Mockito.when(apConfig.getApProfile()).thenReturn(apProfile);
ovsdbDao.removeAllGreTunnels(ovsdbClient, apConfig);
Mockito.verify(apConfig, Mockito.times(2)).getApProfile();
Mockito.verify(ovsdbClient, Mockito.times(1)).transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList());
}
@Test
public void testRemoveAllGreTunnelsNoProfile() throws Exception {
List<Row> rows = new ArrayList<>();
OperationResult[] operationResult = new OperationResult[] { new SelectResult(rows) };
Mockito.when(ovsdbClient.transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList()))
.thenReturn(selectionFutureResult);
Mockito.when(selectionFutureResult.get(30, TimeUnit.SECONDS)).thenReturn(operationResult);
ovsdbDao.removeAllGreTunnels(ovsdbClient, null);
Mockito.verify(ovsdbClient, Mockito.times(1)).transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList());
}
@Test @Test
public void testConfigureGreTunnels() throws Exception { public void testConfigureGreTunnels() throws Exception {
List<Row> rows = new ArrayList<>(); List<Row> rows = new ArrayList<>();
@@ -207,8 +171,60 @@ public class OvsdbDaoTest {
} }
@Test
public void testGetRadiusConfiguration() throws Exception {
OpensyncAPConfig apConfig = new OpensyncAPConfig();
Profile profileRadius = OvsdbDaoTestUtilities.createRadiusProfile(DEFAULT_CUSTOMER_ID);
apConfig.setRadiusProfiles(List.of(profileRadius));
SsidConfiguration ssidConfig = SsidConfiguration.createWithDefaults();
ssidConfig.setRadiusServiceName("Radius-Profile");
Map<String, String> security = new HashMap<>();
Location location = new Location();
location.setName("Ottawa");
apConfig.setEquipmentLocation(location);
ovsdbDao.getRadiusConfiguration(apConfig, ssidConfig, security);
assert (security.get("radius_server_ip").equals("192.168.0.1"));
assert (security.get("radius_server_port").equals("1812"));
assert (security.get("radius_server_secret").equals("testing123"));
}
@Test
public void testGetRadiusAccountingConfiguration() throws Exception {
OpensyncAPConfig apConfig = new OpensyncAPConfig();
Profile profileRadius = OvsdbDaoTestUtilities.createRadiusProfile(DEFAULT_CUSTOMER_ID);
apConfig.setRadiusProfiles(List.of(profileRadius));
SsidConfiguration ssidConfig = SsidConfiguration.createWithDefaults();
ssidConfig.setRadiusAccountingServiceName("Radius-Profile");
ssidConfig.setRadiusAcountingServiceInterval(60);
Map<String, String> security = new HashMap<>();
Location location = new Location();
location.setName("Ottawa");
apConfig.setEquipmentLocation(location);
ovsdbDao.getRadiusAccountingConfiguration(apConfig, ssidConfig, security);
assert (Integer.valueOf(security.get("radius_acct_interval"))
.equals(ssidConfig.getRadiusAcountingServiceInterval()));
assert (security.get("radius_acct_ip").equals("192.168.0.1"));
assert (security.get("radius_acct_port").equals("1812"));
assert (security.get("radius_acct_secret").equals("testing123"));
}
@Test
public void testGetRadiusAccountingConfigurationNoAcctInterval() throws Exception {
OpensyncAPConfig apConfig = new OpensyncAPConfig();
Profile profileRadius = OvsdbDaoTestUtilities.createRadiusProfile(DEFAULT_CUSTOMER_ID);
apConfig.setRadiusProfiles(List.of(profileRadius));
SsidConfiguration ssidConfig = SsidConfiguration.createWithDefaults();
ssidConfig.setRadiusAccountingServiceName("Radius-Profile");
Map<String, String> security = new HashMap<>();
Location location = new Location();
location.setName("Ottawa");
apConfig.setEquipmentLocation(location);
ovsdbDao.getRadiusAccountingConfiguration(apConfig, ssidConfig, security);
assert (security.get("radius_acct_interval").equals("0"));
assert (security.get("radius_acct_ip").equals("192.168.0.1"));
assert (security.get("radius_acct_port").equals("1812"));
assert (security.get("radius_acct_secret").equals("testing123"));
}
@Test @Test
public void testConfigureHotspots() throws Exception { public void testConfigureHotspots() throws Exception {
@@ -225,36 +241,35 @@ public class OvsdbDaoTest {
OpensyncAPConfig apConfig = new OpensyncAPConfig(); OpensyncAPConfig apConfig = new OpensyncAPConfig();
OpensyncAPHotspot20Config hsConfig = new OpensyncAPHotspot20Config(); OpensyncAPHotspot20Config hsConfig = new OpensyncAPHotspot20Config();
Customer customer = new Customer();
Profile profileSsidPsk = OvsdbDaoTestUtilities.createPasspointAccessSsid(customer); Profile profileSsidPsk = OvsdbDaoTestUtilities.createPasspointAccessSsid(DEFAULT_CUSTOMER_ID);
profileSsidPsk.setId(SSID_PSK_ID); profileSsidPsk.setId(SSID_PSK_ID);
Profile profileSsidOsu = OvsdbDaoTestUtilities.createPasspointOsuSsid(customer); Profile profileSsidOsu = OvsdbDaoTestUtilities.createPasspointOsuSsid(DEFAULT_CUSTOMER_ID);
profileSsidOsu.setId(SSID_OSU_ID); profileSsidOsu.setId(SSID_OSU_ID);
Profile passpointOperatorProfile = OvsdbDaoTestUtilities.createPasspointOperatorProfile(customer); Profile passpointOperatorProfile = OvsdbDaoTestUtilities.createPasspointOperatorProfile(DEFAULT_CUSTOMER_ID);
passpointOperatorProfile.setId(OPERATOR_ID); passpointOperatorProfile.setId(OPERATOR_ID);
Profile passpointVenueProfile = OvsdbDaoTestUtilities.createPasspointVenueProfile(customer); Profile passpointVenueProfile = OvsdbDaoTestUtilities.createPasspointVenueProfile(DEFAULT_CUSTOMER_ID);
passpointVenueProfile.setId(VENUE_ID); passpointVenueProfile.setId(VENUE_ID);
Profile hotspot20IdProviderProfile = new Profile(); Profile hotspot20IdProviderProfile = new Profile();
hotspot20IdProviderProfile.setId(HOTSPOT_PROVIDER_ID_1); hotspot20IdProviderProfile.setId(HOTSPOT_PROVIDER_ID_1);
hotspot20IdProviderProfile = OvsdbDaoTestUtilities.createPasspointIdProviderProfile(customer, hotspot20IdProviderProfile = OvsdbDaoTestUtilities.createPasspointIdProviderProfile(DEFAULT_CUSTOMER_ID,
hotspot20IdProviderProfile, "TipWlan-Hotspot20-OSU-Provider", "Rogers AT&T Wireless", "Canada", "ca", hotspot20IdProviderProfile, "TipWlan-Hotspot20-OSU-Provider", "Rogers AT&T Wireless", "Canada", "ca",
302, 720, "rogers.com", 1); 302, 720, "rogers.com", 1);
Profile hotspot20IdProviderProfile2 = new Profile(); Profile hotspot20IdProviderProfile2 = new Profile();
hotspot20IdProviderProfile2.setId(HOTSPOT_PROVIDER_ID_2); hotspot20IdProviderProfile2.setId(HOTSPOT_PROVIDER_ID_2);
hotspot20IdProviderProfile2 = OvsdbDaoTestUtilities.createPasspointIdProviderProfile(customer, hotspot20IdProviderProfile2 = OvsdbDaoTestUtilities.createPasspointIdProviderProfile(DEFAULT_CUSTOMER_ID,
hotspot20IdProviderProfile2, "TipWlan-Hotspot20-OSU-Provider-2", "Telus Mobility", "Canada", "ca", 302, hotspot20IdProviderProfile2, "TipWlan-Hotspot20-OSU-Provider-2", "Telus Mobility", "Canada", "ca", 302,
220, "telus.com", 1); 220, "telus.com", 1);
profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile.getId()); profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile.getId());
profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile2.getId()); profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile2.getId());
Profile passpointHotspotConfig = OvsdbDaoTestUtilities.createPasspointHotspotConfig(customer, Profile passpointHotspotConfig = OvsdbDaoTestUtilities.createPasspointHotspotConfig(DEFAULT_CUSTOMER_ID,
hotspot20IdProviderProfile2, hotspot20IdProviderProfile, passpointOperatorProfile, hotspot20IdProviderProfile2, hotspot20IdProviderProfile, passpointOperatorProfile,
passpointVenueProfile, profileSsidPsk, profileSsidOsu); passpointVenueProfile, profileSsidPsk, profileSsidOsu);
passpointHotspotConfig.setId(HOTSPOT_CONFIG_ID); passpointHotspotConfig.setId(HOTSPOT_CONFIG_ID);
Profile hotspotProfileAp = OvsdbDaoTestUtilities.createPasspointApProfile(customer, profileSsidPsk, Profile hotspotProfileAp = OvsdbDaoTestUtilities.createPasspointApProfile(DEFAULT_CUSTOMER_ID, profileSsidPsk,
profileSsidOsu); profileSsidOsu);
hotspotProfileAp.setId(EQUIPMENT_AP_ID); hotspotProfileAp.setId(EQUIPMENT_AP_ID);
@@ -269,21 +284,23 @@ public class OvsdbDaoTest {
apConfig.setSsidProfile(List.of(profileSsidOsu, profileSsidPsk)); apConfig.setSsidProfile(List.of(profileSsidOsu, profileSsidPsk));
Mockito.when(futureResult.get(Mockito.anyLong(), Mockito.eq(TimeUnit.SECONDS))).thenReturn(OvsdbDaoTestUtilities.hs20IconRows()) Mockito.when(futureResult.get(Mockito.anyLong(), Mockito.eq(TimeUnit.SECONDS)))
.thenReturn(OvsdbDaoTestUtilities.hs20InsertIconRows()).thenReturn(OvsdbDaoTestUtilities.hs20OsuProviders()).thenReturn(OvsdbDaoTestUtilities.hs20IconRows()) .thenReturn(OvsdbDaoTestUtilities.hs20IconRows()).thenReturn(OvsdbDaoTestUtilities.hs20InsertIconRows())
.thenReturn(OvsdbDaoTestUtilities.hs20IconRows()).thenReturn(OvsdbDaoTestUtilities.hs20InsertProviderRows()).thenReturn(OvsdbDaoTestUtilities.hs20Config()) .thenReturn(OvsdbDaoTestUtilities.hs20OsuProviders()).thenReturn(OvsdbDaoTestUtilities.hs20IconRows())
.thenReturn(OvsdbDaoTestUtilities.hs20OsuProviders()).thenReturn(OvsdbDaoTestUtilities.vifConfigRows()).thenReturn(OvsdbDaoTestUtilities.vifConfigRows()) .thenReturn(OvsdbDaoTestUtilities.hs20IconRows())
.thenReturn(OvsdbDaoTestUtilities.hs20InsertProviderRows())
.thenReturn(OvsdbDaoTestUtilities.hs20Config()).thenReturn(OvsdbDaoTestUtilities.hs20OsuProviders())
.thenReturn(OvsdbDaoTestUtilities.vifConfigRows()).thenReturn(OvsdbDaoTestUtilities.vifConfigRows())
.thenReturn(OvsdbDaoTestUtilities.hs20Config()); .thenReturn(OvsdbDaoTestUtilities.hs20Config());
Mockito.when(ovsdbClient.transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList())).thenReturn(futureResult); Mockito.when(ovsdbClient.transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList())).thenReturn(futureResult);
ovsdbDao.configureHotspots(ovsdbClient, apConfig); ovsdbDao.configureHotspots(ovsdbClient, apConfig);
Mockito.verify(futureResult, Mockito.times(11)).get(Mockito.anyLong(), Mockito.eq(TimeUnit.SECONDS)); Mockito.verify(futureResult, Mockito.times(13)).get(Mockito.anyLong(), Mockito.eq(TimeUnit.SECONDS));
} }
@Test @Test
public void testConfigureGreTunnelsWithNoLocalAddress() throws Exception { public void testConfigureGreTunnelsWithNoLocalAddress() throws Exception {
List<Row> rows = new ArrayList<>(); List<Row> rows = new ArrayList<>();
@@ -692,9 +709,7 @@ public class OvsdbDaoTest {
} }
static Row[] hs20Icons = { static Row[] hs20Icons = {
}; };
} }

View File

@@ -1,5 +1,7 @@
package com.telecominfraproject.wlan.opensync.ovsdb.dao; package com.telecominfraproject.wlan.opensync.ovsdb.dao;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
@@ -10,18 +12,20 @@ import java.util.Set;
import java.util.UUID; import java.util.UUID;
import com.telecominfraproject.wlan.core.model.equipment.RadioType; import com.telecominfraproject.wlan.core.model.equipment.RadioType;
import com.telecominfraproject.wlan.customer.models.Customer;
import com.telecominfraproject.wlan.profile.models.Profile; import com.telecominfraproject.wlan.profile.models.Profile;
import com.telecominfraproject.wlan.profile.models.ProfileType; import com.telecominfraproject.wlan.profile.models.ProfileType;
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration; import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
import com.telecominfraproject.wlan.profile.passpoint.hotspot.models.Hotspot2Profile; import com.telecominfraproject.wlan.profile.passpoint.models.PasspointDuple;
import com.telecominfraproject.wlan.profile.passpoint.models.Hotspot20Duple; import com.telecominfraproject.wlan.profile.passpoint.models.PasspointMccMnc;
import com.telecominfraproject.wlan.profile.passpoint.models.MccMnc; import com.telecominfraproject.wlan.profile.passpoint.models.PasspointProfile;
import com.telecominfraproject.wlan.profile.passpoint.operator.models.OperatorProfile; import com.telecominfraproject.wlan.profile.passpoint.models.operator.PasspointOperatorProfile;
import com.telecominfraproject.wlan.profile.passpoint.provider.models.Hotspot20IdProviderProfile; import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointNaiRealmInformation;
import com.telecominfraproject.wlan.profile.passpoint.provider.models.NaiRealmInformation; import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointOsuIcon;
import com.telecominfraproject.wlan.profile.passpoint.provider.models.OsuIcon; import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointOsuProviderProfile;
import com.telecominfraproject.wlan.profile.passpoint.venue.models.VenueProfile; import com.telecominfraproject.wlan.profile.passpoint.models.venue.PasspointVenueProfile;
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.RfConfiguration;
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration; import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.SecureMode; import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.SecureMode;
@@ -36,119 +40,122 @@ import com.vmware.ovsdb.protocol.operation.result.UpdateResult;
public class OvsdbDaoTestUtilities { public class OvsdbDaoTestUtilities {
// Static creation of Profiles and Results to use with the OvsdbDao JUnit
// tests.
static void createPasspointHotspot(int customerId, Profile passpointHotspotConfig, Profile passpointOperatorProfile,
Profile passpointVenueProfile, Profile hotspot20IdProviderProfile, Profile hotspot20IdProviderProfile2,
Profile profileSsidPsk, Profile profileSsidOsu, Profile hotspotProfileAp) {
// Static creation of Profiles and Results to use with the OvsdbDao JUnit tests. profileSsidPsk = createPasspointAccessSsid(customerId);
profileSsidPsk.setId(1L);
profileSsidOsu = createPasspointOsuSsid(customerId);
profileSsidOsu.setId(2L);
static void createPasspointHotspot(Customer customer, Profile passpointHotspotConfig, passpointOperatorProfile = createPasspointOperatorProfile(customerId);
Profile passpointOperatorProfile, Profile passpointVenueProfile, Profile hotspot20IdProviderProfile, passpointOperatorProfile.setId(3L);
Profile hotspot20IdProviderProfile2, Profile profileSsidPsk, Profile profileSsidOsu, passpointVenueProfile = createPasspointVenueProfile(customerId);
Profile hotspotProfileAp) { passpointVenueProfile.setId(4L);
hotspot20IdProviderProfile = createPasspointIdProviderProfile(customerId, hotspot20IdProviderProfile,
profileSsidPsk = createPasspointAccessSsid(customer);
profileSsidOsu = createPasspointOsuSsid(customer);
passpointOperatorProfile = createPasspointOperatorProfile(customer);
passpointVenueProfile = createPasspointVenueProfile(customer);
hotspot20IdProviderProfile = createPasspointIdProviderProfile(customer, hotspot20IdProviderProfile,
"TipWlan-Hotspot20-OSU-Provider", "Rogers AT&T Wireless", "Canada", "ca", 302, 720, "rogers.com", 1); "TipWlan-Hotspot20-OSU-Provider", "Rogers AT&T Wireless", "Canada", "ca", 302, 720, "rogers.com", 1);
hotspot20IdProviderProfile.setId(5L);
hotspot20IdProviderProfile2 = createPasspointIdProviderProfile(customer, hotspot20IdProviderProfile2, hotspot20IdProviderProfile2 = createPasspointIdProviderProfile(customerId, hotspot20IdProviderProfile2,
"TipWlan-Hotspot20-OSU-Provider-2", "Telus Mobility", "Canada", "ca", 302, 220, "telus.com", 1); "TipWlan-Hotspot20-OSU-Provider-2", "Telus Mobility", "Canada", "ca", 302, 220, "telus.com", 1);
hotspot20IdProviderProfile2.setId(6L);
profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile.getId()); profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile.getId());
profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile2.getId()); profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile2.getId());
passpointHotspotConfig = createPasspointHotspotConfig(customer, hotspot20IdProviderProfile2, passpointHotspotConfig = createPasspointHotspotConfig(customerId, hotspot20IdProviderProfile2,
hotspot20IdProviderProfile, passpointOperatorProfile, passpointVenueProfile, profileSsidPsk, hotspot20IdProviderProfile, passpointOperatorProfile, passpointVenueProfile, profileSsidPsk,
profileSsidOsu); profileSsidOsu);
passpointHotspotConfig.setId(7L);
hotspotProfileAp = createPasspointApProfile(customer, profileSsidPsk, profileSsidOsu); hotspotProfileAp = createPasspointApProfile(customerId, profileSsidPsk, profileSsidOsu);
hotspotProfileAp.setId(8L);
} }
static Profile createPasspointHotspotConfig(Customer customer, Profile hotspot20IdProviderProfile2, static Profile createPasspointHotspotConfig(int customerId, Profile hotspot20IdProviderProfile2,
Profile hotspot20IdProviderProfile, Profile passpointOperatorProfile, Profile passpointVenueProfile, Profile hotspot20IdProviderProfile, Profile passpointOperatorProfile, Profile passpointVenueProfile,
Profile profileSsidPsk, Profile profileSsidOpen) { Profile profileSsidPsk, Profile profileSsidOpen) {
Profile passpointHotspotConfig; Profile passpointHotspotConfig;
passpointHotspotConfig = new Profile(); passpointHotspotConfig = new Profile();
passpointHotspotConfig.setCustomerId(customer.getId()); passpointHotspotConfig.setCustomerId(customerId);
passpointHotspotConfig.setName("TipWlan-Hotspot20-Config"); passpointHotspotConfig.setName("TipWlan-Hotspot20-Config");
passpointHotspotConfig.setProfileType(ProfileType.hotspot_2pt0); passpointHotspotConfig.setProfileType(ProfileType.passpoint);
Set<Long> passpointHotspotConfigChildIds = new HashSet<>(); Set<Long> passpointHotspotConfigChildIds = new HashSet<>();
passpointHotspotConfigChildIds.add(passpointOperatorProfile.getId()); passpointHotspotConfigChildIds.add(passpointOperatorProfile.getId());
passpointHotspotConfigChildIds.add(passpointVenueProfile.getId()); passpointHotspotConfigChildIds.add(passpointVenueProfile.getId());
passpointHotspotConfigChildIds.add(hotspot20IdProviderProfile.getId()); passpointHotspotConfigChildIds.add(hotspot20IdProviderProfile.getId());
passpointHotspotConfigChildIds.add(hotspot20IdProviderProfile2.getId()); passpointHotspotConfigChildIds.add(hotspot20IdProviderProfile2.getId());
passpointHotspotConfig.setChildProfileIds(passpointHotspotConfigChildIds); passpointHotspotConfig.setChildProfileIds(passpointHotspotConfigChildIds);
passpointHotspotConfig.setDetails(Hotspot2Profile.createWithDefaults()); passpointHotspotConfig.setDetails(PasspointProfile.createWithDefaults());
Set<String> providerNames = new HashSet<>(); Set<Long> providerIds = new HashSet<>();
providerNames.add(hotspot20IdProviderProfile.getName()); providerIds.add(hotspot20IdProviderProfile.getId());
providerNames.add(hotspot20IdProviderProfile2.getName()); providerIds.add(hotspot20IdProviderProfile2.getId());
((Hotspot2Profile) passpointHotspotConfig.getDetails()).setIdProviderProfileNames(providerNames); ((PasspointProfile) passpointHotspotConfig.getDetails()).setPasspointOsuProviderProfileIds(providerIds);
((Hotspot2Profile) passpointHotspotConfig.getDetails()) ((PasspointProfile) passpointHotspotConfig.getDetails())
.setOperatorProfileName(passpointOperatorProfile.getName()); .setPasspointOperatorProfileId(passpointOperatorProfile.getId());
((Hotspot2Profile) passpointHotspotConfig.getDetails()).setVenueProfileName(passpointVenueProfile.getName()); ((PasspointProfile) passpointHotspotConfig.getDetails())
((Hotspot2Profile) passpointHotspotConfig.getDetails()).setOsuSsidName(profileSsidOpen.getName()); .setPasspointVenueProfileId(passpointVenueProfile.getId());
((PasspointProfile) passpointHotspotConfig.getDetails()).setOsuSsidProfileId(profileSsidOpen.getId());
profileSsidPsk.getChildProfileIds().add(passpointHotspotConfig.getId()); profileSsidPsk.getChildProfileIds().add(passpointHotspotConfig.getId());
((PasspointProfile) passpointHotspotConfig.getDetails())
.setAssociatedAccessSsidProfileIds(List.of(profileSsidPsk.getId()));
return passpointHotspotConfig; return passpointHotspotConfig;
} }
static Profile createPasspointIdProviderProfile(Customer customer, Profile providerProfile, String providerName, static Profile createPasspointIdProviderProfile(int customerId, Profile providerProfile, String providerName,
String network, String country, String iso, int mcc, int mnc, String naiRealm, int countryCode) { String network, String country, String iso, int mcc, int mnc, String naiRealm, int countryCode) {
Profile hotspot20IdProviderProfile; Profile hotspot20IdProviderProfile;
hotspot20IdProviderProfile = new Profile(); hotspot20IdProviderProfile = new Profile();
hotspot20IdProviderProfile.setCustomerId(customer.getId()); hotspot20IdProviderProfile.setCustomerId(customerId);
hotspot20IdProviderProfile.setName(providerName); hotspot20IdProviderProfile.setName(providerName);
hotspot20IdProviderProfile.setProfileType(ProfileType.id_provider); hotspot20IdProviderProfile.setProfileType(ProfileType.passpoint_osu_id_provider);
MccMnc mccMnc = MccMnc.createWithDefaults(); PasspointMccMnc passpointMccMnc = PasspointMccMnc.createWithDefaults();
mccMnc.setMcc(mcc); passpointMccMnc.setMcc(mcc);
mccMnc.setMnc(mnc); passpointMccMnc.setMnc(mnc);
mccMnc.setIso(iso); passpointMccMnc.setIso(iso);
mccMnc.setCountry(country); passpointMccMnc.setCountry(country);
mccMnc.setCountryCode(1); passpointMccMnc.setCountryCode(1);
mccMnc.setNetwork(network); passpointMccMnc.setNetwork(network);
List<MccMnc> mccMncList = new ArrayList<>(); List<PasspointMccMnc> mccMncList = new ArrayList<>();
mccMncList.add(mccMnc); mccMncList.add(passpointMccMnc);
Set<String> naiRealms = new HashSet<>(); Set<String> naiRealms = new HashSet<>();
naiRealms.add(naiRealm); naiRealms.add(naiRealm);
naiRealm.split(".");
List<Byte> roamingOi = new ArrayList<>(); List<Byte> roamingOi = new ArrayList<>();
roamingOi.add(Byte.valueOf("1")); roamingOi.add(Byte.valueOf("1"));
roamingOi.add(Byte.valueOf("2")); roamingOi.add(Byte.valueOf("2"));
roamingOi.add(Byte.valueOf("3")); roamingOi.add(Byte.valueOf("3"));
roamingOi.add(Byte.valueOf("4")); roamingOi.add(Byte.valueOf("4"));
hotspot20IdProviderProfile = createOsuProviderProfile(customer, hotspot20IdProviderProfile, mccMncList, hotspot20IdProviderProfile = createOsuProviderProfile(customerId, hotspot20IdProviderProfile, mccMncList,
naiRealms, "https://example.com/osu/" + naiRealm.split(".com")[0], naiRealm.split(".com")[0], naiRealm, naiRealms, "https://example.com/osu/" + naiRealm.split("/.com")[0], naiRealm.split(".com")[0], naiRealm,
roamingOi); roamingOi);
return hotspot20IdProviderProfile; return hotspot20IdProviderProfile;
} }
static Profile createPasspointVenueProfile(Customer customer) { static Profile createPasspointVenueProfile(int customerId) {
Profile passpointVenueProfile; Profile passpointVenueProfile;
passpointVenueProfile = new Profile(); passpointVenueProfile = new Profile();
passpointVenueProfile.setCustomerId(customer.getId()); passpointVenueProfile.setCustomerId(customerId);
passpointVenueProfile.setName("TipWlan-Hotspot20-Venue"); passpointVenueProfile.setName("TipWlan-Hotspot20-Venue");
passpointVenueProfile.setProfileType(ProfileType.venue); passpointVenueProfile.setProfileType(ProfileType.passpoint_venue);
passpointVenueProfile.setDetails(VenueProfile.createWithDefaults()); passpointVenueProfile.setDetails(PasspointVenueProfile.createWithDefaults());
return passpointVenueProfile; return passpointVenueProfile;
} }
static Profile createPasspointOperatorProfile(Customer customer) { static Profile createPasspointOperatorProfile(int customerId) {
Profile passpointOperatorProfile; Profile passpointOperatorProfile;
passpointOperatorProfile = new Profile(); passpointOperatorProfile = new Profile();
passpointOperatorProfile.setCustomerId(customer.getId()); passpointOperatorProfile.setCustomerId(customerId);
passpointOperatorProfile.setName("TipWlan-Hotspot20-Operator"); passpointOperatorProfile.setName("TipWlan-Hotspot20-Operator");
passpointOperatorProfile.setProfileType(ProfileType.operator); passpointOperatorProfile.setProfileType(ProfileType.passpoint_operator);
passpointOperatorProfile.setDetails(OperatorProfile.createWithDefaults()); passpointOperatorProfile.setDetails(PasspointOperatorProfile.createWithDefaults());
return passpointOperatorProfile; return passpointOperatorProfile;
} }
static Profile createPasspointAccessSsid(Customer customer) { static Profile createPasspointAccessSsid(int customerId) {
Profile profileSsidPsk; Profile profileSsidPsk;
profileSsidPsk = new Profile(); profileSsidPsk = new Profile();
profileSsidPsk.setCustomerId(customer.getId()); profileSsidPsk.setCustomerId(customerId);
profileSsidPsk.setName("TipWlan-cloud-hotspot-access"); profileSsidPsk.setName("TipWlan-cloud-hotspot-access");
SsidConfiguration ssidConfigPsk = SsidConfiguration.createWithDefaults(); SsidConfiguration ssidConfigPsk = SsidConfiguration.createWithDefaults();
Set<RadioType> appliedRadiosPsk = new HashSet<RadioType>(); Set<RadioType> appliedRadiosPsk = new HashSet<RadioType>();
@@ -162,10 +169,10 @@ public class OvsdbDaoTestUtilities {
return profileSsidPsk; return profileSsidPsk;
} }
static Profile createPasspointOsuSsid(Customer customer) { static Profile createPasspointOsuSsid(int customerId) {
Profile profileSsidPsk; Profile profileSsidPsk;
profileSsidPsk = new Profile(); profileSsidPsk = new Profile();
profileSsidPsk.setCustomerId(customer.getId()); profileSsidPsk.setCustomerId(customerId);
profileSsidPsk.setName("TipWlan-cloud-hotspot-osu"); profileSsidPsk.setName("TipWlan-cloud-hotspot-osu");
SsidConfiguration ssidConfigPsk = SsidConfiguration.createWithDefaults(); SsidConfiguration ssidConfigPsk = SsidConfiguration.createWithDefaults();
Set<RadioType> appliedRadiosPsk = new HashSet<RadioType>(); Set<RadioType> appliedRadiosPsk = new HashSet<RadioType>();
@@ -177,23 +184,23 @@ public class OvsdbDaoTestUtilities {
return profileSsidPsk; return profileSsidPsk;
} }
static Profile createPasspointApProfile(Customer customer, Profile profileSsidPsk, Profile profileSsidOpen) { static Profile createPasspointApProfile(int customerId, Profile profileSsidPsk, Profile profileSsidOpen) {
Profile hotspotProfileAp = new Profile(); Profile hotspotProfileAp = new Profile();
hotspotProfileAp.setCustomerId(customer.getId()); hotspotProfileAp.setCustomerId(customerId);
hotspotProfileAp.setName("HotspotProfileAp"); hotspotProfileAp.setName("HotspotProfileAp");
hotspotProfileAp.setDetails(ApNetworkConfiguration.createWithDefaults()); hotspotProfileAp.setDetails(ApNetworkConfiguration.createWithDefaults());
hotspotProfileAp.getChildProfileIds().add(profileSsidPsk.getId()); hotspotProfileAp.getChildProfileIds().add(profileSsidPsk.getId());
hotspotProfileAp.getChildProfileIds().add(profileSsidOpen.getId()); hotspotProfileAp.getChildProfileIds().add(profileSsidOpen.getId());
hotspotProfileAp.getChildProfileIds().add(createPasspointRfProfile(customer).getId()); hotspotProfileAp.getChildProfileIds().add(createPasspointRfProfile(customerId).getId());
return hotspotProfileAp; return hotspotProfileAp;
} }
static Profile createPasspointRfProfile(Customer customer) { static Profile createPasspointRfProfile(int customerId) {
Profile profileRf = new Profile(); Profile profileRf = new Profile();
profileRf.setCustomerId(customer.getId()); profileRf.setCustomerId(customerId);
profileRf.setName("TipWlan-rf-passpoint"); profileRf.setName("TipWlan-rf-passpoint");
RfConfiguration rfConfig = RfConfiguration.createWithDefaults(); RfConfiguration rfConfig = RfConfiguration.createWithDefaults();
rfConfig.getRfConfigMap().forEach((x, y) -> y.setRf("TipWlan-rf-passpoint")); rfConfig.getRfConfigMap().forEach((x, y) -> y.setRf("TipWlan-rf-passpoint"));
@@ -202,14 +209,14 @@ public class OvsdbDaoTestUtilities {
return profileRf; return profileRf;
} }
static Profile createOsuProviderProfile(Customer customer, Profile hotspot20IdProviderProfile, static Profile createOsuProviderProfile(int customerId, Profile hotspot20IdProviderProfile,
List<MccMnc> mccMncList, Set<String> realms, String serverUri, String suffix, String domainName, List<PasspointMccMnc> mccMncList, Set<String> realms, String serverUri, String suffix, String domainName,
List<Byte> roamingOi) { List<Byte> roamingOi) {
Hotspot20IdProviderProfile passpointIdProviderProfile = Hotspot20IdProviderProfile.createWithDefaults(); PasspointOsuProviderProfile passpointIdProviderProfile = PasspointOsuProviderProfile.createWithDefaults();
passpointIdProviderProfile.setMccMncList(mccMncList); passpointIdProviderProfile.setMccMncList(mccMncList);
OsuIcon icon1 = new OsuIcon(); PasspointOsuIcon icon1 = new PasspointOsuIcon();
icon1.setIconLocale(Locale.CANADA); icon1.setIconLocale(Locale.CANADA);
icon1.setIconWidth(32); icon1.setIconWidth(32);
icon1.setIconHeight(32); icon1.setIconHeight(32);
@@ -217,7 +224,7 @@ public class OvsdbDaoTestUtilities {
icon1.setIconName("icon32eng"); icon1.setIconName("icon32eng");
icon1.setImageUrl("https://localhost:9096/icon32eng.png"); icon1.setImageUrl("https://localhost:9096/icon32eng.png");
icon1.setFilePath("/tmp/icon32eng.png"); icon1.setFilePath("/tmp/icon32eng.png");
OsuIcon icon2 = new OsuIcon(); PasspointOsuIcon icon2 = new PasspointOsuIcon();
icon2.setIconLocale(Locale.CANADA_FRENCH); icon2.setIconLocale(Locale.CANADA_FRENCH);
icon2.setIconWidth(32); icon2.setIconWidth(32);
icon2.setIconHeight(32); icon2.setIconHeight(32);
@@ -225,7 +232,7 @@ public class OvsdbDaoTestUtilities {
icon2.setIconName("icon32fra"); icon2.setIconName("icon32fra");
icon2.setImageUrl("https://localhost:9096/icon32fra.png"); icon2.setImageUrl("https://localhost:9096/icon32fra.png");
icon2.setFilePath("/tmp/icon32fra.png"); icon2.setFilePath("/tmp/icon32fra.png");
OsuIcon icon3 = new OsuIcon(); PasspointOsuIcon icon3 = new PasspointOsuIcon();
icon3.setIconLocale(Locale.US); icon3.setIconLocale(Locale.US);
icon3.setIconWidth(32); icon3.setIconWidth(32);
icon3.setIconHeight(32); icon3.setIconHeight(32);
@@ -233,16 +240,16 @@ public class OvsdbDaoTestUtilities {
icon3.setIconName("icon32usa"); icon3.setIconName("icon32usa");
icon3.setImageUrl("https://localhost:9096/icon32usa.png"); icon3.setImageUrl("https://localhost:9096/icon32usa.png");
icon3.setFilePath("/tmp/icon32usa.png"); icon3.setFilePath("/tmp/icon32usa.png");
List<OsuIcon> osuIconList = new ArrayList<>(); List<PasspointOsuIcon> osuIconList = new ArrayList<>();
osuIconList.add(icon1); osuIconList.add(icon1);
osuIconList.add(icon2); osuIconList.add(icon2);
osuIconList.add(icon3); osuIconList.add(icon3);
passpointIdProviderProfile.setOsuIconList(osuIconList); passpointIdProviderProfile.setOsuIconList(osuIconList);
passpointIdProviderProfile.setRoamingOi(roamingOi); passpointIdProviderProfile.setRoamingOi(roamingOi);
List<NaiRealmInformation> naiRealmList = new ArrayList<>(); List<PasspointNaiRealmInformation> naiRealmList = new ArrayList<>();
NaiRealmInformation naiRealmInfo = NaiRealmInformation.createWithDefaults(); PasspointNaiRealmInformation naiRealmInfo = PasspointNaiRealmInformation.createWithDefaults();
naiRealmInfo.setNaiRealms(realms); naiRealmInfo.setNaiRealms(realms);
naiRealmList.add(naiRealmInfo); naiRealmList.add(naiRealmInfo);
@@ -254,22 +261,22 @@ public class OvsdbDaoTestUtilities {
methodList.add(1); methodList.add(1);
methodList.add(0); methodList.add(0);
passpointIdProviderProfile.setOsuMethodList(methodList); passpointIdProviderProfile.setOsuMethodList(methodList);
Hotspot20Duple enOsuProvider = Hotspot20Duple.createWithDefaults(); PasspointDuple enOsuProvider = PasspointDuple.createWithDefaults();
enOsuProvider.setLocale(Locale.CANADA); enOsuProvider.setLocale(Locale.CANADA);
enOsuProvider.setDupleName("Example provider " + suffix); enOsuProvider.setDupleName("Example provider " + suffix);
Hotspot20Duple frOsuProvider = Hotspot20Duple.createWithDefaults(); PasspointDuple frOsuProvider = PasspointDuple.createWithDefaults();
frOsuProvider.setLocale(Locale.CANADA_FRENCH); frOsuProvider.setLocale(Locale.CANADA_FRENCH);
frOsuProvider.setDupleName("Exemple de fournisseur " + suffix); frOsuProvider.setDupleName("Exemple de fournisseur " + suffix);
List<Hotspot20Duple> friendlyNameList = new ArrayList<>(); List<PasspointDuple> friendlyNameList = new ArrayList<>();
friendlyNameList.add(enOsuProvider); friendlyNameList.add(enOsuProvider);
friendlyNameList.add(frOsuProvider); friendlyNameList.add(frOsuProvider);
passpointIdProviderProfile.setOsuFriendlyName(friendlyNameList); passpointIdProviderProfile.setOsuFriendlyName(friendlyNameList);
List<Hotspot20Duple> osuServiceDescription = new ArrayList<>(); List<PasspointDuple> osuServiceDescription = new ArrayList<>();
Hotspot20Duple enService = Hotspot20Duple.createWithDefaults(); PasspointDuple enService = PasspointDuple.createWithDefaults();
enService.setLocale(Locale.CANADA); enService.setLocale(Locale.CANADA);
enService.setDupleName("Example services " + suffix); enService.setDupleName("Example services " + suffix);
osuServiceDescription.add(enService); osuServiceDescription.add(enService);
Hotspot20Duple frService = Hotspot20Duple.createWithDefaults(); PasspointDuple frService = PasspointDuple.createWithDefaults();
frService.setLocale(Locale.CANADA_FRENCH); frService.setLocale(Locale.CANADA_FRENCH);
frService.setDupleName("Exemples de services " + suffix); frService.setDupleName("Exemples de services " + suffix);
osuServiceDescription.add(frService); osuServiceDescription.add(frService);
@@ -301,7 +308,8 @@ public class OvsdbDaoTestUtilities {
columns.put("network_auth_type", new Atom<>("00")); columns.put("network_auth_type", new Atom<>("00"));
columns.put("operating_class", new Atom<>(0)); columns.put("operating_class", new Atom<>(0));
columns.put("operator_friendly_name", columns.put("operator_friendly_name",
com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("eng:Default friendly operator name"), com.vmware.ovsdb.protocol.operation.notation.Set.of(
new Atom<>("eng:Default friendly passpoint_operator name"),
new Atom<>("fra:Nom de l'opérateur convivial par défaut"))); new Atom<>("fra:Nom de l'opérateur convivial par défaut")));
columns.put("operator_icons", columns.put("operator_icons",
com.vmware.ovsdb.protocol.operation.notation.Set.of( com.vmware.ovsdb.protocol.operation.notation.Set.of(
@@ -318,8 +326,8 @@ public class OvsdbDaoTestUtilities {
com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("11223344"), new Atom<>("234433"))); com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("11223344"), new Atom<>("234433")));
columns.put("tos", new Atom<>("https://localhost:9091/filestore/termsAndConditions")); columns.put("tos", new Atom<>("https://localhost:9091/filestore/termsAndConditions"));
columns.put("venue_group_type", new Atom<>("2:8")); columns.put("venue_group_type", new Atom<>("2:8"));
columns.put("venue_name", com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("eng:Example venue"), columns.put("venue_name", com.vmware.ovsdb.protocol.operation.notation.Set
new Atom<>("fra:Exemple de lieu"))); .of(new Atom<>("eng:Example passpoint_venue"), new Atom<>("fra:Exemple de lieu")));
columns.put("venue_url", com.vmware.ovsdb.protocol.operation.notation.Set columns.put("venue_url", com.vmware.ovsdb.protocol.operation.notation.Set
.of(new Atom<>("1:http://www.example.com/info-fra"), new Atom<>("2:http://www.example.com/info-eng"))); .of(new Atom<>("1:http://www.example.com/info-fra"), new Atom<>("2:http://www.example.com/info-eng")));
columns.put("vif_config", columns.put("vif_config",
@@ -404,7 +412,6 @@ public class OvsdbDaoTestUtilities {
return operationResult; return operationResult;
} }
static OperationResult[] hs20IconRows() { static OperationResult[] hs20IconRows() {
List<Row> ret = new ArrayList<>(); List<Row> ret = new ArrayList<>();
@@ -510,12 +517,32 @@ public class OvsdbDaoTestUtilities {
SelectResult selectResult = new SelectResult(ret); SelectResult selectResult = new SelectResult(ret);
OperationResult[] operationResult = new OperationResult[1]; OperationResult[] operationResult = new OperationResult[1];
operationResult[0].equals(selectResult); operationResult[0].equals(selectResult);
return operationResult; return operationResult;
} }
static Profile createRadiusProfile(int customerId) {
Profile profileRadius = new Profile();
profileRadius.setCustomerId(customerId);
profileRadius.setProfileType(ProfileType.radius);
profileRadius.setName("Radius-Profile");
RadiusProfile radiusDetails = new RadiusProfile();
RadiusServiceRegion radiusServiceRegion = new RadiusServiceRegion();
RadiusServer radiusServer = new RadiusServer();
radiusServer.setAuthPort(1812);
try {
radiusServer.setIpAddress(InetAddress.getByName("192.168.0.1"));
} catch (UnknownHostException e) {
throw new IllegalArgumentException(e);
}
radiusServer.setSecret("testing123");
radiusServiceRegion.addRadiusServer("Radius-Profile", radiusServer);
radiusServiceRegion.setRegionName("Ottawa");
radiusDetails.addRadiusServiceRegion(radiusServiceRegion);
profileRadius.setDetails(radiusDetails);
return profileRadius;
}
} }