mirror of
				https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
				synced 2025-10-31 18:47:57 +00:00 
			
		
		
		
	Compare commits
	
		
			55 Commits
		
	
	
		
			WIFI-797-R
			...
			release-te
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 0fcdb7410e | ||
|   | 01fa2d3977 | ||
|   | f0daa18906 | ||
|   | d6d454bfc1 | ||
|   | f30b1ca02e | ||
|   | 84f3d4ea5d | ||
|   | a5fb061359 | ||
|   | d8ff2f1a31 | ||
|   | 1d1b5f1c42 | ||
|   | 74587349fe | ||
|   | b463d6720a | ||
|   | 036bd8ccc2 | ||
|   | eebdfba431 | ||
|   | 52a5a2ac72 | ||
|   | 44b3d5e526 | ||
|   | f9ece26ccf | ||
|   | 5f35b59a34 | ||
|   | d3729a47d2 | ||
|   | dc8e22a1b5 | ||
|   | 20484b634a | ||
|   | a7af164bb1 | ||
|   | e31b8ebd12 | ||
|   | bdde9561f3 | ||
|   | 2964aa3c3c | ||
|   | 01d9d7538c | ||
|   | ed5f445f11 | ||
|   | b47d2ccda1 | ||
|   | b6d6e4dea7 | ||
|   | 1e822e432c | ||
|   | 95173ada39 | ||
|   | 5bfd5dfac7 | ||
|   | 14b410e84b | ||
|   | c8bace4850 | ||
|   | b182a6953d | ||
|   | acdd5eddbf | ||
|   | c1de88aa05 | ||
|   | 28fcf06175 | ||
|   | a3159ed34e | ||
|   | ee56a5b2bb | ||
|   | b60a72c202 | ||
|   | b9dd818ca4 | ||
|   | 1d7f822ed4 | ||
|   | 6c784367ed | ||
|   | 176f549168 | ||
|   | 896c38c024 | ||
|   | 15e26fd829 | ||
|   | 4df03431ed | ||
|   | 7ef59937f2 | ||
|   | 0e80415e52 | ||
|   | 10b3a6227d | ||
|   | 3adb56f113 | ||
|   | 39da1f83a3 | ||
|   | 7f51486979 | ||
|   | 62672f090b | ||
|   | 012935818d | 
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| BSD 3-Clause License | ||||
|  | ||||
| #Release Testing | ||||
| Copyright (c) 2020, Telecom Infra Project | ||||
| All rights reserved. | ||||
|  | ||||
|   | ||||
							
								
								
									
										1
									
								
								opensync-ext-cloud/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								opensync-ext-cloud/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | ||||
| /target/ | ||||
| @@ -13,21 +13,17 @@ | ||||
| 	<name>opensync-ext-cloud</name> | ||||
| 	<description>Configuration interface that provides config from the cloud services.</description> | ||||
| 	<dependencies> | ||||
| 		<dependency> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<artifactId>opensync-ext-interface</artifactId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
| <!-- 		<dependency> --> | ||||
| <!-- 			<groupId>com.telecominfraproject.wlan</groupId> --> | ||||
| <!-- 			<artifactId>opensync-ext-interface</artifactId> --> | ||||
| <!-- 			<version>${tip-wlan-cloud.release.version}</version> --> | ||||
| <!-- 		</dependency> --> | ||||
| 		<dependency> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<artifactId>opensync-gateway</artifactId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
|  	  <dependency> | ||||
|         <artifactId>base-container</artifactId> | ||||
|         <groupId>com.telecominfraproject.wlan</groupId> | ||||
|         <version>${tip-wlan-cloud.release.version}</version> | ||||
|       </dependency> | ||||
|  	  | ||||
|         <dependency> | ||||
|             <artifactId>base-client</artifactId> | ||||
|             <groupId>com.telecominfraproject.wlan</groupId> | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| package com.telecominfraproject.wlan.opensync.external.integration; | ||||
|  | ||||
| import java.net.Inet4Address; | ||||
| import java.net.InetAddress; | ||||
| import java.net.UnknownHostException; | ||||
| import java.util.ArrayList; | ||||
| @@ -30,10 +31,11 @@ import com.telecominfraproject.wlan.client.session.models.ClientDhcpDetails; | ||||
| import com.telecominfraproject.wlan.client.session.models.ClientSession; | ||||
| import com.telecominfraproject.wlan.client.session.models.ClientSessionDetails; | ||||
| import com.telecominfraproject.wlan.core.model.entity.CountryCode; | ||||
| import com.telecominfraproject.wlan.core.model.equipment.AutoOrManualValue; | ||||
| import com.telecominfraproject.wlan.core.model.equipment.EquipmentType; | ||||
| import com.telecominfraproject.wlan.core.model.equipment.MacAddress; | ||||
| import com.telecominfraproject.wlan.core.model.equipment.RadioType; | ||||
| import com.telecominfraproject.wlan.core.model.equipment.SourceSelectionValue; | ||||
| import com.telecominfraproject.wlan.core.model.equipment.SourceType; | ||||
| import com.telecominfraproject.wlan.core.model.pagination.PaginationContext; | ||||
| import com.telecominfraproject.wlan.core.model.pagination.PaginationResponse; | ||||
| import com.telecominfraproject.wlan.customer.models.Customer; | ||||
| @@ -147,6 +149,14 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|     private boolean isAutoconfigEnabled; | ||||
|     @Value("${tip.wlan.ovsdb.defaultFwVersion:r10947-65030d81f3}") | ||||
|     private String defaultFwVersion; | ||||
|     @org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_lan_type:bridge}") | ||||
|     public String defaultLanInterfaceType; | ||||
|     @org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_lan_name:lan}") | ||||
|     public String defaultLanInterfaceName; | ||||
|     @org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_wan_type:bridge}") | ||||
|     public String defaultWanInterfaceType; | ||||
|     @org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_wan_name:wan}") | ||||
|     public String defaultWanInterfaceName; | ||||
|  | ||||
|     @Autowired | ||||
|     private CacheManager cacheManagerShortLived; | ||||
| @@ -170,7 +180,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|         return ce; | ||||
|     } | ||||
|  | ||||
|  | ||||
|     @Override | ||||
|     public void apConnected(String apId, ConnectNodeInfo connectNodeInfo) { | ||||
|  | ||||
| @@ -285,36 +294,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|                     // one: | ||||
|                     Profile apProfile = createDefaultApProfile(ce, connectNodeInfo); | ||||
|                     profileId = apProfile.getId(); | ||||
|                      | ||||
|                     // Initialize equipment from RF Profile | ||||
|                     ProfileContainer profileContainer = new ProfileContainer( | ||||
|                     		profileServiceInterface.getProfileWithChildren(profileId)); | ||||
|                     RfConfiguration rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf) | ||||
|                     		.getDetails(); | ||||
|                     ApElementConfiguration config = (ApElementConfiguration) ce.getDetails(); | ||||
|                     Map<RadioType, ElementRadioConfiguration> baseRadioMap = config.getRadioMap(); | ||||
|                     Map<RadioType, RadioConfiguration> advRadioMap = config.getAdvancedRadioMap(); | ||||
|                     for (RadioType rType : config.getRadioMap().keySet()) { | ||||
|                     	ElementRadioConfiguration elementRadioConfig = baseRadioMap.get(rType); | ||||
|                     	RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(rType); | ||||
|                     	 | ||||
|                     	elementRadioConfig.setClientDisconnectThresholdDb(rfElementConfig.getClientDisconnectThresholdDb()); | ||||
|                     	elementRadioConfig.setEirpTxPower(rfElementConfig.getEirpTxPower()); | ||||
|                     	elementRadioConfig.setPerimeterDetectionEnabled(rfElementConfig.getPerimeterDetectionEnabled()); | ||||
|                     	elementRadioConfig.setProbeResponseThresholdDb(rfElementConfig.getProbeResponseThresholdDb()); | ||||
|                     	elementRadioConfig.setRxCellSizeDb(rfElementConfig.getRxCellSizeDb()); | ||||
|                     } | ||||
|                     for (RadioType rType : config.getAdvancedRadioMap().keySet()) { | ||||
|                     	RadioConfiguration radioConfig = advRadioMap.get(rType); | ||||
|                     	RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(rType); | ||||
|                     	 | ||||
|                     	radioConfig.setBestApSettings(rfElementConfig.getBestApSettings()); | ||||
|                     	radioConfig.setManagementRate(rfElementConfig.getManagementRate()); | ||||
|                     } | ||||
|                     config.setAdvancedRadioMap(advRadioMap); | ||||
|                     config.setRadioMap(baseRadioMap); | ||||
|                      | ||||
|                     ce.setDetails(config); | ||||
|                 } | ||||
|  | ||||
|                 ce.setProfileId(profileId); | ||||
| @@ -358,6 +337,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|             updateApStatus(ce, connectNodeInfo); | ||||
|  | ||||
|             removeNonWifiClients(ce, connectNodeInfo); | ||||
|  | ||||
|             OvsdbSession ovsdbSession = ovsdbSessionMapInterface.getSession(apId); | ||||
|             ovsdbSession.setRoutingId(equipmentRoutingRecord.getId()); | ||||
|             ovsdbSession.setEquipmentId(ce.getId()); | ||||
| @@ -449,7 +430,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|         apProfile.getChildProfileIds().add(rfProfile.getId()); | ||||
|  | ||||
|  | ||||
|         // Update AP profile with SSID and RF child profiles | ||||
|         apProfile = profileServiceInterface.update(apProfile); | ||||
|  | ||||
| @@ -510,7 +490,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|             protocolStatusData.setCloudCfgDataVersion(42L); | ||||
|             protocolStatusData.setReportedCfgDataVersion(42L); | ||||
|             protocolStatusData.setCountryCode("CA"); | ||||
|             protocolStatusData.setReportedCC(CountryCode.ca); | ||||
|             protocolStatusData.setReportedCC(CountryCode.CA); | ||||
|             protocolStatusData.setReportedHwVersion(connectNodeInfo.platformVersion); | ||||
|             if (connectNodeInfo.versionMatrix.containsKey(OvsdbStringConstants.FW_IMAGE_ACTIVE_KEY)) { | ||||
|                 protocolStatusData.setReportedSwVersion( | ||||
| @@ -531,9 +511,12 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|                 protocolStatusData.setReportedSwVersion("Unknown"); | ||||
|             } | ||||
|             try { | ||||
|                 protocolStatusData.setReportedIpV4Addr(InetAddress.getByName(connectNodeInfo.ipV4Address)); | ||||
|                 if (connectNodeInfo.ipV4Address != null) { | ||||
|                     protocolStatusData.setReportedIpV4Addr(InetAddress.getByName(connectNodeInfo.ipV4Address)); | ||||
|                 } | ||||
|             } catch (UnknownHostException e) { | ||||
|                 // do nothing here | ||||
|                 LOG.error("Could not set IpV4Addr {} on AP {} due to UnknownHostException ", | ||||
|                         connectNodeInfo.ipV4Address, ce.getName(), e); | ||||
|             } | ||||
|             if ((connectNodeInfo.macAddress != null) && (MacAddress.valueOf(connectNodeInfo.macAddress) != null)) { | ||||
|                 protocolStatusData.setReportedMacAddr(MacAddress.valueOf(connectNodeInfo.macAddress)); | ||||
| @@ -542,7 +525,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|             protocolStatusData.setSerialNumber(connectNodeInfo.serialNumber); | ||||
|             protocolStatusData.setSystemName(connectNodeInfo.model); | ||||
|             statusRecord.setDetails(protocolStatusData); | ||||
|             statusServiceInterface.update(statusRecord); | ||||
|             Status protocolStatus = statusServiceInterface.update(statusRecord); | ||||
|             LOG.debug("ProtocolStatus for AP {} updated to {}", ce.getName(), protocolStatus); | ||||
|  | ||||
|             statusRecord = statusServiceInterface.getOrNull(ce.getCustomerId(), ce.getId(), StatusDataType.FIRMWARE); | ||||
|             if (statusRecord == null) { | ||||
| @@ -588,6 +572,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|                 networkAdminStatusRec = new Status(); | ||||
|                 networkAdminStatusRec.setCustomerId(ce.getCustomerId()); | ||||
|                 networkAdminStatusRec.setEquipmentId(ce.getId()); | ||||
|                 networkAdminStatusRec.setStatusDataType(StatusDataType.NETWORK_ADMIN); | ||||
|                 NetworkAdminStatusData statusData = new NetworkAdminStatusData(); | ||||
|                 networkAdminStatusRec.setDetails(statusData); | ||||
|             } | ||||
| @@ -596,6 +581,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|             netAdminStatusData.setDhcpStatus(StatusCode.normal); | ||||
|             netAdminStatusData.setCloudLinkStatus(StatusCode.normal); | ||||
|             netAdminStatusData.setDnsStatus(StatusCode.normal); | ||||
|             netAdminStatusData.setRadiusStatus(StatusCode.normal); | ||||
|  | ||||
|             networkAdminStatusRec.setDetails(netAdminStatusData); | ||||
|  | ||||
| @@ -607,6 +593,32 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|     } | ||||
|  | ||||
|     private void removeNonWifiClients(Equipment ce, ConnectNodeInfo connectNodeInfo) { | ||||
|         // need to make sure that this AP didn't accidentally get registered as | ||||
|         // a client previously via a partial DHCP lease event | ||||
|         LOG.info("Checking for non-wifi client types for Equipment {}", ce); | ||||
|         com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(ce.getCustomerId(), | ||||
|                 ce.getBaseMacAddress()); | ||||
|  | ||||
|         if (client != null) { | ||||
|             ClientSession clientSession = clientServiceInterface.getSessionOrNull(ce.getCustomerId(), ce.getId(), | ||||
|                     ce.getBaseMacAddress()); | ||||
|             if (clientSession != null) { | ||||
|                 clientSession = clientServiceInterface.deleteSession(ce.getCustomerId(), ce.getId(), | ||||
|                         client.getMacAddress()); | ||||
|                 LOG.info("Removed invalid client session {}", clientSession); | ||||
|             } | ||||
|             client = clientServiceInterface.delete(ce.getCustomerId(), client.getMacAddress()); | ||||
|             LOG.info("Removed invalid client type {}", client); | ||||
|         } else { | ||||
|             LOG.info("No clients with MAC address {} registered for customer {}", ce.getBaseMacAddress(), | ||||
|                     ce.getCustomerId()); | ||||
|         } | ||||
|  | ||||
|         LOG.info("Finished checking for and removing non-wifi client types for Equipment {}", ce); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     private void reconcileFwVersionToTrack(Equipment ce, String reportedFwVersionFromAp, String model) { | ||||
|  | ||||
|         LOG.debug("reconcileFwVersionToTrack for AP {} with active firmware version {} model {}", ce.getInventoryId(), | ||||
| @@ -816,7 +828,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|                         profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.ssid)); | ||||
|  | ||||
|                 ret.setMetricsProfiles( | ||||
|                         profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.metrics)); | ||||
|                         profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.service_metrics_collection_config)); | ||||
|                  | ||||
|                 Set<Profile> radiusSet = new HashSet<>(); | ||||
|                 Set<Long> captiveProfileIds = new HashSet<>(); | ||||
| @@ -832,10 +844,10 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|                 for (Profile ssidProfile : ret.getSsidProfile()) { | ||||
|  | ||||
|                     hotspot20ProfileSet | ||||
|                             .addAll(profileContainer.getChildrenOfType(ssidProfile.getId(), ProfileType.hotspot_2pt0)); | ||||
|                             .addAll(profileContainer.getChildrenOfType(ssidProfile.getId(), ProfileType.passpoint)); | ||||
|  | ||||
|  | ||||
|                     radiusSet.addAll(profileContainer.getChildrenOfType(ret.getApProfile().getId(), ProfileType.radius)); | ||||
|                     radiusSet | ||||
|                             .addAll(profileContainer.getChildrenOfType(ret.getApProfile().getId(), ProfileType.radius)); | ||||
|                     if (ssidProfile.getDetails() != null) { | ||||
|                         Long captivePortId = ((SsidConfiguration) ssidProfile.getDetails()).getCaptivePortalId(); | ||||
|                         if (captivePortId != null) { | ||||
| @@ -849,13 +861,14 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|  | ||||
|  | ||||
|                 if (hotspot20ProfileSet.size() > 0) { | ||||
|                     for (Profile hotspot20Profile : hotspot20ProfileSet) { | ||||
|                         hotspot20OperatorSet.addAll(profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.operator)); | ||||
|                         hotspot20VenueSet.addAll(profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.venue)); | ||||
|                         hotspot20ProviderSet.addAll(profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.id_provider)); | ||||
|                         hotspot20OperatorSet.addAll( | ||||
|                                 profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.passpoint_operator)); | ||||
|                         hotspot20VenueSet.addAll( | ||||
|                                 profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.passpoint_venue)); | ||||
|                         hotspot20ProviderSet.addAll( | ||||
|                                 profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.passpoint_osu_id_provider)); | ||||
|                     } | ||||
|                     hotspotConfig.setHotspot20OperatorSet(hotspot20OperatorSet); | ||||
|                     hotspotConfig.setHotspot20ProfileSet(hotspot20ProfileSet); | ||||
| @@ -894,7 +907,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|         mqttMessageProcessor.processMqttMessage(topic, report); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     @Override | ||||
|     public void processMqttMessage(String topic, FlowReport flowReport) { | ||||
|         mqttMessageProcessor.processMqttMessage(topic, flowReport); | ||||
| @@ -934,9 +946,9 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|         ApElementConfiguration apElementConfig = (ApElementConfiguration) apNode.getDetails(); | ||||
|  | ||||
|         ProfileContainer profileContainer = new ProfileContainer( | ||||
|         		profileServiceInterface.getProfileWithChildren(apNode.getProfileId())); | ||||
|         RfConfiguration rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(apNode.getProfileId(), ProfileType.rf) | ||||
|         		.getDetails(); | ||||
|                 profileServiceInterface.getProfileWithChildren(apNode.getProfileId())); | ||||
|         RfConfiguration rfConfig = (RfConfiguration) profileContainer | ||||
|                 .getChildOfTypeOrNull(apNode.getProfileId(), ProfileType.rf).getDetails(); | ||||
|  | ||||
|         for (OpensyncAPVIFState vifState : vifStateTables) { | ||||
|  | ||||
| @@ -971,11 +983,11 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|             Map<RadioType, RfElementConfiguration> rfElementMap = rfConfig.getRfConfigMap(); | ||||
|             Map<RadioType, ElementRadioConfiguration> elementRadioMap = apElementConfig.getRadioMap(); | ||||
|             for (RadioType rType : elementRadioMap.keySet()) { | ||||
|             	boolean autoChannelSelection = rfElementMap.get(rType).getAutoChannelSelection(); | ||||
|             	if (elementRadioMap.get(rType).getActiveChannel(autoChannelSelection) == channel) { | ||||
|             		radioType = rType; | ||||
|             		break; | ||||
|             	} | ||||
|                 boolean autoChannelSelection = rfElementMap.get(rType).getAutoChannelSelection(); | ||||
|                 if (elementRadioMap.get(rType).getActiveChannel(autoChannelSelection) == channel) { | ||||
|                     radioType = rType; | ||||
|                     break; | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             updateActiveBssids(customerId, equipmentId, apId, ssid, radioType, bssid, numClients); | ||||
| @@ -988,7 +1000,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|             updateClientDetailsStatus(customerId, equipmentId, (ActiveBSSIDs) activeBssidsStatus.getDetails()); | ||||
|         } | ||||
|  | ||||
|  | ||||
|         LOG.info("Finished wifiVIFStateDbTableUpdate updated {}", activeBssidsStatus); | ||||
|  | ||||
|     } | ||||
| @@ -1086,8 +1097,19 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|             } | ||||
|  | ||||
|             if (radioState.getTxPower() > 0) { | ||||
|                 apElementConfiguration.getRadioMap().get(radioState.getFreqBand()) | ||||
|                         .setEirpTxPower(AutoOrManualValue.createManualInstance(radioState.getTxPower())); | ||||
|                 SourceType txPowerSource = apElementConfiguration.getRadioMap().get(radioState.getFreqBand()) | ||||
|                         .getEirpTxPower().getSource(); | ||||
|                 // Preserve the source while updating the value | ||||
|                 if (txPowerSource == SourceType.auto) { | ||||
|                     apElementConfiguration.getRadioMap().get(radioState.getFreqBand()) | ||||
|                             .setEirpTxPower(SourceSelectionValue.createAutomaticInstance(radioState.getTxPower())); | ||||
|                 } else if (txPowerSource == SourceType.profile) { | ||||
|                     apElementConfiguration.getRadioMap().get(radioState.getFreqBand()) | ||||
|                             .setEirpTxPower(SourceSelectionValue.createProfileInstance(radioState.getTxPower())); | ||||
|                 } else { | ||||
|                     apElementConfiguration.getRadioMap().get(radioState.getFreqBand()) | ||||
|                             .setEirpTxPower(SourceSelectionValue.createManualInstance(radioState.getTxPower())); | ||||
|                 } | ||||
|  | ||||
|                 LOG.debug("Updated TxPower from Wifi_Radio_State table change for AP {}", apId); | ||||
|             } | ||||
| @@ -1112,8 +1134,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|                 protocolStatusData = (EquipmentProtocolStatusData) protocolStatus.getDetails(); | ||||
|                 if (!protocolStatusData.getReportedCC() | ||||
|                         .equals(CountryCode.valueOf(radioState.getCountry().toLowerCase()))) { | ||||
|                     protocolStatusData.setReportedCC(CountryCode.valueOf(radioState.getCountry().toLowerCase())); | ||||
|                         .equals(CountryCode.getByName((radioState.getCountry())))) { | ||||
|                     protocolStatusData.setReportedCC(CountryCode.getByName((radioState.getCountry()))); | ||||
|                     protocolStatus.setDetails(protocolStatusData); | ||||
|  | ||||
|                 } else { | ||||
| @@ -1122,10 +1144,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|             } | ||||
|  | ||||
|  | ||||
|         } | ||||
|  | ||||
|  | ||||
|         if (protocolStatus != null) { | ||||
|             statusServiceInterface.update(protocolStatus); | ||||
|         } | ||||
| @@ -1162,6 +1182,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|         Status activeBssidsStatus = statusServiceInterface.getOrNull(customerId, equipmentId, | ||||
|                 StatusDataType.ACTIVE_BSSIDS); | ||||
|  | ||||
|         statusServiceInterface.getForCustomer(customerId, null, ImmutableSet.of(StatusDataType.ACTIVE_BSSIDS), null, | ||||
|                 null); | ||||
|         if (activeBssidsStatus == null) { | ||||
|             activeBssidsStatus = new Status(); | ||||
|             activeBssidsStatus.setCustomerId(customerId); | ||||
| @@ -1196,7 +1218,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|                     apId, currentActiveBSSIDs, ssid); | ||||
|         } | ||||
|  | ||||
|  | ||||
|         ActiveBSSID activeBssid = new ActiveBSSID(); | ||||
|         activeBssid.setBssid(macAddress); | ||||
|         activeBssid.setSsid(ssid); | ||||
| @@ -1204,16 +1225,14 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|         activeBssid.setNumDevicesConnected(numClients); | ||||
|         currentActiveBSSIDs.add(activeBssid); | ||||
|  | ||||
|  | ||||
|         statusDetails.setActiveBSSIDs(currentActiveBSSIDs); | ||||
|         activeBssidsStatus.setDetails(statusDetails); | ||||
|  | ||||
|         activeBssidsStatus = statusServiceInterface.update(activeBssidsStatus); | ||||
|  | ||||
|         if (LOG.isTraceEnabled()) { | ||||
|             LOG.trace("Processing Wifi_VIF_State table update for AP {}, updated ACTIVE_BSSID Status {}", apId, | ||||
|                     activeBssidsStatus.toPrettyString()); | ||||
|         } | ||||
|         LOG.info("Processing Wifi_VIF_State table update for AP {}, updated ACTIVE_BSSID Status {}", apId, | ||||
|                 activeBssidsStatus); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -1221,6 +1240,125 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|         LOG.debug("Received Wifi_Inet_State table update for AP {}", apId); | ||||
|  | ||||
|         OvsdbSession ovsdbSession = ovsdbSessionMapInterface.getSession(apId); | ||||
|  | ||||
|         if (ovsdbSession == null) { | ||||
|             LOG.debug("wifiInetStateDbTableUpdate::Cannot get Session for AP {}", apId); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         int customerId = ovsdbSession.getCustomerId(); | ||||
|         long equipmentId = ovsdbSession.getEquipmentId(); | ||||
|  | ||||
|         if ((customerId < 0) || (equipmentId < 0)) { | ||||
|             LOG.debug("wifiInetStateDbTableUpdate::Cannot get valid CustomerId {} or EquipmentId {} for AP {}", | ||||
|                     customerId, equipmentId, apId); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         Equipment ce = equipmentServiceInterface.getOrNull(equipmentId); | ||||
|  | ||||
|         if (ce == null) { | ||||
|             LOG.debug("wifiInetStateDbTableUpdate Cannot get customer Equipment for {}", apId); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         Status lanStatus = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.LANINFO); | ||||
|         if (lanStatus == null) { | ||||
|             lanStatus = new Status(); | ||||
|             lanStatus.setCustomerId(customerId); | ||||
|             lanStatus.setEquipmentId(equipmentId); | ||||
|             lanStatus.setStatusDataType(StatusDataType.LANINFO); | ||||
|             lanStatus.setDetails(new EquipmentLANStatusData()); | ||||
|             lanStatus = statusServiceInterface.update(lanStatus); | ||||
|         } | ||||
|  | ||||
|         EquipmentLANStatusData lanStatusData = (EquipmentLANStatusData) lanStatus.getDetails(); | ||||
|  | ||||
|         Status protocolStatus = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.PROTOCOL); | ||||
|         if (protocolStatus == null) { | ||||
|             protocolStatus = new Status(); | ||||
|             protocolStatus.setCustomerId(customerId); | ||||
|             protocolStatus.setEquipmentId(equipmentId); | ||||
|             protocolStatus.setStatusDataType(StatusDataType.PROTOCOL); | ||||
|             protocolStatus.setDetails(new EquipmentProtocolStatusData()); | ||||
|             protocolStatus = statusServiceInterface.update(protocolStatus); | ||||
|         } | ||||
|  | ||||
|         EquipmentProtocolStatusData protocolStatusData = (EquipmentProtocolStatusData) protocolStatus.getDetails(); | ||||
|  | ||||
|         for (OpensyncAPInetState inetState : inetStateTables) { | ||||
|  | ||||
|             if (inetState.ifName != null && inetState.ifName.equals(defaultWanInterfaceName)) { | ||||
|  | ||||
|                 if (inetState.inetAddr != null) { | ||||
|                     try { | ||||
|                         protocolStatusData.setReportedIpV4Addr(Inet4Address.getByName(inetState.inetAddr)); | ||||
|                         protocolStatus.setDetails(protocolStatusData); | ||||
|                         protocolStatus = statusServiceInterface.update(protocolStatus); | ||||
|                         LOG.info("Updated IpV4Addr for AP {} to {} from Wifi_Inet_State change for if_name {}", apId, | ||||
|                                 ((EquipmentProtocolStatusData) protocolStatus.getDetails()).getReportedIpV4Addr(), | ||||
|                                 inetState.ifName); | ||||
|                         LOG.debug("ProtocolStatus for AP {} updated to {}", apId, protocolStatus); | ||||
|  | ||||
|                     } catch (UnknownHostException e) { | ||||
|                         LOG.error("Could not set IpV4Addr {} on AP {} due to UnknownHostException ", inetState.inetAddr, | ||||
|                                 apId, e); | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|             } | ||||
|  | ||||
|             if (inetState.getIfType().equals("vlan") && inetState.parentIfName != null | ||||
|                     && inetState.parentIfName.equals(defaultWanInterfaceName)) { | ||||
|  | ||||
|                 try { | ||||
|  | ||||
|                     VLANStatusData vlanStatusData = new VLANStatusData(); | ||||
|  | ||||
|                     if (inetState.gateway != null) | ||||
|                         vlanStatusData.setGateway(InetAddress.getByName(inetState.getGateway())); | ||||
|  | ||||
|                     if (inetState.dns != null) { | ||||
|                         String primaryDns = inetState.dns.get("primary"); | ||||
|                         if (primaryDns != null) { | ||||
|                             vlanStatusData.setDnsServer1(InetAddress.getByName(primaryDns)); | ||||
|                         } | ||||
|                         String secondaryDns = inetState.dns.get("secondary"); | ||||
|                         if (secondaryDns != null) { | ||||
|                             vlanStatusData.setDnsServer2(InetAddress.getByName(secondaryDns)); | ||||
|                         } | ||||
|                     } | ||||
|  | ||||
|                     if (inetState.netmask != null) { | ||||
|                         vlanStatusData.setSubnetMask(InetAddress.getByName(inetState.netmask)); | ||||
|                     } | ||||
|                     if (inetState.dhcpd != null) { | ||||
|                         String dhcpOption = inetState.dhcpd.get("dhcp_option"); | ||||
|                         if (dhcpOption != null) { | ||||
|                             String dhcpServer = dhcpOption.split(",")[1]; | ||||
|                             if (dhcpServer != null) { | ||||
|                                 vlanStatusData.setDhcpServer(InetAddress.getByName(dhcpServer)); | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|  | ||||
|                     String inetAddr = inetState.getInetAddr(); | ||||
|                     if (inetAddr != null) { | ||||
|                         vlanStatusData.setIpBase(InetAddress.getByName(inetAddr)); | ||||
|                     } | ||||
|                     lanStatusData.getVlanStatusDataMap().put(inetState.vlanId, vlanStatusData); | ||||
|                     lanStatus.setDetails(lanStatusData); | ||||
|                     lanStatus = statusServiceInterface.update(lanStatus); | ||||
|  | ||||
|                     LOG.info("LANINFO updated for VLAN {}", lanStatus); | ||||
|  | ||||
|                 } catch (UnknownHostException e) { | ||||
|                     LOG.error("Unknown Host while configuring LANINFO", e); | ||||
|                 } | ||||
|  | ||||
|             } | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
| @@ -1229,7 +1367,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|         LOG.debug("Received Wifi_Inet_State table delete for AP {}", apId); | ||||
|  | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -1279,9 +1416,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|                 isReassociation = false; | ||||
|  | ||||
|             } | ||||
|             ClientInfoDetails clientDetails = (ClientInfoDetails) clientInstance.getDetails(); | ||||
|  | ||||
|             clientInstance.setDetails(clientDetails); | ||||
|  | ||||
|             clientInstance = clientServiceInterface.update(clientInstance); | ||||
|  | ||||
| @@ -1296,16 +1430,13 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|                 clientSession.setLocationId(ce.getLocationId()); | ||||
|                 ClientSessionDetails clientSessionDetails = new ClientSessionDetails(); | ||||
|                 clientSessionDetails.setIsReassociation(isReassociation); | ||||
|                 clientSessionDetails.setSessionId(clientInstance.getMacAddress().getAddressAsLong()); | ||||
|                 clientSession.setDetails(clientSessionDetails); | ||||
|  | ||||
|                 clientSession = clientServiceInterface.updateSession(clientSession); | ||||
|             } | ||||
|  | ||||
|             ClientSessionDetails clientSessionDetails = clientSession.getDetails(); | ||||
|             clientSessionDetails.setAssociationState(AssociationState._802_11_Associated); | ||||
|             clientSessionDetails.setAssocTimestamp(System.currentTimeMillis()); | ||||
|             clientSessionDetails.setSessionId(clientInstance.getMacAddress().getAddressAsLong()); | ||||
|             clientSession.getDetails().mergeSession(clientSessionDetails); | ||||
|  | ||||
|             clientSession = clientServiceInterface.updateSession(clientSession); | ||||
| @@ -1355,7 +1486,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|             } | ||||
|         } | ||||
|  | ||||
|  | ||||
|         Status protocolStatus = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.PROTOCOL); | ||||
|         if (protocolStatus == null) { | ||||
|             protocolStatus = new Status(); | ||||
| @@ -1606,7 +1736,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|         } | ||||
|  | ||||
|  | ||||
|         bssidList.removeAll(toBeDeleted); | ||||
|  | ||||
|         statusDetails.setActiveBSSIDs(bssidList); | ||||
| @@ -1638,33 +1767,31 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         Set<MacAddress> macAddressSet = new HashSet<>(); | ||||
|         macAddressSet.add(new MacAddress(deletedClientMac)); | ||||
|         List<ClientSession> clientSessionList = clientServiceInterface.getSessions(customerId, macAddressSet); | ||||
|         com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(customerId, | ||||
|                 new MacAddress(deletedClientMac)); | ||||
|         ClientSession clientSession = clientServiceInterface.getSessionOrNull(customerId, equipmentId, | ||||
|                 new MacAddress(deletedClientMac)); | ||||
|  | ||||
|         for (ClientSession session : clientSessionList) { | ||||
|  | ||||
|             ClientSessionDetails clientSessionDetails = session.getDetails(); | ||||
|  | ||||
|  | ||||
|             if ((clientSessionDetails.getAssociationState() != null) | ||||
|                     && !clientSessionDetails.getAssociationState().equals(AssociationState.Disconnected)) { | ||||
|                 clientSessionDetails.setDisconnectByClientTimestamp(System.currentTimeMillis()); | ||||
|                 clientSessionDetails.setAssociationState(AssociationState.Disconnected); | ||||
|  | ||||
|                 session.setDetails(clientSessionDetails); | ||||
|                 session = clientServiceInterface.updateSession(session); | ||||
|  | ||||
|                 if (LOG.isTraceEnabled()) { | ||||
|                     LOG.trace("wifiAssociatedClientsDbTableDelete Updated client session, set to disconnected {}", | ||||
|                             session.toPrettyString()); | ||||
|         if (client != null) { | ||||
|             if (clientSession != null) { | ||||
|                 if (!clientSession.getDetails().getAssociationState().equals(AssociationState.Disconnected)) { | ||||
|                     clientSession.getDetails().setAssociationState(AssociationState.Disconnected); | ||||
|                     clientSession = clientServiceInterface.updateSession(clientSession); | ||||
|                     LOG.info("Session {} for client {} is now disconnected.", clientSession, client.getMacAddress()); | ||||
|                 } | ||||
|             } | ||||
|         } else { | ||||
|             if (clientSession != null) { | ||||
|  | ||||
|                 clientSession = clientServiceInterface.deleteSession(customerId, equipmentId, | ||||
|                         new MacAddress(deletedClientMac)); | ||||
|  | ||||
|                 LOG.info("No client {} found, delete session {}", new MacAddress(deletedClientMac), clientSession); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void dhcpLeasedIpDbTableUpdate(List<Map<String, String>> dhcpAttributes, String apId, | ||||
| @@ -1688,7 +1815,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|  | ||||
|         Equipment ce = getCustomerEquipment(apId); | ||||
|  | ||||
|         if (ce == null) { | ||||
| @@ -1698,39 +1824,44 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|         long locationId = ce.getLocationId(); | ||||
|  | ||||
|         //         "hwaddr": | ||||
|         //         "inet_addr": | ||||
|         //         "hostname": | ||||
|         //         "fingerprint": | ||||
|         //         "vendor_class": | ||||
|         //         "lease_time": | ||||
|         //         "subnet_mask": | ||||
|         //         "gateway": | ||||
|         //         "dhcp_server": | ||||
|         //         "primary_dns": | ||||
|         //         "secondary_dns": | ||||
|         //         "db_status": | ||||
|         //         "device_name": | ||||
|         //         "device_type": | ||||
|         //         "manuf_id": | ||||
|  | ||||
|         if (rowUpdateOperation.equals(RowUpdateOperation.INSERT)) { | ||||
|  | ||||
|  | ||||
|             List<ClientSession> clientSessionList = new ArrayList<>(); | ||||
|             for (Map<String, String> dhcpLeasedIps : dhcpAttributes) { | ||||
|                 if (!dhcpLeasedIps.containsKey("hwaddr")) { | ||||
|  | ||||
|  | ||||
|                     LOG.info("Cannot insert a client {} that has no hwaddr.", dhcpLeasedIps); | ||||
|                     continue; | ||||
|  | ||||
|                 } | ||||
|  | ||||
|                 MacAddress clientMacAddress = new MacAddress(dhcpLeasedIps.get("hwaddr")); | ||||
|  | ||||
|                 com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(customerId, | ||||
|                         clientMacAddress); | ||||
|                 if (client != null) { | ||||
|  | ||||
|                 if (client == null) { | ||||
|                     LOG.info("Cannot find client instance for {}", clientMacAddress); | ||||
|                     continue; | ||||
|                 } else if (clientMacAddress.equals(equipmentServiceInterface.get(equipmentId).getBaseMacAddress())) { | ||||
|                     LOG.info("Not a client device {} ", dhcpLeasedIps); | ||||
|  | ||||
|  | ||||
|                     // In case somehow this equipment has accidentally been | ||||
|                     // tagged as a client, remove | ||||
|  | ||||
|                     ClientSession clientSession = clientServiceInterface.getSessionOrNull(customerId, equipmentId, | ||||
|                             clientMacAddress); | ||||
|  | ||||
|                     if (clientSession != null) { | ||||
|                         LOG.info("Deleting invalid client session {}", | ||||
|                                 clientServiceInterface.deleteSession(customerId, equipmentId, clientMacAddress)); | ||||
|                     } | ||||
|  | ||||
|                     LOG.info("Deleting invalid client {}", clientServiceInterface.delete(customerId, clientMacAddress)); | ||||
|  | ||||
|  | ||||
|                     continue; | ||||
|                 } else { | ||||
|                     LOG.info("Client {} already exists on the cloud, update client values", dhcpLeasedIps); | ||||
|  | ||||
|                     ClientInfoDetails clientDetails = (ClientInfoDetails) client.getDetails(); | ||||
| @@ -1747,7 +1878,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|                     if (dhcpLeasedIps.containsKey("device_type")) { | ||||
|  | ||||
|  | ||||
|                         DhcpFpDeviceType dhcpFpDeviceType = DhcpFpDeviceType | ||||
|                                 .getByName(dhcpLeasedIps.get("device_type")); | ||||
|                         ClientType clientType = OvsdbToWlanCloudTypeMappingUtility | ||||
| @@ -1767,6 +1897,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|                     // In this case, we might have a session, as the client | ||||
|                     // already exists on the cloud, update if required | ||||
|  | ||||
|                     ClientSession session = updateClientSession(customerId, equipmentId, locationId, dhcpLeasedIps, | ||||
|                             clientMacAddress); | ||||
|                     if (session != null) { | ||||
| @@ -1774,49 +1905,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|                     } | ||||
|  | ||||
|  | ||||
|                 } else { | ||||
|  | ||||
|                     client = new com.telecominfraproject.wlan.client.models.Client(); | ||||
|  | ||||
|                     client.setCustomerId(customerId); | ||||
|                     client.setMacAddress(clientMacAddress); | ||||
|  | ||||
|                     ClientInfoDetails clientDetails = new ClientInfoDetails(); | ||||
|  | ||||
|                     if (dhcpLeasedIps.containsKey("hostname")) { | ||||
|  | ||||
|                         clientDetails.setHostName(dhcpLeasedIps.get("hostname")); | ||||
|  | ||||
|                     } | ||||
|  | ||||
|                     if (dhcpLeasedIps.containsKey("fingerprint")) { | ||||
|  | ||||
|                         clientDetails.setApFingerprint(dhcpLeasedIps.get("fingerprint")); | ||||
|                     } | ||||
|  | ||||
|                     if (dhcpLeasedIps.containsKey("device_type")) { | ||||
|  | ||||
|  | ||||
|                         DhcpFpDeviceType dhcpFpDeviceType = DhcpFpDeviceType | ||||
|                                 .getByName(dhcpLeasedIps.get("device_type")); | ||||
|                         ClientType clientType = OvsdbToWlanCloudTypeMappingUtility | ||||
|                                 .getClientTypeForDhcpFpDeviceType(dhcpFpDeviceType); | ||||
|  | ||||
|                         LOG.debug("Translate from ovsdb {} to cloud {}", dhcpFpDeviceType, clientType); | ||||
|  | ||||
|                         clientDetails.setClientType(clientType.getId()); | ||||
|  | ||||
|                     } | ||||
|  | ||||
|                     client.setDetails(clientDetails); | ||||
|  | ||||
|                     client = clientServiceInterface.create(client); | ||||
|  | ||||
|                     LOG.info("Created Client {}.", client); | ||||
|                 } | ||||
|  | ||||
|  | ||||
|             } | ||||
|  | ||||
|             if (!clientSessionList.isEmpty()) { | ||||
| @@ -1825,7 +1914,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|                 LOG.info("Updated client sessions {}", clientSessionList); | ||||
|             } | ||||
|  | ||||
|  | ||||
|         } else if (rowUpdateOperation.equals(RowUpdateOperation.MODIFY) | ||||
|                 || rowUpdateOperation.equals(RowUpdateOperation.INIT)) { | ||||
|  | ||||
| @@ -1841,59 +1929,75 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|                 } | ||||
|  | ||||
|                 MacAddress clientMacAddress = new MacAddress(dhcpLeasedIps.get("hwaddr")); | ||||
|  | ||||
|                 com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(customerId, | ||||
|                         clientMacAddress); | ||||
|                 if (client == null) { | ||||
|                     LOG.info("Client {} does not exist on the cloud. Creating...", dhcpLeasedIps); | ||||
|                     client = new com.telecominfraproject.wlan.client.models.Client(); | ||||
|                     client.setCustomerId(customerId); | ||||
|                     client.setMacAddress(clientMacAddress); | ||||
|                     ClientInfoDetails clientDetails = new ClientInfoDetails(); | ||||
|                     LOG.info("Cannot find client instance for {}", clientMacAddress); | ||||
|                     continue; | ||||
|                 } else if (clientMacAddress.equals(equipmentServiceInterface.get(equipmentId).getBaseMacAddress())) { | ||||
|  | ||||
|                     LOG.info("Not a client device {} ", dhcpLeasedIps); | ||||
|  | ||||
|  | ||||
|                     // In case somehow this equipment has accidentally been | ||||
|                     // tagged as a client, remove | ||||
|  | ||||
|                     ClientSession clientSession = clientServiceInterface.getSessionOrNull(customerId, equipmentId, | ||||
|                             clientMacAddress); | ||||
|  | ||||
|                     if (clientSession != null) { | ||||
|                         LOG.info("Deleting invalid client session {}", | ||||
|                                 clientServiceInterface.deleteSession(customerId, equipmentId, clientMacAddress)); | ||||
|                     } | ||||
|  | ||||
|                     LOG.info("Deleting invalid client {}", clientServiceInterface.delete(customerId, clientMacAddress)); | ||||
|  | ||||
|  | ||||
|                     continue; | ||||
|  | ||||
|                 } else { | ||||
|  | ||||
|  | ||||
|                     ClientInfoDetails clientDetails = (ClientInfoDetails) client.getDetails(); | ||||
|                     if (dhcpLeasedIps.containsKey("hostname")) { | ||||
|  | ||||
|                         clientDetails.setHostName(dhcpLeasedIps.get("hostname")); | ||||
|  | ||||
|                     } | ||||
|  | ||||
|                     if (dhcpLeasedIps.containsKey("fingerprint")) { | ||||
|  | ||||
|                         clientDetails.setApFingerprint(dhcpLeasedIps.get("fingerprint")); | ||||
|                     } | ||||
|  | ||||
|                     if (dhcpLeasedIps.containsKey("device_type")) { | ||||
|  | ||||
|                         DhcpFpDeviceType dhcpFpDeviceType = DhcpFpDeviceType | ||||
|                                 .getByName(dhcpLeasedIps.get("device_type")); | ||||
|                         ClientType clientType = OvsdbToWlanCloudTypeMappingUtility | ||||
|                                 .getClientTypeForDhcpFpDeviceType(dhcpFpDeviceType); | ||||
|  | ||||
|                         LOG.debug("Translate from ovsdb {} to cloud {}", dhcpFpDeviceType, clientType); | ||||
|  | ||||
|                         clientDetails.setClientType(clientType.getId()); | ||||
|  | ||||
|                     } | ||||
|  | ||||
|                     client.setDetails(clientDetails); | ||||
|  | ||||
|                     client = clientServiceInterface.create(client); | ||||
|                     client = clientServiceInterface.update(client); | ||||
|  | ||||
|                 } | ||||
|                     LOG.info("Updated Client {}.", client); | ||||
|  | ||||
|                 ClientInfoDetails clientDetails = (ClientInfoDetails) client.getDetails(); | ||||
|                 if (dhcpLeasedIps.containsKey("hostname")) { | ||||
|                     // check if there is a session for this client | ||||
|  | ||||
|                     clientDetails.setHostName(dhcpLeasedIps.get("hostname")); | ||||
|  | ||||
|                 } | ||||
|  | ||||
|                 if (dhcpLeasedIps.containsKey("fingerprint")) { | ||||
|  | ||||
|                     clientDetails.setApFingerprint(dhcpLeasedIps.get("fingerprint")); | ||||
|                 } | ||||
|  | ||||
|                 if (dhcpLeasedIps.containsKey("device_type")) { | ||||
|  | ||||
|  | ||||
|                     DhcpFpDeviceType dhcpFpDeviceType = DhcpFpDeviceType.getByName(dhcpLeasedIps.get("device_type")); | ||||
|                     ClientType clientType = OvsdbToWlanCloudTypeMappingUtility | ||||
|                             .getClientTypeForDhcpFpDeviceType(dhcpFpDeviceType); | ||||
|  | ||||
|                     LOG.debug("Translate from ovsdb {} to cloud {}", dhcpFpDeviceType, clientType); | ||||
|  | ||||
|                     clientDetails.setClientType(clientType.getId()); | ||||
|  | ||||
|                 } | ||||
|  | ||||
|                 client.setDetails(clientDetails); | ||||
|  | ||||
|                 client = clientServiceInterface.update(client); | ||||
|  | ||||
|                 LOG.info("Updated Client {}.", client); | ||||
|  | ||||
|                 // check if there is a session for this client | ||||
|  | ||||
|                 ClientSession session = updateClientSession(customerId, equipmentId, locationId, dhcpLeasedIps, | ||||
|                         clientMacAddress); | ||||
|                 if (session != null) { | ||||
|                     clientSessionList.add(session); | ||||
|                     ClientSession session = updateClientSession(customerId, equipmentId, locationId, dhcpLeasedIps, | ||||
|                             clientMacAddress); | ||||
|                     if (session != null) { | ||||
|                         clientSessionList.add(session); | ||||
|  | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|             } | ||||
| @@ -1909,7 +2013,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|             LOG.debug("Recieved deletions, not removing client(s) from cloud", dhcpAttributes); | ||||
|         } | ||||
|  | ||||
|  | ||||
|     } | ||||
|  | ||||
|     protected ClientSession updateClientSession(int customerId, long equipmentId, long locationId, | ||||
| @@ -1932,9 +2035,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|         //         "device_type": | ||||
|         //         "manuf_id": | ||||
|  | ||||
|  | ||||
|         if (session == null) { | ||||
|             session = new ClientSession(); | ||||
|             return null; | ||||
|         } | ||||
|         session.setCustomerId(customerId); | ||||
|         session.setEquipmentId(equipmentId); | ||||
| @@ -1959,14 +2061,12 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|         } | ||||
|  | ||||
|  | ||||
|         if (dhcpLeasedIps.containsKey("hostname")) { | ||||
|  | ||||
|             clientSessionDetails.setHostname(dhcpLeasedIps.get("hostname")); | ||||
|  | ||||
|         } | ||||
|  | ||||
|  | ||||
|         ClientDhcpDetails clientDhcpDetails = new ClientDhcpDetails(clientSessionDetails.getSessionId()); | ||||
|  | ||||
|         if (dhcpLeasedIps.containsKey("dhcp_server")) { | ||||
| @@ -2044,7 +2144,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|             } | ||||
|         } | ||||
|  | ||||
|  | ||||
|         if (dhcpLeasedIps.containsKey("device_name")) { | ||||
|             clientSessionDetails.setClassificationName(dhcpLeasedIps.get("device_name")); | ||||
|         } | ||||
| @@ -2053,7 +2152,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|  | ||||
|         session.getDetails().mergeSession(clientSessionDetails); | ||||
|  | ||||
|  | ||||
|         return session; | ||||
|     } | ||||
|  | ||||
| @@ -2066,5 +2164,4 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra | ||||
|         // TODO: will handle changes from Command_State table | ||||
|     } | ||||
|  | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -39,7 +39,6 @@ import com.telecominfraproject.wlan.core.model.equipment.SecurityType; | ||||
| import com.telecominfraproject.wlan.core.model.equipment.WiFiSessionUtility; | ||||
| import com.telecominfraproject.wlan.core.model.utils.DecibelUtils; | ||||
| import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface; | ||||
| import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration; | ||||
| import com.telecominfraproject.wlan.equipment.models.Equipment; | ||||
| import com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities.OvsdbToWlanCloudTypeMappingUtility; | ||||
| import com.telecominfraproject.wlan.profile.ProfileServiceInterface; | ||||
| @@ -74,7 +73,9 @@ 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.RadioUtilizationReport; | ||||
| 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.network.models.NetworkAdminStatusData; | ||||
| import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEventType; | ||||
| import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallReportEvent; | ||||
| import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallStartEvent; | ||||
| @@ -147,7 +148,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|     private CloudEventDispatcherInterface equipmentMetricsCollectorInterface; | ||||
|  | ||||
|     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); | ||||
|         int customerId = extractCustomerIdFromTopic(topic); | ||||
| @@ -244,7 +245,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|         } | ||||
|  | ||||
|         if (!metricRecordList.isEmpty()) { | ||||
|             LOG.debug("Publishing Metrics {}", metricRecordList); | ||||
|             LOG.info("Publishing Metrics {}", metricRecordList); | ||||
|             equipmentMetricsCollectorInterface.publishMetrics(metricRecordList); | ||||
|         } | ||||
|  | ||||
| @@ -289,7 +290,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|     } | ||||
|  | ||||
|  | ||||
|     void processEventReport(Report report, int customerId, long equipmentId, String apId, long locationId) { | ||||
|  | ||||
|         report.getEventReportList().stream().forEach(e -> { | ||||
| @@ -442,7 +442,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                 } | ||||
|                 clientSessionDetails.setAssociationState(AssociationState._802_11_Associated); | ||||
|  | ||||
|  | ||||
|                 if (clientSession.getDetails() == null) { | ||||
|                     clientSession.setDetails(clientSessionDetails); | ||||
|                 } else { | ||||
| @@ -453,7 +452,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|             } | ||||
|  | ||||
|  | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -509,7 +507,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|                 clientSessionDetails.setSessionId(apEventClientSession.getSessionId()); | ||||
|  | ||||
|  | ||||
|                 if (clientDisconnectEvent.hasLrcvUpTsInUs()) { | ||||
|                     clientSessionDetails.setLastRxTimestamp(clientDisconnectEvent.getLrcvUpTsInUs()); | ||||
|                 } | ||||
| @@ -527,7 +524,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                 } | ||||
|                 clientSessionDetails.setAssociationState(AssociationState.Disconnected); | ||||
|  | ||||
|  | ||||
|                 if (clientSession.getDetails() == null) { | ||||
|                     clientSession.setDetails(clientSessionDetails); | ||||
|                 } else { | ||||
| @@ -536,7 +532,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|                 clientSession = clientServiceInterface.updateSession(clientSession); | ||||
|  | ||||
|  | ||||
|             } else { | ||||
|                 LOG.info("Cannot update client or client session when no client mac address is present"); | ||||
|             } | ||||
| @@ -589,7 +584,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                     clientSessionDetails.setAssociationState(AssociationState._802_11_Authenticated); | ||||
|                 } | ||||
|  | ||||
|  | ||||
|                 if (clientSession.getDetails() == null) { | ||||
|                     clientSession.setDetails(clientSessionDetails); | ||||
|                 } else { | ||||
| @@ -598,7 +592,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|                 clientSession = clientServiceInterface.updateSession(clientSession); | ||||
|  | ||||
|  | ||||
|             } else { | ||||
|                 LOG.info("Cannot update client or client session when no client mac address is present"); | ||||
|             } | ||||
| @@ -709,7 +702,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                 clientSession.setLocationId(locationId); | ||||
|                 clientSession.setMacAddress(new MacAddress(clientFailureEvent.getStaMac())); | ||||
|  | ||||
|  | ||||
|                 ClientSessionDetails clientSessionDetails = new ClientSessionDetails(); | ||||
|  | ||||
|                 if (clientFailureEvent.hasSsid()) { | ||||
| @@ -772,10 +764,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                 clientSession.setLocationId(locationId); | ||||
|                 clientSession.setMacAddress(new MacAddress(clientFirstDataEvent.getStaMac())); | ||||
|  | ||||
|  | ||||
|                 ClientSessionDetails clientSessionDetails = new ClientSessionDetails(); | ||||
|  | ||||
|  | ||||
|                 if (clientFirstDataEvent.hasFdataRxUpTsInUs()) { | ||||
|                     clientSessionDetails.setFirstDataRcvdTimestamp(clientFirstDataEvent.getFdataRxUpTsInUs()); | ||||
|                 } | ||||
| @@ -833,12 +823,10 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                 clientSession.setLocationId(locationId); | ||||
|                 clientSession.setMacAddress(new MacAddress(clientIdEvent.getCltMac())); | ||||
|  | ||||
|  | ||||
|                 ClientSessionDetails clientSessionDetails = new ClientSessionDetails(); | ||||
|  | ||||
|                 clientSessionDetails.setSessionId(apEventClientSession.getSessionId()); | ||||
|  | ||||
|  | ||||
|                 if (clientSession.getDetails() == null) { | ||||
|                     clientSession.setDetails(clientSessionDetails); | ||||
|                 } else { | ||||
| @@ -886,10 +874,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|                 ClientSessionDetails clientSessionDetails = new ClientSessionDetails(); | ||||
|  | ||||
|  | ||||
|                 clientSessionDetails.setSessionId(apEventClientSession.getSessionId()); | ||||
|  | ||||
|  | ||||
|                 try { | ||||
|                     clientSessionDetails | ||||
|                             .setIpAddress(InetAddress.getByAddress(clientIpEvent.getIpAddr().toByteArray())); | ||||
| @@ -992,7 +978,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                 eventTimestamp = videoVoiceReport.getTimestampMs(); | ||||
|             } | ||||
|  | ||||
|             LOG.debug("Received VideoVoiceReport {} for SIP call", videoVoiceReport); | ||||
|             LOG.info("Received VideoVoiceReport {} for SIP call", videoVoiceReport); | ||||
|  | ||||
|             processRealTImeSipCallReportEvent(customerId, equipmentId, eventTimestamp, eventsList, videoVoiceReport); | ||||
|  | ||||
| @@ -1046,34 +1032,34 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|                 if (apRtpFlowStats.hasDirection()) { | ||||
|                     switch (apRtpFlowStats.getDirection()) { | ||||
|                         case RTP_DOWNSTREAM: | ||||
|                             cloudRtpStats.setDirection( | ||||
|                                     com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.DOWNSTREAM); | ||||
|                             break; | ||||
|                         case RTP_UPSTREAM: | ||||
|                             cloudRtpStats.setDirection( | ||||
|                                     com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UPSTREAM); | ||||
|                             break; | ||||
|                         default: | ||||
|                             cloudRtpStats.setDirection( | ||||
|                                     com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UNSUPPORTED); | ||||
|                     case RTP_DOWNSTREAM: | ||||
|                         cloudRtpStats.setDirection( | ||||
|                                 com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.DOWNSTREAM); | ||||
|                         break; | ||||
|                     case RTP_UPSTREAM: | ||||
|                         cloudRtpStats.setDirection( | ||||
|                                 com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UPSTREAM); | ||||
|                         break; | ||||
|                     default: | ||||
|                         cloudRtpStats.setDirection( | ||||
|                                 com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UNSUPPORTED); | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|                 if (apRtpFlowStats.hasRtpFlowType()) { | ||||
|                     switch (apRtpFlowStats.getRtpFlowType()) { | ||||
|                         case RTP_VIDEO: | ||||
|                             cloudRtpStats.setFlowType( | ||||
|                                     com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VIDEO); | ||||
|                             break; | ||||
|                         case RTP_VOICE: | ||||
|                             cloudRtpStats.setFlowType( | ||||
|                                     com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VOICE); | ||||
|                             break; | ||||
|                         default: | ||||
|                             cloudRtpStats.setFlowType( | ||||
|                                     com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.UNSUPPORTED); | ||||
|                             break; | ||||
|                     case RTP_VIDEO: | ||||
|                         cloudRtpStats.setFlowType( | ||||
|                                 com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VIDEO); | ||||
|                         break; | ||||
|                     case RTP_VOICE: | ||||
|                         cloudRtpStats.setFlowType( | ||||
|                                 com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VOICE); | ||||
|                         break; | ||||
|                     default: | ||||
|                         cloudRtpStats.setFlowType( | ||||
|                                 com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.UNSUPPORTED); | ||||
|                         break; | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
| @@ -1101,12 +1087,10 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                     cloudRtpStats.setPacketLossPercentage(apRtpFlowStats.getPacketLossPercent()); | ||||
|                 } | ||||
|  | ||||
|  | ||||
|                 cloudRtpFlowStatsList.add(cloudRtpStats); | ||||
|  | ||||
|             } | ||||
|  | ||||
|  | ||||
|             RealTimeSipCallReportEvent cloudSipCallReportEvent = new RealTimeSipCallReportEvent(customerId, equipmentId, | ||||
|                     eventTimestamp); | ||||
|             cloudSipCallReportEvent.setClientMacAddress(MacAddress.valueOf(callReport.getClientMac())); | ||||
| @@ -1167,10 +1151,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|             if (apCallStop.hasCallDuration()) { | ||||
|  | ||||
|  | ||||
|                 cloudSipCallStopEvent.setCallDuration(apCallStop.getCallDuration()); | ||||
|  | ||||
|  | ||||
|             } | ||||
|  | ||||
|             if (apCallStop.hasClientMac()) { | ||||
| @@ -1182,15 +1164,15 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|             if (apCallStop.hasReason()) { | ||||
|  | ||||
|                 switch (apCallStop.getReason()) { | ||||
|                     case BYE_OK: | ||||
|                         cloudSipCallStopEvent.setReason(SipCallStopReason.BYE_OK); | ||||
|                         break; | ||||
|                     case CALL_DROPPED: | ||||
|                         cloudSipCallStopEvent.setReason(SipCallStopReason.DROPPED); | ||||
|                         break; | ||||
|                 case BYE_OK: | ||||
|                     cloudSipCallStopEvent.setReason(SipCallStopReason.BYE_OK); | ||||
|                     break; | ||||
|                 case CALL_DROPPED: | ||||
|                     cloudSipCallStopEvent.setReason(SipCallStopReason.DROPPED); | ||||
|                     break; | ||||
|  | ||||
|                     default: | ||||
|                         cloudSipCallStopEvent.setReason(SipCallStopReason.UNSUPPORTED); | ||||
|                 default: | ||||
|                     cloudSipCallStopEvent.setReason(SipCallStopReason.UNSUPPORTED); | ||||
|                 } | ||||
|  | ||||
|             } | ||||
| @@ -1208,7 +1190,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|             eventsList.add(cloudSipCallStopEvent); | ||||
|  | ||||
|  | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -1249,7 +1230,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|             eventsList.add(rtsStartEvent); | ||||
|  | ||||
|  | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -1339,10 +1319,9 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|  | ||||
|     void populateApNodeMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId, | ||||
|             long locationId) { | ||||
|         LOG.debug("populateApNodeMetrics for Customer {} Equipment {}", customerId, equipmentId); | ||||
|         LOG.info("populateApNodeMetrics for Customer {} Equipment {}", customerId, equipmentId); | ||||
|         ApNodeMetrics apNodeMetrics = new ApNodeMetrics(); | ||||
|         ServiceMetric smr = new ServiceMetric(customerId, equipmentId); | ||||
|  | ||||
| @@ -1535,7 +1514,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                 // we need to perform a weighted average here because the | ||||
|                 // samples are in percentage, and may be of different durations | ||||
|  | ||||
|  | ||||
|                 busyTx += surveySample.getBusyTx() * surveySample.getDurationMs(); | ||||
|                 busyRx += surveySample.getBusyRx() * surveySample.getDurationMs(); | ||||
|                 busy += surveySample.getBusy() * surveySample.getDurationMs(); | ||||
| @@ -1543,7 +1521,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                 totalDurationMs += surveySample.getDurationMs(); | ||||
|                 noiseList.add(getNegativeSignedIntFrom8BitUnsigned(surveySample.getNoise())); | ||||
|  | ||||
|  | ||||
|             } | ||||
|  | ||||
|             if (totalDurationMs > 0) { | ||||
| @@ -1593,6 +1570,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|         } | ||||
|  | ||||
|         populateNetworkProbeMetrics(report, apNodeMetrics); | ||||
|         updateNetworkAdminStatusReport(customerId, equipmentId, apNodeMetrics); | ||||
|         RadioUtilizationReport radioUtilizationReport = new RadioUtilizationReport(); | ||||
|         radioUtilizationReport.setAvgNoiseFloor(avgNoiseFloor); | ||||
|         radioUtilizationReport.setRadioUtilization(radioUtilizationDetailsMap); | ||||
| @@ -1601,9 +1579,78 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|         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.info("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.info("No DhcpState present in networkProbeMetrics, set to 'normal"); | ||||
|                 statusData.setDhcpStatus(StatusCode.normal); | ||||
|             } else { | ||||
|                 statusData.setDhcpStatus(stateUpDownErrorToStatusCode(n.getDhcpState())); | ||||
|             } | ||||
|             if (n.getRadiusState() == null) { | ||||
|                 LOG.info("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.info("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, | ||||
|             RadioUtilizationReport radioUtilizationReport) { | ||||
|         LOG.debug( | ||||
|         LOG.info( | ||||
|                 "Processing updateDeviceStatusRadioUtilizationReport for equipmentId {} with RadioUtilizationReport {}", | ||||
|                 equipmentId, radioUtilizationReport); | ||||
|  | ||||
| @@ -1611,7 +1658,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                 StatusDataType.RADIO_UTILIZATION); | ||||
|  | ||||
|         if (radioUtilizationStatus == null) { | ||||
|             LOG.debug("Create new radioUtilizationStatus"); | ||||
|             LOG.info("Create new radioUtilizationStatus"); | ||||
|             radioUtilizationStatus = new Status(); | ||||
|             radioUtilizationStatus.setCustomerId(customerId); | ||||
|             radioUtilizationStatus.setEquipmentId(equipmentId); | ||||
| @@ -1657,7 +1704,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                         ipAddress = InetAddress.getByName(dnsProbeMetricFromAp.getServerIP()); | ||||
|                         cloudDnsProbeMetric.setDnsServerIp(ipAddress); | ||||
|                     } 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); | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
| @@ -1693,7 +1741,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                     StateUpDownError dhcpState = OvsdbToWlanCloudTypeMappingUtility | ||||
|                             .getCloudMetricsStateFromOpensyncStatsStateUpDown(vlanMetrics.getDhcpState()); | ||||
|  | ||||
|  | ||||
|                     networkProbeMetrics.setDhcpState(dhcpState); | ||||
|  | ||||
|                 } | ||||
| @@ -1722,24 +1769,23 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|         eqOsPerformance.setTotalAvailableMemoryKb(deviceReport.getMemUtil().getMemTotal()); | ||||
|         status.setDetails(eqOsPerformance); | ||||
|         status = statusServiceInterface.update(status); | ||||
|         LOG.debug("updated status {}", status); | ||||
|         LOG.info("updated status {}", status); | ||||
|     } | ||||
|  | ||||
|     void populateApClientMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId, | ||||
|             long locationId) { | ||||
|         LOG.debug("populateApClientMetrics for Customer {} Equipment {}", customerId, equipmentId); | ||||
|         LOG.info("populateApClientMetrics for Customer {} Equipment {}", customerId, equipmentId); | ||||
|  | ||||
|         for (ClientReport clReport : report.getClientsList()) { | ||||
|             for (Client cl : clReport.getClientListList()) { | ||||
|  | ||||
|                 if (cl.getMacAddress() == null) { | ||||
|                     LOG.debug( | ||||
|                             "No mac address for Client {}, cannot set device mac address for client in ClientMetrics.", | ||||
|                     LOG.info("No mac address for Client {}, cannot set device mac address for client in ClientMetrics.", | ||||
|                             cl); | ||||
|                     continue; | ||||
|                 } | ||||
|  | ||||
|                 LOG.debug("Processing ClientReport from AP {}", cl.getMacAddress()); | ||||
|                 LOG.info("Processing ClientReport from AP {}", cl.getMacAddress()); | ||||
|  | ||||
|                 ServiceMetric smr = new ServiceMetric(customerId, equipmentId, new MacAddress(cl.getMacAddress())); | ||||
|                 smr.setLocationId(locationId); | ||||
| @@ -1763,7 +1809,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                 long sessionId = WiFiSessionUtility.encodeWiFiAssociationId(clReport.getTimestampMs() / 1000L, | ||||
|                         MacAddress.convertMacStringToLongValue(cl.getMacAddress())); | ||||
|  | ||||
|                 LOG.debug("populateApClientMetrics Session Id {}", sessionId); | ||||
|                 LOG.info("populateApClientMetrics Session Id {}", sessionId); | ||||
|                 cMetrics.setSessionId(sessionId); | ||||
|  | ||||
|                 if (cl.hasStats()) { | ||||
| @@ -1821,7 +1867,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|                 LOG.debug("ApClientMetrics Report {}", cMetrics); | ||||
|                 LOG.info("ApClientMetrics Report {}", cMetrics); | ||||
|  | ||||
|             } | ||||
|  | ||||
| @@ -1831,7 +1877,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|     void populateNeighbourScanReports(List<ServiceMetric> metricRecordList, Report report, int customerId, | ||||
|             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()) { | ||||
|  | ||||
| @@ -1891,8 +1937,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void handleClientSessionMetricsUpdate(int customerId, long equipmentId, long locationId, RadioType radioType, | ||||
|             long timestamp, sts.OpensyncStats.Client client) { | ||||
|     ClientSession handleClientSessionMetricsUpdate(int customerId, long equipmentId, long locationId, | ||||
|             RadioType radioType, long timestamp, sts.OpensyncStats.Client client) { | ||||
|         try | ||||
|  | ||||
|         { | ||||
| @@ -1904,13 +1950,10 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|             boolean isReassociation = true; | ||||
|             if (clientInstance == null) { | ||||
|                 clientInstance = new com.telecominfraproject.wlan.client.models.Client(); | ||||
|                 clientInstance.setCustomerId(customerId); | ||||
|                 clientInstance.setMacAddress(new MacAddress(client.getMacAddress())); | ||||
|                 clientInstance.setDetails(new ClientInfoDetails()); | ||||
|                 clientInstance = clientServiceInterface.create(clientInstance); | ||||
|  | ||||
|                 isReassociation = false; | ||||
|                 LOG.info("Cannot get client instance for {}", client.getMacAddress()); | ||||
|                 return null; | ||||
|  | ||||
|             } | ||||
|  | ||||
|             LOG.info("Client {}", clientInstance); | ||||
| @@ -1919,18 +1962,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                     clientInstance.getMacAddress()); | ||||
|  | ||||
|             if (clientSession == null) { | ||||
|  | ||||
|                 clientSession = new ClientSession(); | ||||
|                 clientSession.setCustomerId(customerId); | ||||
|                 clientSession.setEquipmentId(equipmentId); | ||||
|                 clientSession.setLocationId(locationId); | ||||
|                 clientSession.setMacAddress(clientInstance.getMacAddress()); | ||||
|                 ClientSessionDetails clientSessionDetails = new ClientSessionDetails(); | ||||
|                 clientSessionDetails.setSsid(client.getSsid()); | ||||
|                 clientSessionDetails.setRadioType(radioType); | ||||
|                 clientSessionDetails.setSessionId(clientInstance.getMacAddress().getAddressAsLong()); | ||||
|                 clientSession.setDetails(new ClientSessionDetails()); | ||||
|                 clientSession = clientServiceInterface.updateSession(clientSession); | ||||
|                 LOG.info("Cannot get client session for {}", clientInstance.getMacAddress()); | ||||
|                 return null; | ||||
|             } | ||||
|  | ||||
|             ClientSessionDetails latestClientSessionDetails = clientSession.getDetails(); | ||||
| @@ -1961,7 +1994,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                     }).collect(Collectors.toList()); | ||||
|  | ||||
|             if (!ssidConfigList.isEmpty()) { | ||||
|  | ||||
|                 Profile ssidProfile = ssidConfigList.iterator().next(); | ||||
|                 SsidConfiguration ssidConfig = (SsidConfiguration) ssidProfile.getDetails(); | ||||
|                 if (ssidConfig.getSecureMode().equals(SecureMode.open)) { | ||||
| @@ -1979,7 +2011,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                         || ssidConfig.getSecureMode().equals(SecureMode.wpa2EAP) | ||||
|                         || ssidConfig.getSecureMode().equals(SecureMode.wpa2OnlyEAP)) { | ||||
|                     latestClientSessionDetails.setSecurityType(SecurityType.RADIUS); | ||||
|  | ||||
|                     latestClientSessionDetails.setEapDetails(new ClientEapDetails()); | ||||
|                 } else { | ||||
|                     latestClientSessionDetails.setSecurityType(SecurityType.UNSUPPORTED); | ||||
| @@ -1989,7 +2020,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                     latestClientSessionDetails.setDynamicVlan(ssidConfig.getVlanId()); | ||||
|                 } | ||||
|  | ||||
|  | ||||
|                 RadioBasedSsidConfiguration radioConfig = ssidConfig.getRadioBasedConfigs().get(radioType); | ||||
|                 latestClientSessionDetails | ||||
|                         .setIs11KUsed(radioConfig.getEnable80211k() != null ? radioConfig.getEnable80211k() : false); | ||||
| @@ -2007,35 +2037,61 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|             clientSession = clientServiceInterface.updateSession(clientSession); | ||||
|  | ||||
|             LOG.debug("Updated client session {}", clientSession); | ||||
|             LOG.info("Updated client session {}", clientSession); | ||||
|  | ||||
|             return clientSession; | ||||
|         } catch (Exception e) { | ||||
|             LOG.error("Error while attempting to create ClientSession and Info", e); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     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); | ||||
|  | ||||
|         ClientSessionMetricDetails metricDetails = new ClientSessionMetricDetails(); | ||||
|  | ||||
|         if (LOG.isDebugEnabled()) | ||||
|             LOG.info("Stats: {} DurationMs {}", client.getStats(), client.getDurationMs()); | ||||
|         int rssi = client.getStats().getRssi(); | ||||
|         metricDetails.setRssi(rssi); | ||||
|         metricDetails.setRxBytes(client.getStats().getRxBytes()); | ||||
|         metricDetails.setTxBytes(client.getStats().getTxBytes()); | ||||
|  | ||||
|         // Frames : data chunk sent over data-link layer (Ethernet, ATM) | ||||
|         // Packets : data chunk sent over IP layer. | ||||
|         // in Wifi, these are the same size, so number of packets is equal to | ||||
|         // number of frames | ||||
|         metricDetails.setTotalTxPackets(client.getStats().getTxFrames()); | ||||
|         metricDetails.setTotalRxPackets(client.getStats().getRxFrames()); | ||||
|         metricDetails.setTxDataFrames((int) client.getStats().getTxFrames()); | ||||
|         metricDetails.setRxDataFrames((int) client.getStats().getRxFrames()); | ||||
|         // values reported in Kbps, convert to Mbps | ||||
|         metricDetails.setRxMbps((float) (client.getStats().getRxRate() / 1000)); | ||||
|         metricDetails.setTxMbps((float) (client.getStats().getTxRate() / 1000)); | ||||
|  | ||||
|         metricDetails.setRxRateKbps((long) client.getStats().getRxRate()); | ||||
|         metricDetails.setTxRateKbps((long) client.getStats().getTxRate()); | ||||
|         if (LOG.isDebugEnabled()) | ||||
|             LOG.info("RxRateKbps {} TxRateKbps {}", metricDetails.getRxRateKbps(), metricDetails.getTxRateKbps()); | ||||
|  | ||||
|         // Throughput, do rate / duration | ||||
|         if (client.getDurationMs() > 0) { | ||||
|             metricDetails.setRxRateKbps((long) client.getStats().getRxRate() / client.getDurationMs()); | ||||
|             metricDetails.setTxRateKbps((long) client.getStats().getTxRate() / client.getDurationMs()); | ||||
|         if (client.getDurationMs() > 1000) { | ||||
|             int durationSec = client.getDurationMs() / 1000; | ||||
|             // 1 Mbit = 125000 B | ||||
|  | ||||
|             float rxBytesFv = Long.valueOf(client.getStats().getRxBytes()).floatValue(); | ||||
|             float rxBytesToMb = rxBytesFv / 125000F; | ||||
|             float txBytesFv = Long.valueOf(client.getStats().getRxBytes()).floatValue(); | ||||
|             float txBytesToMb = txBytesFv / 125000F; | ||||
|  | ||||
|             if (LOG.isDebugEnabled()) | ||||
|                 LOG.info("rxBytesToMb {} txBytesToMb {} ", rxBytesToMb, txBytesToMb); | ||||
|  | ||||
|             metricDetails.setRxMbps(rxBytesToMb / durationSec); | ||||
|             metricDetails.setTxMbps(txBytesToMb / durationSec); | ||||
|             if (LOG.isDebugEnabled()) | ||||
|                 LOG.info("RxMbps {} TxMbps {} ", metricDetails.getRxMbps(), metricDetails.getTxMbps()); | ||||
|  | ||||
|         } else { | ||||
|             LOG.info("Cannot calculate tx/rx throughput for Client {} based on duration of {} Ms", | ||||
|                     client.getMacAddress(), client.getDurationMs()); | ||||
| @@ -2048,19 +2104,17 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|     void populateApSsidMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId, | ||||
|             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); | ||||
|         smr.setLocationId(locationId); | ||||
|         ApSsidMetrics apSsidMetrics = new ApSsidMetrics(); | ||||
|  | ||||
|  | ||||
|         smr.setDetails(apSsidMetrics); | ||||
|         metricRecordList.add(smr); | ||||
|  | ||||
|  | ||||
|         for (ClientReport clientReport : report.getClientsList()) { | ||||
|  | ||||
|             LOG.debug("ClientReport for channel {} RadioBand {}", clientReport.getChannel(), clientReport.getBand()); | ||||
|             LOG.info("ClientReport for channel {} RadioBand {}", clientReport.getChannel(), clientReport.getBand()); | ||||
|  | ||||
|             if (smr.getCreatedTimestamp() < clientReport.getTimestampMs()) { | ||||
|                 smr.setCreatedTimestamp(clientReport.getTimestampMs()); | ||||
| @@ -2103,12 +2157,11 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             LOG.debug("Client Report Date is {}", new Date(clientReport.getTimestampMs())); | ||||
|             LOG.info("Client Report Date is {}", new Date(clientReport.getTimestampMs())); | ||||
|             int numConnectedClients = 0; | ||||
|             for (Client client : clientReport.getClientListList()) { | ||||
|                 if (client.hasStats()) { | ||||
|  | ||||
|  | ||||
|                     if (client.hasSsid()) { | ||||
|                         ssid = client.getSsid(); | ||||
|                     } | ||||
| @@ -2133,15 +2186,19 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                     try { | ||||
|  | ||||
|                         if (client.hasConnected() && client.getConnected() && client.hasMacAddress()) { | ||||
|                             // update metrics for connected client | ||||
|                             numConnectedClients += 1; | ||||
|                             handleClientSessionMetricsUpdate(customerId, equipmentId, locationId, radioType, | ||||
|                                     clientReport.getTimestampMs(), client); | ||||
|                             // update service_metrics_collection_config for | ||||
|                             // connected client | ||||
|                             ClientSession session = handleClientSessionMetricsUpdate(customerId, equipmentId, | ||||
|                                     locationId, radioType, clientReport.getTimestampMs(), client); | ||||
|                             if (session != null) { | ||||
|                                 numConnectedClients += 1; | ||||
|                             } | ||||
|                         } else { | ||||
|                             // Make sure, if we have a session for this client, | ||||
|                             // it | ||||
|                             // 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 | ||||
|                             if (client.hasMacAddress()) { | ||||
|                                 ClientSession session = clientServiceInterface.getSessionOrNull(customerId, equipmentId, | ||||
| @@ -2179,9 +2236,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                             continue; // not connected | ||||
|                         } | ||||
|  | ||||
|  | ||||
|                     } catch (Exception e) { | ||||
|                         LOG.debug("Unabled to update client {} session {}", client, e); | ||||
|                         LOG.info("Unabled to update client {} session {}", client, e); | ||||
|                     } | ||||
|  | ||||
|                 } | ||||
| @@ -2211,7 +2267,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|  | ||||
|         } | ||||
|  | ||||
|         LOG.debug("ApSsidMetrics {}", apSsidMetrics); | ||||
|         LOG.info("ApSsidMetrics {}", apSsidMetrics); | ||||
|  | ||||
|     } | ||||
|  | ||||
| @@ -2253,12 +2309,12 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|     void populateChannelInfoReports(List<ServiceMetric> metricRecordList, Report report, int customerId, | ||||
|             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( | ||||
|                 profileServiceInterface.getProfileWithChildren(profileId)); | ||||
|         RfConfiguration rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf) | ||||
|         		.getDetails(); | ||||
|                 .getDetails(); | ||||
|  | ||||
|         for (Survey survey : report.getSurveyList()) { | ||||
|  | ||||
| @@ -2313,20 +2369,17 @@ public class OpensyncExternalIntegrationMqttMessageProcessor { | ||||
|                 channelInfoReports.setChannelInformationReportsPerRadio(channelInfoMap); | ||||
|             } | ||||
|  | ||||
|  | ||||
|             channelInfoReports.setChannelInformationReportsPerRadio(channelInfoMap); | ||||
|             smr.setDetails(channelInfoReports); | ||||
|             smr.setCreatedTimestamp(survey.getTimestampMs()); | ||||
|             metricRecordList.add(smr); | ||||
|  | ||||
|             LOG.debug("ChannelInfoReports {}", channelInfoReports); | ||||
|             LOG.info("ChannelInfoReports {}", channelInfoReports); | ||||
|  | ||||
|         } | ||||
|  | ||||
|  | ||||
|     } | ||||
|  | ||||
|  | ||||
|     int getNegativeSignedIntFrom8BitUnsigned(int unsignedValue) { | ||||
|         byte b = (byte) Integer.parseInt(Integer.toHexString(unsignedValue), 16); | ||||
|         return b; | ||||
|   | ||||
| @@ -697,7 +697,7 @@ public class OpensyncExternalIntegrationCloudTest { | ||||
|         protocolStatus.setCustomerId(2); | ||||
|         protocolStatus.setEquipmentId(1L); | ||||
|         EquipmentProtocolStatusData protocolStatusData = new EquipmentProtocolStatusData(); | ||||
|         protocolStatusData.setReportedCC(CountryCode.ca); | ||||
|         protocolStatusData.setReportedCC(CountryCode.CA); | ||||
|         protocolStatus.setDetails(protocolStatusData); | ||||
|         protocolStatus.setStatusDataType(StatusDataType.PROTOCOL); | ||||
|  | ||||
|   | ||||
| @@ -22,11 +22,7 @@ | ||||
| 			<artifactId>tip-wlan-opensync-protobuf</artifactId> | ||||
| 			<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> | ||||
| 			<artifactId>equipment-models</artifactId> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| @@ -47,11 +43,7 @@ | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<artifactId>client-models</artifactId> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
| 		 | ||||
|  | ||||
| 		<dependency> | ||||
| 			<groupId>com.vmware.ovsdb</groupId> | ||||
|   | ||||
| @@ -3,6 +3,7 @@ package com.telecominfraproject.wlan.opensync.external.integration.models; | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashSet; | ||||
| import java.util.List; | ||||
| import java.util.Objects; | ||||
| import java.util.Set; | ||||
|  | ||||
| import com.telecominfraproject.wlan.core.model.entity.CountryCode; | ||||
| @@ -282,4 +283,34 @@ public class OpensyncAPConfig extends BaseJsonModel { | ||||
|     public List<Profile> getMetricsProfiles() { | ||||
|         return metricsProfile;        | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         return Objects.hash(apProfile, blockedClients, bonjourGatewayProfiles, captiveProfiles, customerEquipment, | ||||
|                 equipmentGateway, equipmentLocation, equipmentRouting, hotspotConfig, metricsProfile, | ||||
|                 radiusProfiles, rfProfile, ssidProfile); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) { | ||||
|             return true; | ||||
|         } | ||||
|         if (!(obj instanceof OpensyncAPConfig)) { | ||||
|             return false; | ||||
|         } | ||||
|         OpensyncAPConfig other = (OpensyncAPConfig) obj; | ||||
|         return Objects.equals(apProfile, other.apProfile) && Objects.equals(blockedClients, other.blockedClients) | ||||
|                 && Objects.equals(bonjourGatewayProfiles, other.bonjourGatewayProfiles) | ||||
|                 && Objects.equals(captiveProfiles, other.captiveProfiles) | ||||
|                 && Objects.equals(customerEquipment, other.customerEquipment) | ||||
|                 && Objects.equals(equipmentGateway, other.equipmentGateway) | ||||
|                 && Objects.equals(equipmentLocation, other.equipmentLocation) | ||||
|                 && Objects.equals(equipmentRouting, other.equipmentRouting) | ||||
|                 && Objects.equals(hotspotConfig, other.hotspotConfig) | ||||
|                 && Objects.equals(metricsProfile, other.metricsProfile) | ||||
|                 && Objects.equals(radiusProfiles, other.radiusProfiles) && Objects.equals(rfProfile, other.rfProfile) | ||||
|                 && Objects.equals(ssidProfile, other.ssidProfile); | ||||
|     } | ||||
|      | ||||
| } | ||||
|   | ||||
| @@ -6,13 +6,12 @@ import java.util.Map; | ||||
| import com.telecominfraproject.wlan.core.model.json.BaseJsonModel; | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||
|  | ||||
| public class OpensyncAPInetState extends BaseJsonModel  { | ||||
|  | ||||
| public class OpensyncAPInetState extends BaseJsonModel { | ||||
|  | ||||
| 	private static final long serialVersionUID = 1707053648715030173L; | ||||
|  | ||||
| 	public String ifName; | ||||
| 	public String dhcpd; | ||||
| 	public Map<String, String> dhcpd; | ||||
| 	public String unpnpMode; | ||||
| 	public String ifType; | ||||
| 	public String softwdsMacAddr; | ||||
| @@ -37,175 +36,423 @@ public class OpensyncAPInetState extends BaseJsonModel  { | ||||
| 	public String inetConfig; | ||||
| 	public Uuid _uuid; | ||||
| 	public Uuid version; | ||||
|  | ||||
| 	 | ||||
| 	 | ||||
| 	public String greLocalInetAddr; | ||||
| 	public String greRemoteMacAddr; | ||||
|  | ||||
| 	public OpensyncAPInetState() { | ||||
|         super(); | ||||
|         dns = new HashMap<>(); | ||||
|         dhcpc = new HashMap<>(); | ||||
|     } | ||||
|     public String getIfName() { | ||||
| 		super(); | ||||
| 		dns = new HashMap<>(); | ||||
| 		dhcpc = new HashMap<>(); | ||||
| 	} | ||||
|  | ||||
| 	public String getIfName() { | ||||
| 		return ifName; | ||||
| 	} | ||||
|  | ||||
| 	public void setIfName(String ifName) { | ||||
| 		this.ifName = ifName; | ||||
| 	} | ||||
| 	public String getDhcpd() { | ||||
|  | ||||
| 	public Map<String, String> getDhcpd() { | ||||
| 		return dhcpd; | ||||
| 	} | ||||
| 	public void setDhcpd(String dhcpd) { | ||||
|  | ||||
| 	public void setDhcpd(Map<String, String> dhcpd) { | ||||
| 		this.dhcpd = dhcpd; | ||||
| 	} | ||||
|  | ||||
| 	public String getUnpnpMode() { | ||||
| 		return unpnpMode; | ||||
| 	} | ||||
|  | ||||
| 	public void setUnpnpMode(String unpnpMode) { | ||||
| 		this.unpnpMode = unpnpMode; | ||||
| 	} | ||||
|  | ||||
| 	public String getIfType() { | ||||
| 		return ifType; | ||||
| 	} | ||||
|  | ||||
| 	public void setIfType(String ifType) { | ||||
| 		this.ifType = ifType; | ||||
| 	} | ||||
|  | ||||
| 	public String getSoftwdsMacAddr() { | ||||
| 		return softwdsMacAddr; | ||||
| 	} | ||||
|  | ||||
| 	public void setSoftwdsMacAddr(String softwdsMacAddr) { | ||||
| 		this.softwdsMacAddr = softwdsMacAddr; | ||||
| 	} | ||||
|  | ||||
| 	public boolean isEnabled() { | ||||
| 		return enabled; | ||||
| 	} | ||||
|  | ||||
| 	public void setEnabled(boolean enabled) { | ||||
| 		this.enabled = enabled; | ||||
| 	} | ||||
|  | ||||
| 	public boolean isSofwdsWrap() { | ||||
| 		return sofwdsWrap; | ||||
| 	} | ||||
|  | ||||
| 	public void setSofwdsWrap(boolean sofwdsWrap) { | ||||
| 		this.sofwdsWrap = sofwdsWrap; | ||||
| 	} | ||||
|  | ||||
| 	public int getVlanId() { | ||||
| 		return vlanId; | ||||
| 	} | ||||
|  | ||||
| 	public void setVlanId(int vlanId) { | ||||
| 		this.vlanId = vlanId; | ||||
| 	} | ||||
|  | ||||
| 	public String getNetmask() { | ||||
| 		return netmask; | ||||
| 	} | ||||
|  | ||||
| 	public void setNetmask(String netmask) { | ||||
| 		this.netmask = netmask; | ||||
| 	} | ||||
|  | ||||
| 	public boolean isNat() { | ||||
| 		return nat; | ||||
| 	} | ||||
|  | ||||
| 	public void setNat(boolean nat) { | ||||
| 		this.nat = nat; | ||||
| 	} | ||||
|  | ||||
| 	public String getGreRemoteInetAddr() { | ||||
| 		return greRemoteInetAddr; | ||||
| 	} | ||||
|  | ||||
| 	public void setGreRemoteInetAddr(String greRemoteInetAddr) { | ||||
| 		this.greRemoteInetAddr = greRemoteInetAddr; | ||||
| 	} | ||||
|  | ||||
| 	public String getIfUuid() { | ||||
| 		return ifUuid; | ||||
| 	} | ||||
|  | ||||
| 	public void setIfUuid(String ifUuid) { | ||||
| 		this.ifUuid = ifUuid; | ||||
| 	} | ||||
|  | ||||
| 	public String getInetAddr() { | ||||
| 		return inetAddr; | ||||
| 	} | ||||
|  | ||||
| 	public void setInetAddr(String inetAddr) { | ||||
| 		this.inetAddr = inetAddr; | ||||
| 	} | ||||
|  | ||||
| 	public String getHwAddr() { | ||||
| 		return hwAddr; | ||||
| 	} | ||||
|  | ||||
| 	public void setHwAddr(String hwAddr) { | ||||
| 		this.hwAddr = hwAddr; | ||||
| 	} | ||||
|  | ||||
| 	public int getMtw() { | ||||
| 		return mtw; | ||||
| 	} | ||||
|  | ||||
| 	public void setMtw(int mtw) { | ||||
| 		this.mtw = mtw; | ||||
| 	} | ||||
|  | ||||
| 	public boolean isNetwork() { | ||||
| 		return network; | ||||
| 	} | ||||
|  | ||||
| 	public void setNetwork(boolean network) { | ||||
| 		this.network = network; | ||||
| 	} | ||||
|  | ||||
| 	public Map<String, String> getDns() { | ||||
| 		return dns; | ||||
| 	} | ||||
|  | ||||
| 	public void setDns(Map<String, String> dns) { | ||||
| 		this.dns = dns; | ||||
| 	} | ||||
|  | ||||
| 	public String getParentIfName() { | ||||
| 		return parentIfName; | ||||
| 	} | ||||
|  | ||||
| 	public void setParentIfName(String parentIfName) { | ||||
| 		this.parentIfName = parentIfName; | ||||
| 	} | ||||
|  | ||||
| 	public String getGreIfName() { | ||||
| 		return greIfName; | ||||
| 	} | ||||
|  | ||||
| 	public void setGreIfName(String greIfName) { | ||||
| 		this.greIfName = greIfName; | ||||
| 	} | ||||
|  | ||||
| 	public String getBroadcast() { | ||||
| 		return broadcast; | ||||
| 	} | ||||
|  | ||||
| 	public void setBroadcast(String broadcast) { | ||||
| 		this.broadcast = broadcast; | ||||
| 	} | ||||
|  | ||||
| 	public Map<String, String> getDhcpc() { | ||||
| 		return dhcpc; | ||||
| 	} | ||||
|  | ||||
| 	public void setDhcpc(Map<String, String> dhcpc) { | ||||
| 		this.dhcpc = dhcpc; | ||||
| 	} | ||||
|  | ||||
| 	public String getGateway() { | ||||
| 		return gateway; | ||||
| 	} | ||||
|  | ||||
| 	public void setGateway(String gateway) { | ||||
| 		this.gateway = gateway; | ||||
| 	} | ||||
|  | ||||
| 	public String getIpAssignScheme() { | ||||
| 		return ipAssignScheme; | ||||
| 	} | ||||
|  | ||||
| 	public void setIpAssignScheme(String ipAssignScheme) { | ||||
| 		this.ipAssignScheme = ipAssignScheme; | ||||
| 	} | ||||
|  | ||||
| 	public String getInetConfig() { | ||||
| 		return inetConfig; | ||||
| 	} | ||||
|  | ||||
| 	public void setInetConfig(String inetConfig) { | ||||
| 		this.inetConfig = inetConfig; | ||||
| 	} | ||||
|  | ||||
| 	public static long getSerialversionuid() { | ||||
| 		return serialVersionUID; | ||||
| 	} | ||||
|  | ||||
| 	public Uuid get_uuid() { | ||||
| 		return _uuid; | ||||
| 	} | ||||
|  | ||||
| 	public void set_uuid(Uuid _uuid) { | ||||
| 		this._uuid = _uuid; | ||||
| 	} | ||||
|  | ||||
| 	public Uuid getVersion() { | ||||
| 		return version; | ||||
| 	} | ||||
|  | ||||
| 	public void setVersion(Uuid version) { | ||||
| 		this.version = version; | ||||
| 	} | ||||
|  | ||||
| 	public void setGreLocalInetAddr(String greLocalInetAddr) { | ||||
| 		this.greLocalInetAddr = greLocalInetAddr; | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	public String getGreLocalInetAddr() { | ||||
| 		return greLocalInetAddr; | ||||
| 	} | ||||
|  | ||||
| 	public void setGreRemoteMacAddr(String greRemoteMacAddr) { | ||||
| 		this.greRemoteMacAddr = greRemoteMacAddr; | ||||
| 	} | ||||
|  | ||||
| 	public String getGreRemoteMacAddr(){ | ||||
| 		return this.greRemoteMacAddr; | ||||
| 	} | ||||
| 	@Override | ||||
| 	public int hashCode() { | ||||
| 		final int prime = 31; | ||||
| 		int result = 1; | ||||
| 		result = prime * result + ((_uuid == null) ? 0 : _uuid.hashCode()); | ||||
| 		result = prime * result + ((broadcast == null) ? 0 : broadcast.hashCode()); | ||||
| 		result = prime * result + ((dhcpc == null) ? 0 : dhcpc.hashCode()); | ||||
| 		result = prime * result + ((dhcpd == null) ? 0 : dhcpd.hashCode()); | ||||
| 		result = prime * result + ((dns == null) ? 0 : dns.hashCode()); | ||||
| 		result = prime * result + (enabled ? 1231 : 1237); | ||||
| 		result = prime * result + ((gateway == null) ? 0 : gateway.hashCode()); | ||||
| 		result = prime * result + ((greIfName == null) ? 0 : greIfName.hashCode()); | ||||
| 		result = prime * result + ((greLocalInetAddr == null) ? 0 : greLocalInetAddr.hashCode()); | ||||
| 		result = prime * result + ((greRemoteInetAddr == null) ? 0 : greRemoteInetAddr.hashCode()); | ||||
| 		result = prime * result + ((hwAddr == null) ? 0 : hwAddr.hashCode()); | ||||
| 		result = prime * result + ((ifName == null) ? 0 : ifName.hashCode()); | ||||
| 		result = prime * result + ((ifType == null) ? 0 : ifType.hashCode()); | ||||
| 		result = prime * result + ((ifUuid == null) ? 0 : ifUuid.hashCode()); | ||||
| 		result = prime * result + ((inetAddr == null) ? 0 : inetAddr.hashCode()); | ||||
| 		result = prime * result + ((inetConfig == null) ? 0 : inetConfig.hashCode()); | ||||
| 		result = prime * result + ((ipAssignScheme == null) ? 0 : ipAssignScheme.hashCode()); | ||||
| 		result = prime * result + mtw; | ||||
| 		result = prime * result + (nat ? 1231 : 1237); | ||||
| 		result = prime * result + ((netmask == null) ? 0 : netmask.hashCode()); | ||||
| 		result = prime * result + (network ? 1231 : 1237); | ||||
| 		result = prime * result + ((parentIfName == null) ? 0 : parentIfName.hashCode()); | ||||
| 		result = prime * result + ((greRemoteMacAddr == null) ? 0 : greRemoteMacAddr.hashCode()); | ||||
| 		result = prime * result + ((softwdsMacAddr == null) ? 0 : softwdsMacAddr.hashCode()); | ||||
| 		result = prime * result + (sofwdsWrap ? 1231 : 1237); | ||||
| 		result = prime * result + ((unpnpMode == null) ? 0 : unpnpMode.hashCode()); | ||||
| 		result = prime * result + ((version == null) ? 0 : version.hashCode()); | ||||
| 		result = prime * result + vlanId; | ||||
| 		return result; | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| 	public boolean equals(Object obj) { | ||||
| 		if (this == obj) | ||||
| 			return true; | ||||
| 		if (obj == null) | ||||
| 			return false; | ||||
| 		if (getClass() != obj.getClass()) | ||||
| 			return false; | ||||
| 		OpensyncAPInetState other = (OpensyncAPInetState) obj; | ||||
| 		if (_uuid == null) { | ||||
| 			if (other._uuid != null) | ||||
| 				return false; | ||||
| 		} else if (!_uuid.equals(other._uuid)) | ||||
| 			return false; | ||||
| 		if (broadcast == null) { | ||||
| 			if (other.broadcast != null) | ||||
| 				return false; | ||||
| 		} else if (!broadcast.equals(other.broadcast)) | ||||
| 			return false; | ||||
| 		if (dhcpc == null) { | ||||
| 			if (other.dhcpc != null) | ||||
| 				return false; | ||||
| 		} else if (!dhcpc.equals(other.dhcpc)) | ||||
| 			return false; | ||||
| 		if (dhcpd == null) { | ||||
| 			if (other.dhcpd != null) | ||||
| 				return false; | ||||
| 		} else if (!dhcpd.equals(other.dhcpd)) | ||||
| 			return false; | ||||
| 		if (dns == null) { | ||||
| 			if (other.dns != null) | ||||
| 				return false; | ||||
| 		} else if (!dns.equals(other.dns)) | ||||
| 			return false; | ||||
| 		if (enabled != other.enabled) | ||||
| 			return false; | ||||
| 		if (gateway == null) { | ||||
| 			if (other.gateway != null) | ||||
| 				return false; | ||||
| 		} else if (!gateway.equals(other.gateway)) | ||||
| 			return false; | ||||
| 		if (greIfName == null) { | ||||
| 			if (other.greIfName != null) | ||||
| 				return false; | ||||
| 		} else if (!greIfName.equals(other.greIfName)) | ||||
| 			return false; | ||||
| 		if (greLocalInetAddr == null) { | ||||
| 			if (other.greLocalInetAddr != null) | ||||
| 				return false; | ||||
| 		} else if (!greLocalInetAddr.equals(other.greLocalInetAddr)) | ||||
| 			return false; | ||||
| 		if (greRemoteInetAddr == null) { | ||||
| 			if (other.greRemoteInetAddr != null) | ||||
| 				return false; | ||||
| 		} else if (!greRemoteInetAddr.equals(other.greRemoteInetAddr)) | ||||
| 			return false; | ||||
| 		if (hwAddr == null) { | ||||
| 			if (other.hwAddr != null) | ||||
| 				return false; | ||||
| 		} else if (!hwAddr.equals(other.hwAddr)) | ||||
| 			return false; | ||||
| 		if (ifName == null) { | ||||
| 			if (other.ifName != null) | ||||
| 				return false; | ||||
| 		} else if (!ifName.equals(other.ifName)) | ||||
| 			return false; | ||||
| 		if (ifType == null) { | ||||
| 			if (other.ifType != null) | ||||
| 				return false; | ||||
| 		} else if (!ifType.equals(other.ifType)) | ||||
| 			return false; | ||||
| 		if (ifUuid == null) { | ||||
| 			if (other.ifUuid != null) | ||||
| 				return false; | ||||
| 		} else if (!ifUuid.equals(other.ifUuid)) | ||||
| 			return false; | ||||
| 		if (inetAddr == null) { | ||||
| 			if (other.inetAddr != null) | ||||
| 				return false; | ||||
| 		} else if (!inetAddr.equals(other.inetAddr)) | ||||
| 			return false; | ||||
| 		if (inetConfig == null) { | ||||
| 			if (other.inetConfig != null) | ||||
| 				return false; | ||||
| 		} else if (!inetConfig.equals(other.inetConfig)) | ||||
| 			return false; | ||||
| 		if (ipAssignScheme == null) { | ||||
| 			if (other.ipAssignScheme != null) | ||||
| 				return false; | ||||
| 		} else if (!ipAssignScheme.equals(other.ipAssignScheme)) | ||||
| 			return false; | ||||
| 		if (mtw != other.mtw) | ||||
| 			return false; | ||||
| 		if (nat != other.nat) | ||||
| 			return false; | ||||
| 		if (netmask == null) { | ||||
| 			if (other.netmask != null) | ||||
| 				return false; | ||||
| 		} else if (!netmask.equals(other.netmask)) | ||||
| 			return false; | ||||
| 		if (network != other.network) | ||||
| 			return false; | ||||
| 		if (parentIfName == null) { | ||||
| 			if (other.parentIfName != null) | ||||
| 				return false; | ||||
| 		} else if (!parentIfName.equals(other.parentIfName)) | ||||
| 			return false; | ||||
| 		if (greRemoteMacAddr == null) { | ||||
| 			if (other.greRemoteMacAddr != null) | ||||
| 				return false; | ||||
| 		} else if (!greRemoteMacAddr.equals(other.greRemoteMacAddr)) | ||||
| 			return false; | ||||
| 		if (softwdsMacAddr == null) { | ||||
| 			if (other.softwdsMacAddr != null) | ||||
| 				return false; | ||||
| 		} else if (!softwdsMacAddr.equals(other.softwdsMacAddr)) | ||||
| 			return false; | ||||
| 		if (sofwdsWrap != other.sofwdsWrap) | ||||
| 			return false; | ||||
| 		if (unpnpMode == null) { | ||||
| 			if (other.unpnpMode != null) | ||||
| 				return false; | ||||
| 		} else if (!unpnpMode.equals(other.unpnpMode)) | ||||
| 			return false; | ||||
| 		if (version == null) { | ||||
| 			if (other.version != null) | ||||
| 				return false; | ||||
| 		} else if (!version.equals(other.version)) | ||||
| 			return false; | ||||
| 		if (vlanId != other.vlanId) | ||||
| 			return false; | ||||
| 		return true; | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| 	public String toString() { | ||||
| 		return "OpensyncAPInetState [ifName=" + ifName + ", dhcpd=" + dhcpd + ", unpnpMode=" + unpnpMode + ", ifType=" | ||||
| 				+ ifType + ", softwdsMacAddr=" + softwdsMacAddr + ", enabled=" + enabled + ", sofwdsWrap=" + sofwdsWrap | ||||
| 				+ ", vlanId=" + vlanId + ", netmask=" + netmask + ", nat=" + nat + ", greRemoteInetAddr=" | ||||
| 				+ greRemoteInetAddr + ", ifUuid=" + ifUuid + ", inetAddr=" + inetAddr + ", hwAddr=" + hwAddr + ", mtw=" | ||||
| 				+ mtw + ", network=" + network + ", dns=" + dns + ", parentIfName=" + parentIfName + ", greIfName=" | ||||
| 				+ greIfName + ", broadcast=" + broadcast + ", dhcpc=" + dhcpc + ", gateway=" + gateway | ||||
| 				+ ", ipAssignScheme=" + ipAssignScheme + ", inetConfig=" + inetConfig + ", _uuid=" + _uuid | ||||
| 				+ ", version=" + version + ", greLocalInetAddr=" + greLocalInetAddr + ", greRemoteMacAddr=" | ||||
| 				+ greRemoteMacAddr + "]"; | ||||
| 	} | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -12,7 +12,7 @@ | ||||
|   <dependencies> | ||||
|   	<dependency> | ||||
|   		<groupId>com.telecominfraproject.wlan</groupId> | ||||
|   		<artifactId>opensync-ext-interface</artifactId> | ||||
|   		<artifactId>opensync-gateway</artifactId> | ||||
|   		<version>${tip-wlan-cloud.release.version}</version> | ||||
|   	</dependency> | ||||
|   </dependencies> | ||||
|   | ||||
| @@ -38,37 +38,28 @@ | ||||
|         "channelNumber": 6, | ||||
|         "manualChannelNumber": 6, | ||||
|         "backupChannelNumber": 11, | ||||
|         "autoChannelSelection": false, | ||||
|         "channelBandwidth": "is20MHz", | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "bestApEnabled": null, | ||||
|         "neighbouringListApConfig": { | ||||
|           "model_type": "NeighbouringAPListConfiguration", | ||||
|           "minSignal": -85, | ||||
|           "maxAps": 25 | ||||
|         }, | ||||
|         "minAutoCellSize": -80, | ||||
|         "perimeterDetectionEnabled": true, | ||||
|         "bestAPSteerType": "both", | ||||
|         "deauthAttackDetection": null, | ||||
| @@ -81,37 +72,28 @@ | ||||
|         "channelNumber": 149, | ||||
|         "manualChannelNumber": 149, | ||||
|         "backupChannelNumber": 154, | ||||
|         "autoChannelSelection": false, | ||||
|         "channelBandwidth": "is80MHz", | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "bestApEnabled": null, | ||||
|         "neighbouringListApConfig": { | ||||
|           "model_type": "NeighbouringAPListConfiguration", | ||||
|           "minSignal": -85, | ||||
|           "maxAps": 25 | ||||
|         }, | ||||
|         "minAutoCellSize": -80, | ||||
|         "perimeterDetectionEnabled": true, | ||||
|         "bestAPSteerType": "both", | ||||
|         "deauthAttackDetection": null, | ||||
| @@ -124,37 +106,28 @@ | ||||
|         "channelNumber": 36, | ||||
|         "manualChannelNumber": 36, | ||||
|         "backupChannelNumber": 44, | ||||
|         "autoChannelSelection": false, | ||||
|         "channelBandwidth": "is80MHz", | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "bestApEnabled": null, | ||||
|         "neighbouringListApConfig": { | ||||
|           "model_type": "NeighbouringAPListConfiguration", | ||||
|           "minSignal": -85, | ||||
|           "maxAps": 25 | ||||
|         }, | ||||
|         "minAutoCellSize": -80, | ||||
|         "perimeterDetectionEnabled": true, | ||||
|         "bestAPSteerType": "both", | ||||
|         "deauthAttackDetection": null, | ||||
| @@ -168,39 +141,24 @@ | ||||
|         "radioType": "is2dot4GHz", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "rtsCtsThreshold": 65535, | ||||
|         "autoChannelSelection": "disabled", | ||||
|         "radioMode": "modeN", | ||||
|         "mimoMode": "twoByTwo", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "maxNumClients": 100, | ||||
|         "stationIsolation": "disabled", | ||||
|         "multicastRate": "auto", | ||||
|         "managementRate": "auto", | ||||
|         "activeScanSettings": { | ||||
|           "model_type": "ActiveScanSettings", | ||||
|           "enabled": true, | ||||
|           "scanFrequencySeconds": 10, | ||||
|           "scanDurationMillis": 65 | ||||
|         }, | ||||
|         "channelHopSettings": { | ||||
|           "model_type": "ChannelHopSettings", | ||||
|           "noiseFloorThresholdInDB": -75, | ||||
|           "noiseFloorThresholdTimeInSeconds": 180, | ||||
|           "nonWifiThresholdInPercentage": 50, | ||||
|           "nonWifiThresholdTimeInSeconds": 180, | ||||
|           "obssHopMode": "NON_WIFI" | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 20, | ||||
|           "minLoadFactor": 50 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "forceScanDuringVoice": "disabled", | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "beaconInterval": 100, | ||||
|         "deauthAttackDetection": null | ||||
|       }, | ||||
|       "is5GHzU": { | ||||
| @@ -208,39 +166,24 @@ | ||||
|         "radioType": "is5GHzU", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "rtsCtsThreshold": 65535, | ||||
|         "autoChannelSelection": "disabled", | ||||
|         "radioMode": "modeAC", | ||||
|         "mimoMode": "twoByTwo", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "maxNumClients": 100, | ||||
|         "stationIsolation": "disabled", | ||||
|         "multicastRate": "auto", | ||||
|         "managementRate": "auto", | ||||
|         "activeScanSettings": { | ||||
|           "model_type": "ActiveScanSettings", | ||||
|           "enabled": true, | ||||
|           "scanFrequencySeconds": 10, | ||||
|           "scanDurationMillis": 65 | ||||
|         }, | ||||
|         "channelHopSettings": { | ||||
|           "model_type": "ChannelHopSettings", | ||||
|           "noiseFloorThresholdInDB": -75, | ||||
|           "noiseFloorThresholdTimeInSeconds": 180, | ||||
|           "nonWifiThresholdInPercentage": 50, | ||||
|           "nonWifiThresholdTimeInSeconds": 180, | ||||
|           "obssHopMode": "NON_WIFI" | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "forceScanDuringVoice": "disabled", | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "beaconInterval": 100, | ||||
|         "deauthAttackDetection": null | ||||
|       }, | ||||
|       "is5GHzL": { | ||||
| @@ -248,39 +191,24 @@ | ||||
|         "radioType": "is5GHzL", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "rtsCtsThreshold": 65535, | ||||
|         "autoChannelSelection": "disabled", | ||||
|         "radioMode": "modeAC", | ||||
|         "mimoMode": "twoByTwo", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "maxNumClients": 100, | ||||
|         "stationIsolation": "disabled", | ||||
|         "multicastRate": "auto", | ||||
|         "managementRate": "auto", | ||||
|         "activeScanSettings": { | ||||
|           "model_type": "ActiveScanSettings", | ||||
|           "enabled": true, | ||||
|           "scanFrequencySeconds": 10, | ||||
|           "scanDurationMillis": 65 | ||||
|         }, | ||||
|         "channelHopSettings": { | ||||
|           "model_type": "ChannelHopSettings", | ||||
|           "noiseFloorThresholdInDB": -75, | ||||
|           "noiseFloorThresholdTimeInSeconds": 180, | ||||
|           "nonWifiThresholdInPercentage": 50, | ||||
|           "nonWifiThresholdTimeInSeconds": 180, | ||||
|           "obssHopMode": "NON_WIFI" | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "forceScanDuringVoice": "disabled", | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "beaconInterval": 100, | ||||
|         "deauthAttackDetection": null | ||||
|       } | ||||
|     } | ||||
|   | ||||
| @@ -10,55 +10,48 @@ | ||||
|     "countryCode" : "ca", | ||||
|     "maintenanceWindow" : null, | ||||
|     "rrmEnabled" : true, | ||||
|     "dailyRebalancingDetails" : { | ||||
|     "dailyActivityDetails" : { | ||||
|       "SUNDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "MONDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "TUESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "WEDNESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "THURSDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "FRIDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "SATURDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   | ||||
| @@ -1,50 +1,55 @@ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 17, | ||||
|     "customerId": 2, | ||||
|     "profileType": "equipment_ap", | ||||
|     "name": "ApProfile-3-radios", | ||||
|     "details": { | ||||
|         "model_type": "ApNetworkConfiguration", | ||||
|         "networkConfigVersion": "AP-1", | ||||
|         "equipmentType": "AP", | ||||
|         "vlanNative": true, | ||||
|         "vlan": 0, | ||||
|         "ntpServer": { | ||||
|             "model_type": "AutoOrManualString", | ||||
|             "auto": true, | ||||
|             "value": "pool.ntp.org" | ||||
|         }, | ||||
|         "syslogRelay": null, | ||||
|         "rtlsSettings": null, | ||||
|         "syntheticClientEnabled": true, | ||||
|         "ledControlEnabled": true, | ||||
|         "equipmentDiscovery": false, | ||||
|         "radioMap": { | ||||
|             "is2dot4GHz": { | ||||
|                 "model_type": "RadioProfileConfiguration", | ||||
|                 "bestApEnabled": true, | ||||
|                 "bestAPSteerType": "both" | ||||
|             }, | ||||
|             "is5GHzU": { | ||||
|                 "model_type": "RadioProfileConfiguration", | ||||
|                 "bestApEnabled": true, | ||||
|                 "bestAPSteerType": "both" | ||||
|             }, | ||||
|             "is5GHzL": { | ||||
|                 "model_type": "RadioProfileConfiguration", | ||||
|                 "bestApEnabled": true, | ||||
|                 "bestAPSteerType": "both" | ||||
|             } | ||||
|         }, | ||||
|         "profileType": "equipment_ap" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182806348, | ||||
|     "lastModifiedTimestamp": 1602182806348, | ||||
|     "childProfileIds": [ | ||||
|         2, | ||||
|         5, | ||||
|         11, | ||||
|         13 | ||||
|     ] | ||||
| 	"model_type": "Profile", | ||||
| 	"id": 23, | ||||
| 	"customerId": 2, | ||||
| 	"profileType": "equipment_ap", | ||||
| 	"name": "ApProfile-3-radios-passpoint", | ||||
| 	"details": { | ||||
| 		"model_type": "ApNetworkConfiguration", | ||||
| 		"networkConfigVersion": "AP-1", | ||||
| 		"equipmentType": "AP", | ||||
| 		"vlanNative": true, | ||||
| 		"vlan": 0, | ||||
| 		"ntpServer": { | ||||
| 			"model_type": "AutoOrManualString", | ||||
| 			"auto": true, | ||||
| 			"value": "pool.ntp.org" | ||||
| 		}, | ||||
| 		"syslogRelay": null, | ||||
| 		"rtlsSettings": null, | ||||
| 		"syntheticClientEnabled": true, | ||||
| 		"ledControlEnabled": true, | ||||
| 		"equipmentDiscovery": false, | ||||
| 		"greTunnelName": null, | ||||
| 		"greParentIfName": null, | ||||
| 		"greLocalInetAddr": null, | ||||
| 		"greRemoteInetAddr": null, | ||||
| 		"greRemoteMacAddr": null, | ||||
| 		"radioMap": { | ||||
| 			"is2dot4GHz": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzU": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzL": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			} | ||||
| 		}, | ||||
| 		"profileType": "equipment_ap" | ||||
| 	}, | ||||
| 	"createdTimestamp": 1605711197140, | ||||
| 	"lastModifiedTimestamp": 1605711197140, | ||||
| 	"childProfileIds": [ | ||||
| 		16, | ||||
| 		21, | ||||
| 		22, | ||||
| 		15 | ||||
| 	] | ||||
| } | ||||
| @@ -1,72 +1,72 @@ | ||||
| [ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 10, | ||||
|     "customerId": 2, | ||||
|     "profileType": "hotspot_2pt0", | ||||
|     "name": "TipWlan-Hotspot20-Config", | ||||
|     "details": { | ||||
|         "model_type": "Hotspot2Profile", | ||||
|         "enableInterworkingAndHs20": true, | ||||
|         "hessid": null, | ||||
|         "accessNetworkType": "free_public_network", | ||||
|         "networkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||
|         "additionalStepsRequiredForAccess": 0, | ||||
|         "deauthRequestTimeout": 0, | ||||
|         "operatingClass": 0, | ||||
|         "termsAndConditionsFile": { | ||||
|             "model_type": "ManagedFileInfo", | ||||
|             "md5checksum": null, | ||||
|             "lastModifiedTimestamp": null, | ||||
|             "apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | ||||
|             "fileCategory": "ExternalPolicyConfiguration", | ||||
|             "fileType": "TEXT", | ||||
|             "altSlot": false | ||||
|         "model_type": "Profile", | ||||
|         "id": 24, | ||||
|         "customerId": 2, | ||||
|         "profileType": "passpoint", | ||||
|         "name": "TipWlan-Hotspot20-Config", | ||||
|         "details": { | ||||
|             "model_type": "PasspointProfile", | ||||
|             "enableInterworkingAndHs20": true, | ||||
|             "hessid": null, | ||||
|             "additionalStepsRequiredForAccess": 0, | ||||
|             "deauthRequestTimeout": 0, | ||||
|             "operatingClass": 0, | ||||
|             "termsAndConditionsFile": { | ||||
|                 "model_type": "ManagedFileInfo", | ||||
|                 "md5checksum": null, | ||||
|                 "lastModifiedTimestamp": null, | ||||
|                 "apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | ||||
|                 "fileCategory": "ExternalPolicyConfiguration", | ||||
|                 "fileType": "TEXT", | ||||
|                 "altSlot": false | ||||
|             }, | ||||
|             "whitelistDomain": null, | ||||
|             "emergencyServicesReachable": true, | ||||
|             "unauthenticatedEmergencyServiceAccessible": false, | ||||
|             "internetConnectivity": true, | ||||
|             "connectionCapabilitySet": [ | ||||
|                 { | ||||
|                     "model_type": "PasspointConnectionCapability", | ||||
|                     "connectionCapabilitiesPortNumber": 8888, | ||||
|                     "connectionCapabilitiesIpProtocol": "TCP", | ||||
|                     "connectionCapabilitiesStatus": "open" | ||||
|                 } | ||||
|             ], | ||||
|             "ipAddressTypeAvailability": "public_IPv4_address_available", | ||||
|             "qosMapSetConfiguration": null, | ||||
|             "apGeospatialLocation": null, | ||||
|             "apCivicLocation": null, | ||||
|             "apPublicLocationIdUri": null, | ||||
|             "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | ||||
|             "anqpDomainId": 1234, | ||||
|             "disableDownstreamGroupAddressedForwarding": false, | ||||
|             "enable2pt4GHz": true, | ||||
|             "enable5GHz": true, | ||||
|             "associatedAccessSsidNames": [ | ||||
|                 "TipWlan-cloud-hotspot-access" | ||||
|             ], | ||||
|             "osuSsidName": "TipWlan-cloud-hotspot-osu", | ||||
|             "operatorProfileName": "TipWlan-Hotspot20-Operator", | ||||
|             "venueProfileName": "TipWlan-Hotspot20-Venue", | ||||
|             "idProviderProfileNames": [ | ||||
|                 "TipWlan-Hotspot20-OSU-Provider-2", | ||||
|                 "TipWlan-Hotspot20-OSU-Provider" | ||||
|             ], | ||||
|             "accessNetworkType": "free_public_network", | ||||
|             "networkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||
|             "associatedSsids": [ | ||||
|                 "TipWlan-cloud-hotspot-access" | ||||
|             ], | ||||
|             "profileType": "passpoint" | ||||
|         }, | ||||
|         "whitelistDomain": null, | ||||
|         "emergencyServicesReachable": true, | ||||
|         "unauthenticatedEmergencyServiceAccessible": false, | ||||
|         "internetConnectivity": true, | ||||
|         "connectionCapabilitySet": [ | ||||
|             { | ||||
|                 "model_type": "ConnectionCapability", | ||||
|                 "connectionCapabilitiesPortNumber": 8888, | ||||
|                 "connectionCapabilitiesIpProtocol": "TCP", | ||||
|                 "connectionCapabilitiesStatus": "open" | ||||
|             } | ||||
|         ], | ||||
|         "ipAddressTypeAvailability": "public_IPv4_address_available", | ||||
|         "qosMapSetConfiguration": null, | ||||
|         "apGeospatialLocation": null, | ||||
|         "apCivicLocation": null, | ||||
|         "apPublicLocationIdUri": null, | ||||
|         "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | ||||
|         "anqpDomainId": 1234, | ||||
|         "disableDownstreamGroupAddressedForwarding": false, | ||||
|         "enable2pt4GHz": true, | ||||
|         "enable5GHz": true, | ||||
|         "associatedAccessSsidNames": [ | ||||
|             "TipWlan-cloud-hotspot-access" | ||||
|         ], | ||||
|         "osuSsidName": "TipWlan-cloud-3-radios", | ||||
|         "operatorProfileName": "TipWlan-Hotspot20-Operator", | ||||
|         "venueProfileName": "TipWlan-Hotspot20-Venue", | ||||
|         "idProviderProfileNames": [ | ||||
|             "TipWlan-Hotspot20-OSU-Provider-2", | ||||
|             "TipWlan-Hotspot20-OSU-Provider" | ||||
|         ], | ||||
|         "profileType": "hotspot_2pt0", | ||||
|         "associatedSsids": [ | ||||
|             "TipWlan-cloud-hotspot-access" | ||||
|         "createdTimestamp": 1605711223339, | ||||
|         "lastModifiedTimestamp": 1605711223339, | ||||
|         "childProfileIds": [ | ||||
|             17, | ||||
|             18, | ||||
|             19, | ||||
|             20 | ||||
|         ] | ||||
|     }, | ||||
|     "createdTimestamp": 1602182806040, | ||||
|     "lastModifiedTimestamp": 1602182806040, | ||||
|     "childProfileIds": [ | ||||
|         6, | ||||
|         7, | ||||
|         8, | ||||
|         9 | ||||
|     ] | ||||
| } | ||||
|     } | ||||
| ] | ||||
| @@ -1,256 +1,270 @@ | ||||
| [ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 8, | ||||
|     "customerId": 2, | ||||
|     "profileType": "id_provider", | ||||
|     "name": "TipWlan-Hotspot20-OSU-Provider", | ||||
|     "details": { | ||||
|         "model_type": "Hotspot20IdProviderProfile", | ||||
|         "domainName": "rogers.com", | ||||
|         "mccMncList": [ | ||||
|             { | ||||
|                 "model_type": "MccMnc", | ||||
|                 "mcc": 302, | ||||
|                 "mnc": 720, | ||||
|                 "iso": "ca", | ||||
|                 "country": "Canada", | ||||
|                 "countryCode": 1, | ||||
|                 "network": "Rogers AT&T Wireless", | ||||
|                 "mccMncPairing": "302,720" | ||||
|             } | ||||
|         ], | ||||
|         "naiRealmList": [ | ||||
|             { | ||||
|                 "model_type": "NaiRealmInformation", | ||||
|                 "naiRealms": [ | ||||
|                     "rogers.com" | ||||
|                 ], | ||||
|                 "encoding": 0, | ||||
|                 "eapMethods": [ | ||||
|                     "EAP-TTLS with username/password", | ||||
|                     "EAP-TLS with certificate" | ||||
|                 ], | ||||
|                 "eapMap": { | ||||
|                     "EAP-TTLS with username/password": [ | ||||
|                         "Credential Type:username/password", | ||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
|                     ], | ||||
|                     "EAP-TLS with certificate": [ | ||||
|                         "Credential Type:Certificate" | ||||
|                     ] | ||||
|                 } | ||||
|             } | ||||
|         ], | ||||
|         "osuIconList": [ | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_CA", | ||||
|                 "iconName": "icon32eng", | ||||
|                 "filePath": "/tmp/icon32eng.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "fra", | ||||
|                 "iconLocale": "fr_CA", | ||||
|                 "iconName": "icon32fra", | ||||
|                 "filePath": "/tmp/icon32fra.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | ||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_US", | ||||
|                 "iconName": "icon32usa", | ||||
|                 "filePath": "/tmp/icon32usa.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
|             } | ||||
|         ], | ||||
|         "osuServerUri": "https://example.com/osu/rogers/", | ||||
|         "osuFriendlyName": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example provider rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example provider rogers" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemple de fournisseur rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemple de fournisseur rogers" | ||||
|             } | ||||
|         ], | ||||
|         "osuNaiStandalone": "anonymous@rogers.com", | ||||
|         "osuNaiShared": "anonymous@rogers.com", | ||||
|         "osuMethodList": [ | ||||
|             1, | ||||
|             0 | ||||
|         ], | ||||
|         "osuServiceDescription": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example services rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example services rogers" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemples de services rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemples de services rogers" | ||||
|             } | ||||
|         ], | ||||
|         "profileType": "id_provider" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182805654, | ||||
|     "lastModifiedTimestamp": 1602182805654, | ||||
|     "childProfileIds": [] | ||||
| }, | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 9, | ||||
|     "customerId": 2, | ||||
|     "profileType": "id_provider", | ||||
|     "name": "TipWlan-Hotspot20-OSU-Provider-2", | ||||
|     "details": { | ||||
|         "model_type": "Hotspot20IdProviderProfile", | ||||
|         "domainName": "telus.com", | ||||
|         "mccMncList": [ | ||||
|             { | ||||
|                 "model_type": "MccMnc", | ||||
|                 "mcc": 302, | ||||
|                 "mnc": 220, | ||||
|                 "iso": "ca", | ||||
|                 "country": "Canada", | ||||
|                 "countryCode": 1, | ||||
|                 "network": "Telus Mobility", | ||||
|                 "mccMncPairing": "302,220" | ||||
|             } | ||||
|         ], | ||||
|         "naiRealmList": [ | ||||
|             { | ||||
|                 "model_type": "NaiRealmInformation", | ||||
|                 "naiRealms": [ | ||||
|                     "telus.com" | ||||
|                 ], | ||||
|                 "encoding": 0, | ||||
|                 "eapMethods": [ | ||||
|                     "EAP-TTLS with username/password", | ||||
|                     "EAP-TLS with certificate" | ||||
|                 ], | ||||
|                 "eapMap": { | ||||
|                     "EAP-TTLS with username/password": [ | ||||
|                         "Credential Type:username/password", | ||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
|                     ], | ||||
|                     "EAP-TLS with certificate": [ | ||||
|                         "Credential Type:Certificate" | ||||
|                     ] | ||||
|                 } | ||||
|             } | ||||
|         ], | ||||
|         "osuIconList": [ | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_CA", | ||||
|                 "iconName": "icon32eng", | ||||
|                 "filePath": "/tmp/icon32eng.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "fra", | ||||
|                 "iconLocale": "fr_CA", | ||||
|                 "iconName": "icon32fra", | ||||
|                 "filePath": "/tmp/icon32fra.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | ||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_US", | ||||
|                 "iconName": "icon32usa", | ||||
|                 "filePath": "/tmp/icon32usa.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
|             } | ||||
|         ], | ||||
|         "osuServerUri": "https://example.com/osu/telus/", | ||||
|         "osuFriendlyName": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example provider telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example provider telus" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemple de fournisseur telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemple de fournisseur telus" | ||||
|             } | ||||
|         ], | ||||
|         "osuNaiStandalone": "anonymous@telus.com", | ||||
|         "osuNaiShared": "anonymous@telus.com", | ||||
|         "osuMethodList": [ | ||||
|             1, | ||||
|             0 | ||||
|         ], | ||||
|         "osuServiceDescription": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example services telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example services telus" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemples de services telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemples de services telus" | ||||
|             } | ||||
|         ], | ||||
|         "profileType": "id_provider" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182805660, | ||||
|     "lastModifiedTimestamp": 1602182805660, | ||||
|     "childProfileIds": [] | ||||
| } | ||||
|     ] | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 19, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_osu_id_provider", | ||||
| 		"name": "TipWlan-Hotspot20-OSU-Provider", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointOsuProviderProfile", | ||||
| 			"domainName": "rogers.com", | ||||
| 			"mccMncList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointMccMnc", | ||||
| 					"mcc": 302, | ||||
| 					"mnc": 720, | ||||
| 					"iso": "ca", | ||||
| 					"country": "Canada", | ||||
| 					"countryCode": 1, | ||||
| 					"network": "Rogers AT&T Wireless", | ||||
| 					"mccMncPairing": "302,720" | ||||
| 				} | ||||
| 			], | ||||
| 			"naiRealmList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointNaiRealmInformation", | ||||
| 					"naiRealms": [ | ||||
| 						"rogers.com" | ||||
| 					], | ||||
| 					"encoding": 0, | ||||
| 					"eapMethods": [ | ||||
| 						"EAP-TTLS with username/password", | ||||
| 						"EAP-TLS with certificate" | ||||
| 					], | ||||
| 					"eapMap": { | ||||
| 						"EAP-TTLS with username/password": [ | ||||
| 							"Credential Type:username/password", | ||||
| 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
| 						], | ||||
| 						"EAP-TLS with certificate": [ | ||||
| 							"Credential Type:Certificate" | ||||
| 						] | ||||
| 					} | ||||
| 				} | ||||
| 			], | ||||
| 			"osuIconList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_CA", | ||||
| 					"iconName": "icon32eng", | ||||
| 					"filePath": "/tmp/icon32eng.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "fra", | ||||
| 					"iconLocale": "fr_CA", | ||||
| 					"iconName": "icon32fra", | ||||
| 					"filePath": "/tmp/icon32fra.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||
| 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_US", | ||||
| 					"iconName": "icon32usa", | ||||
| 					"filePath": "/tmp/icon32usa.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuServerUri": "https://example.com/osu/rogers", | ||||
| 			"osuFriendlyName": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example provider rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example provider rogers" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemple de fournisseur rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemple de fournisseur rogers" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuNaiStandalone": "anonymous@rogers.com", | ||||
| 			"osuNaiShared": "anonymous@rogers.com", | ||||
| 			"osuMethodList": [ | ||||
| 				1, | ||||
| 				0 | ||||
| 			], | ||||
| 			"osuServiceDescription": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example services rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example services rogers" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemples de services rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemples de services rogers" | ||||
| 				} | ||||
| 			], | ||||
| 			"roamingOi": [ | ||||
| 				1, | ||||
| 				2, | ||||
| 				3, | ||||
| 				4 | ||||
| 			], | ||||
| 			"profileType": "passpoint_osu_id_provider" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711165325, | ||||
| 		"lastModifiedTimestamp": 1605711165325, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	}, | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 20, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_osu_id_provider", | ||||
| 		"name": "TipWlan-Hotspot20-OSU-Provider-2", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointOsuProviderProfile", | ||||
| 			"domainName": "telus.com", | ||||
| 			"mccMncList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointMccMnc", | ||||
| 					"mcc": 302, | ||||
| 					"mnc": 220, | ||||
| 					"iso": "ca", | ||||
| 					"country": "Canada", | ||||
| 					"countryCode": 1, | ||||
| 					"network": "Telus Mobility", | ||||
| 					"mccMncPairing": "302,220" | ||||
| 				} | ||||
| 			], | ||||
| 			"naiRealmList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointNaiRealmInformation", | ||||
| 					"naiRealms": [ | ||||
| 						"telus.com" | ||||
| 					], | ||||
| 					"encoding": 0, | ||||
| 					"eapMethods": [ | ||||
| 						"EAP-TTLS with username/password", | ||||
| 						"EAP-TLS with certificate" | ||||
| 					], | ||||
| 					"eapMap": { | ||||
| 						"EAP-TTLS with username/password": [ | ||||
| 							"Credential Type:username/password", | ||||
| 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
| 						], | ||||
| 						"EAP-TLS with certificate": [ | ||||
| 							"Credential Type:Certificate" | ||||
| 						] | ||||
| 					} | ||||
| 				} | ||||
| 			], | ||||
| 			"osuIconList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_CA", | ||||
| 					"iconName": "icon32eng", | ||||
| 					"filePath": "/tmp/icon32eng.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "fra", | ||||
| 					"iconLocale": "fr_CA", | ||||
| 					"iconName": "icon32fra", | ||||
| 					"filePath": "/tmp/icon32fra.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||
| 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_US", | ||||
| 					"iconName": "icon32usa", | ||||
| 					"filePath": "/tmp/icon32usa.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuServerUri": "https://example.com/osu/telus", | ||||
| 			"osuFriendlyName": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example provider telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example provider telus" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemple de fournisseur telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemple de fournisseur telus" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuNaiStandalone": "anonymous@telus.com", | ||||
| 			"osuNaiShared": "anonymous@telus.com", | ||||
| 			"osuMethodList": [ | ||||
| 				1, | ||||
| 				0 | ||||
| 			], | ||||
| 			"osuServiceDescription": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example services telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example services telus" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemples de services telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemples de services telus" | ||||
| 				} | ||||
| 			], | ||||
| 			"roamingOi": [ | ||||
| 				1, | ||||
| 				2, | ||||
| 				3, | ||||
| 				4 | ||||
| 			], | ||||
| 			"profileType": "passpoint_osu_id_provider" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711165330, | ||||
| 		"lastModifiedTimestamp": 1605711165330, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
|   | ||||
| @@ -1,298 +1,299 @@ | ||||
| [ | ||||
|  { | ||||
|         "model_type": "Profile", | ||||
|         "id": 2, | ||||
|         "customerId": 2, | ||||
|         "profileType": "metrics", | ||||
|         "name": "Metrics-Profile-3-radios", | ||||
|         "details": { | ||||
|             "model_type": "ServiceMetricsCollectionConfigProfile", | ||||
|             "radioTypes": [ | ||||
|                 "is5GHzU", | ||||
|                 "is5GHzL", | ||||
|                 "is2dot4GHz" | ||||
|             ], | ||||
|             "serviceMetricDataTypes": [ | ||||
|                 "ApNode", | ||||
|                 "ApSsid", | ||||
|                 "Client", | ||||
|                 "Channel", | ||||
|                 "Neighbour" | ||||
|             ], | ||||
|             "metricConfigParameterMap": { | ||||
|                 "ApNode": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzU", | ||||
|                         "serviceMetricDataType": "ApNode" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "ApNode" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_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": "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", | ||||
|                         "serviceMetricDataType": "ApNode" | ||||
|                     } | ||||
|                 ], | ||||
|                 "ApSsid": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is2dot4GHz", | ||||
|                         "serviceMetricDataType": "ApSsid" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "ApSsid" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzU", | ||||
|                         "serviceMetricDataType": "ApSsid" | ||||
|                     } | ||||
|                 ], | ||||
|                 "Client": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is2dot4GHz", | ||||
|                         "serviceMetricDataType": "Client" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "Client" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzU", | ||||
|                         "serviceMetricDataType": "Client" | ||||
|                     } | ||||
|                 ], | ||||
|                 "Channel": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "channelSurveyType": "ON_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "Channel" | ||||
|                     }, | ||||
|                     { | ||||
|                         "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", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "Channel" | ||||
|                     }, | ||||
|                     { | ||||
|                         "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": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "channelSurveyType": "ON_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "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", | ||||
|                         "serviceMetricDataType": "Neighbour" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "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", | ||||
|                         "serviceMetricDataType": "Neighbour" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is2dot4GHz", | ||||
|                         "serviceMetricDataType": "Neighbour" | ||||
|                     } | ||||
|                 ] | ||||
|             }, | ||||
|             "profileType": "metrics" | ||||
|         }, | ||||
|         "createdTimestamp": 1602113058699, | ||||
|         "lastModifiedTimestamp": 1602113058699, | ||||
|         "childProfileIds": [] | ||||
|     } | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 22, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "service_metrics_collection_config", | ||||
| 		"name": "Metrics-Profile-Passpoint", | ||||
| 		"details": { | ||||
| 			"model_type": "ServiceMetricsCollectionConfigProfile", | ||||
| 			"radioTypes": [ | ||||
| 				"is5GHzL", | ||||
| 				"is2dot4GHz", | ||||
| 				"is5GHzU" | ||||
| 			], | ||||
| 			"serviceMetricDataTypes": [ | ||||
| 				"ApNode", | ||||
| 				"ApSsid", | ||||
| 				"Client", | ||||
| 				"Channel", | ||||
| 				"Neighbour" | ||||
| 			], | ||||
| 			"metricConfigParameterMap": { | ||||
| 				"ApNode": [ | ||||
| 					{ | ||||
| 						"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": "is5GHzU", | ||||
| 						"serviceMetricDataType": "ApNode", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"serviceMetricDataType": "ApNode", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"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" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"serviceMetricDataType": "ApNode", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					} | ||||
| 				], | ||||
| 				"ApSsid": [ | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"serviceMetricDataType": "ApSsid" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"serviceMetricDataType": "ApSsid" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"serviceMetricDataType": "ApSsid" | ||||
| 					} | ||||
| 				], | ||||
| 				"Client": [ | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"serviceMetricDataType": "Client" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"serviceMetricDataType": "Client" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"serviceMetricDataType": "Client" | ||||
| 					} | ||||
| 				], | ||||
| 				"Channel": [ | ||||
| 					{ | ||||
| 						"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": 120, | ||||
| 						"channelSurveyType": "OFF_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": "is5GHzL", | ||||
| 						"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": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"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" | ||||
| 					} | ||||
| 				], | ||||
| 				"Neighbour": [ | ||||
| 					{ | ||||
| 						"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": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"serviceMetricDataType": "Neighbour", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"channelSurveyType": "ON_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" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"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" | ||||
| 					} | ||||
| 				] | ||||
| 			}, | ||||
| 			"profileType": "service_metrics_collection_config" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711195528, | ||||
| 		"lastModifiedTimestamp": 1605711195528, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
| @@ -1,37 +1,37 @@ | ||||
| [ | ||||
| { | ||||
|         "model_type": "Profile", | ||||
|         "id": 6, | ||||
|         "customerId": 2, | ||||
|         "profileType": "operator", | ||||
|         "name": "TipWlan-Hotspot20-Operator", | ||||
|         "details": { | ||||
|             "model_type": "OperatorProfile", | ||||
|             "domainName": "telecominfraproject.atlassian.net", | ||||
|             "serverOnlyAuthenticatedL2EncryptionNetwork": false, | ||||
|             "x509CertificateLocation": "/etc/ca.pem", | ||||
|             "operatorFriendlyName": [ | ||||
|                 { | ||||
|                     "model_type": "Hotspot20Duple", | ||||
|                     "locale": "en_CA", | ||||
|                     "dupleIso3Language": "eng", | ||||
|                     "dupleName": "Default friendly operator name", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "asDuple": "eng:Default friendly operator name" | ||||
|                 }, | ||||
|                 { | ||||
|                     "model_type": "Hotspot20Duple", | ||||
|                     "locale": "fr_CA", | ||||
|                     "dupleIso3Language": "fra", | ||||
|                     "dupleName": "Nom de l'opérateur convivial par défaut", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "asDuple": "fra:Nom de l'opérateur convivial par défaut" | ||||
|                 } | ||||
|             ], | ||||
|             "profileType": "operator" | ||||
|         }, | ||||
|         "createdTimestamp": 1602113058719, | ||||
|         "lastModifiedTimestamp": 1602113058719, | ||||
|         "childProfileIds": [] | ||||
|     } | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 17, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_operator", | ||||
| 		"name": "TipWlan-Hotspot20-Operator", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointOperatorProfile", | ||||
| 			"serverOnlyAuthenticatedL2EncryptionNetwork": false, | ||||
| 			"x509CertificateLocation": "/etc/ca.pem", | ||||
| 			"operatorFriendlyName": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Default friendly passpoint_operator name", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Default friendly passpoint_operator name" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Nom de l'opérateur convivial par défaut", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Nom de l'opérateur convivial par défaut" | ||||
| 				} | ||||
| 			], | ||||
| 			"profileType": "passpoint_operator" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711164952, | ||||
| 		"lastModifiedTimestamp": 1605711164952, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
|   | ||||
| @@ -1,256 +1,205 @@ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 13, | ||||
|     "customerId": 2, | ||||
|     "profileType": "rf", | ||||
|     "name": "TipWlan-rf", | ||||
|     "details": { | ||||
|         "model_type": "RfConfiguration", | ||||
|         "rfConfigMap": { | ||||
|             "is5GHz": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is80MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 30, | ||||
|                     "minLoadFactor": 40 | ||||
|                 } | ||||
|             }, | ||||
|             "is2dot4GHz": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is20MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 20, | ||||
|                     "minLoadFactor": 50 | ||||
|                 } | ||||
|             }, | ||||
|             "is5GHzU": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is80MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 30, | ||||
|                     "minLoadFactor": 40 | ||||
|                 } | ||||
|             }, | ||||
|             "is5GHzL": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is80MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 30, | ||||
|                     "minLoadFactor": 40 | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "profileType": "rf" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182806063, | ||||
|     "lastModifiedTimestamp": 1602182806063, | ||||
|     "childProfileIds": [] | ||||
| 	"model_type": "Profile", | ||||
| 	"id": 21, | ||||
| 	"customerId": 2, | ||||
| 	"profileType": "rf", | ||||
| 	"name": "TipWlan-rf-passpoint", | ||||
| 	"details": { | ||||
| 		"model_type": "RfConfiguration", | ||||
| 		"rfConfigMap": { | ||||
| 			"is5GHz": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is5GHz", | ||||
| 				"radioMode": "modeAC", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is80MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 30, | ||||
| 					"minLoadFactor": 40 | ||||
| 				} | ||||
| 			}, | ||||
| 			"is2dot4GHz": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is2dot4GHz", | ||||
| 				"radioMode": "modeN", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is20MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 20, | ||||
| 					"minLoadFactor": 50 | ||||
| 				} | ||||
| 			}, | ||||
| 			"is5GHzU": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is5GHzU", | ||||
| 				"radioMode": "modeAC", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is80MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 30, | ||||
| 					"minLoadFactor": 40 | ||||
| 				} | ||||
| 			}, | ||||
| 			"is5GHzL": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is5GHzL", | ||||
| 				"radioMode": "modeAC", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is80MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 30, | ||||
| 					"minLoadFactor": 40 | ||||
| 				} | ||||
| 			} | ||||
| 		}, | ||||
| 		"profileType": "rf" | ||||
| 	}, | ||||
| 	"createdTimestamp": 1605711191976, | ||||
| 	"lastModifiedTimestamp": 1605711191976, | ||||
| 	"childProfileIds": [ | ||||
| 	] | ||||
| } | ||||
| @@ -1,7 +1,7 @@ | ||||
| [ | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 5, | ||||
| 		"id": 15, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "ssid", | ||||
| 		"name": "TipWlan-cloud-hotspot-access", | ||||
| @@ -9,9 +9,8 @@ | ||||
| 			"model_type": "SsidConfiguration", | ||||
| 			"ssid": "TipWlan-cloud-hotspot-access", | ||||
| 			"appliedRadios": [ | ||||
| 				"is5GHzU", | ||||
| 				"is5GHzL", | ||||
| 				"is2dot4GHz" | ||||
| 				"is5GHzU" | ||||
| 			], | ||||
| 			"ssidAdminState": "enabled", | ||||
| 			"secureMode": "wpa2PSK", | ||||
| @@ -21,6 +20,7 @@ | ||||
| 			"keyRefresh": 0, | ||||
| 			"noLocalSubnets": false, | ||||
| 			"radiusServiceName": null, | ||||
| 			"radiusAccountingServiceName": null, | ||||
| 			"captivePortalId": null, | ||||
| 			"bandwidthLimitDown": 0, | ||||
| 			"bandwidthLimitUp": 0, | ||||
| @@ -59,25 +59,23 @@ | ||||
| 			"forwardMode": null, | ||||
| 			"profileType": "ssid" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1602113058718, | ||||
| 		"lastModifiedTimestamp": 1602113059547, | ||||
| 		"createdTimestamp": 1605711164949, | ||||
| 		"lastModifiedTimestamp": 1605711223372, | ||||
| 		"childProfileIds": [ | ||||
| 			10 | ||||
| 			24 | ||||
| 		] | ||||
| 	}, | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 11, | ||||
| 		"id": 16, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "ssid", | ||||
| 		"name": "TipWlan-cloud-3-radios", | ||||
| 		"name": "TipWlan-cloud-hotspot-osu", | ||||
| 		"details": { | ||||
| 			"model_type": "SsidConfiguration", | ||||
| 			"ssid": "TipWlan-cloud-3-radios", | ||||
| 			"ssid": "TipWlan-cloud-hotspot-osu", | ||||
| 			"appliedRadios": [ | ||||
| 				"is5GHzL", | ||||
| 				"is2dot4GHz", | ||||
| 				"is5GHzU" | ||||
| 				"is2dot4GHz" | ||||
| 			], | ||||
| 			"ssidAdminState": "enabled", | ||||
| 			"secureMode": "open", | ||||
| @@ -87,6 +85,7 @@ | ||||
| 			"keyRefresh": 0, | ||||
| 			"noLocalSubnets": false, | ||||
| 			"radiusServiceName": null, | ||||
| 			"radiusAccountingServiceName": null, | ||||
| 			"captivePortalId": null, | ||||
| 			"bandwidthLimitDown": 0, | ||||
| 			"bandwidthLimitUp": 0, | ||||
| @@ -125,10 +124,11 @@ | ||||
| 			"forwardMode": null, | ||||
| 			"profileType": "ssid" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1602183994766, | ||||
| 		"lastModifiedTimestamp": 1602183994766, | ||||
| 		"createdTimestamp": 1605711164950, | ||||
| 		"lastModifiedTimestamp": 1605711171732, | ||||
| 		"childProfileIds": [ | ||||
| 			10 | ||||
| 			19, | ||||
| 			20 | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
|   | ||||
| @@ -1,42 +1,43 @@ | ||||
| [ | ||||
|     { | ||||
|         "model_type": "Profile", | ||||
|         "id": 7, | ||||
|         "customerId": 2, | ||||
|         "profileType": "venue", | ||||
|         "name": "TipWlan-Hotspot20-Venue", | ||||
|         "details": { | ||||
|             "model_type": "VenueProfile", | ||||
|             "venueNameSet": [ | ||||
|                 { | ||||
|                     "model_type": "VenueName", | ||||
|                     "locale": "fr_CA", | ||||
|                     "dupleIso3Language": "fra", | ||||
|                     "dupleName": "Exemple de lieu", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "venueUrl": "http://www.example.com/info-fra", | ||||
|                     "asDuple": "fra:Exemple de lieu" | ||||
|                 }, | ||||
|                 { | ||||
|                     "model_type": "VenueName", | ||||
|                     "locale": "en_CA", | ||||
|                     "dupleIso3Language": "eng", | ||||
|                     "dupleName": "Example venue", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "venueUrl": "http://www.example.com/info-eng", | ||||
|                     "asDuple": "eng:Example venue" | ||||
|                 } | ||||
|             ], | ||||
|             "venueTypeAssignment": { | ||||
|                 "model_type": "VenueTypeAssignment", | ||||
|                 "venueDescription": "Research and Development Facility", | ||||
|                 "venueGroupId": 2, | ||||
|                 "venueTypeId": 8 | ||||
|             }, | ||||
|             "profileType": "venue" | ||||
|         }, | ||||
|         "createdTimestamp": 1602113058725, | ||||
|         "lastModifiedTimestamp": 1602113058725, | ||||
|         "childProfileIds": [] | ||||
|     } | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 18, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_venue", | ||||
| 		"name": "TipWlan-Hotspot20-Venue", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointVenueProfile", | ||||
| 			"venueNameSet": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointVenueName", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemple de lieu", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"venueUrl": "http://www.example.com/info-fra", | ||||
| 					"asDuple": "fra:Exemple de lieu" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointVenueName", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example passpoint_venue", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"venueUrl": "http://www.example.com/info-eng", | ||||
| 					"asDuple": "eng:Example passpoint_venue" | ||||
| 				} | ||||
| 			], | ||||
| 			"venueTypeAssignment": { | ||||
| 				"model_type": "ProfileVenueTypeAssignment", | ||||
| 				"venueDescription": "Research and Development Facility", | ||||
| 				"venueGroupId": 2, | ||||
| 				"venueTypeId": 8 | ||||
| 			}, | ||||
| 			"profileType": "passpoint_venue" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711164956, | ||||
| 		"lastModifiedTimestamp": 1605711164956, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
| @@ -20,10 +20,10 @@ | ||||
|  | ||||
| 			<modules> | ||||
| 				<module>../opensync-ext-interface</module> | ||||
| 				<module>../opensync-ext-static</module> | ||||
| 				<module>../opensync-ext-cloud</module> | ||||
| 				<module>../opensync-gateway</module> | ||||
| 				<module>../opensync-ext-static</module> | ||||
| 				<module>../opensync-gateway-static-process</module> | ||||
| 				<module>../opensync-ext-cloud</module> | ||||
| 				<module>../opensync-gateway-cloud-process</module> | ||||
| 			</modules> | ||||
| 		</profile> | ||||
|   | ||||
| @@ -20,6 +20,11 @@ SSC_SERVER_HOST="${SSC_SERVER}" | ||||
| ALL_IN_ONE_HOST="${INTEGRATED_SERVER}" | ||||
| FILE_STORE_DIRECTORY="${FILE_STORE_DIRECTORY_INTERNAL:=/tmp/filestore}" | ||||
| FILE_STORE_EXTERNAL_URL="${FILE_STORE_URL}" | ||||
| MQTT_BROKER_EXTERNAL_PORT="${MQTT_BROKER_EXTERNAL_PORT}" | ||||
| OVSDB_EXTERNAL_PORT="${OVSDB_EXTERNAL_PORT}" | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| OVSDB_PROPS=" " | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.managerAddr=$OVSDB_MANAGER_HOST" | ||||
| @@ -33,6 +38,8 @@ OVSDB_PROPS+=" -Dtip.wlan.ovsdb.configFileName=/app/opensync/config_2_ssids.json | ||||
| MQTT_PROPS=" " | ||||
| MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.internal=$MQTT_BROKER_HOST_INTERNAL" | ||||
| MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.external=$MQTT_BROKER_HOST_EXTERNAL" | ||||
| MQTT_PROPS+=" -Dtip.wlan.ovsdb.externalPort=$OVSDB_EXTERNAL_PORT" | ||||
| MQTT_PROPS+=" -Dtip.wlan.mqttBroker.externalPort=$MQTT_BROKER_EXTERNAL_PORT" | ||||
| MQTT_PROPS+=" -Dtip.wlan.mqttBroker.listenPort=1883" | ||||
|  | ||||
| LOGBACK_CONFIG_FILE="${LOGBACK_CONFIG_FILE:=/app/opensync/logback.xml}" | ||||
|   | ||||
							
								
								
									
										1
									
								
								opensync-gateway-cloud-process/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								opensync-gateway-cloud-process/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | ||||
| /target/ | ||||
| @@ -34,7 +34,7 @@ | ||||
| 				<artifactId>docker-maven-plugin</artifactId> | ||||
| 				<version>${docker.fabric.version}</version> | ||||
| 				<configuration> | ||||
| 					<verbose>true</verbose> | ||||
| 					<verbose>false</verbose> | ||||
| 					<apiVersion>1.23</apiVersion> | ||||
| 					<images> | ||||
| 						<image> | ||||
|   | ||||
| @@ -41,23 +41,23 @@ | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "perimeterDetectionEnabled": true, | ||||
| @@ -75,23 +75,23 @@ | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "perimeterDetectionEnabled": true, | ||||
| @@ -109,23 +109,23 @@ | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "perimeterDetectionEnabled": true, | ||||
| @@ -141,16 +141,22 @@ | ||||
|         "radioType": "is2dot4GHz", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "radioMode": "modeN", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "stationIsolation": "disabled", | ||||
|         "managementRate": "auto", | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 20, | ||||
|           "minLoadFactor": 50 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "deauthAttackDetection": null | ||||
| @@ -160,16 +166,22 @@ | ||||
|         "radioType": "is5GHzU", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "radioMode": "modeAC", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "stationIsolation": "disabled", | ||||
|         "managementRate": "auto", | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "deauthAttackDetection": null | ||||
| @@ -179,16 +191,22 @@ | ||||
|         "radioType": "is5GHzL", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "radioMode": "modeAC", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "stationIsolation": "disabled", | ||||
|         "managementRate": "auto", | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "deauthAttackDetection": null | ||||
|   | ||||
| @@ -10,55 +10,48 @@ | ||||
|     "countryCode" : "ca", | ||||
|     "maintenanceWindow" : null, | ||||
|     "rrmEnabled" : true, | ||||
|     "dailyRebalancingDetails" : { | ||||
|     "dailyActivityDetails" : { | ||||
|       "SUNDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "MONDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "TUESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "WEDNESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "THURSDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "FRIDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "SATURDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   | ||||
| @@ -10,55 +10,48 @@ | ||||
|     "countryCode" : "usa", | ||||
|     "maintenanceWindow" : null, | ||||
|     "rrmEnabled" : true, | ||||
|     "dailyRebalancingDetails" : { | ||||
|     "dailyActivityDetails" : { | ||||
|       "SUNDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "MONDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "TUESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "WEDNESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "THURSDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "FRIDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "SATURDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   | ||||
| @@ -1,50 +1,55 @@ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 17, | ||||
|     "customerId": 2, | ||||
|     "profileType": "equipment_ap", | ||||
|     "name": "ApProfile-3-radios", | ||||
|     "details": { | ||||
|         "model_type": "ApNetworkConfiguration", | ||||
|         "networkConfigVersion": "AP-1", | ||||
|         "equipmentType": "AP", | ||||
|         "vlanNative": true, | ||||
|         "vlan": 0, | ||||
|         "ntpServer": { | ||||
|             "model_type": "AutoOrManualString", | ||||
|             "auto": true, | ||||
|             "value": "pool.ntp.org" | ||||
|         }, | ||||
|         "syslogRelay": null, | ||||
|         "rtlsSettings": null, | ||||
|         "syntheticClientEnabled": true, | ||||
|         "ledControlEnabled": true, | ||||
|         "equipmentDiscovery": false, | ||||
|         "radioMap": { | ||||
|             "is2dot4GHz": { | ||||
|                 "model_type": "RadioProfileConfiguration", | ||||
|                 "bestApEnabled": true, | ||||
|                 "bestAPSteerType": "both" | ||||
|             }, | ||||
|             "is5GHzU": { | ||||
|                 "model_type": "RadioProfileConfiguration", | ||||
|                 "bestApEnabled": true, | ||||
|                 "bestAPSteerType": "both" | ||||
|             }, | ||||
|             "is5GHzL": { | ||||
|                 "model_type": "RadioProfileConfiguration", | ||||
|                 "bestApEnabled": true, | ||||
|                 "bestAPSteerType": "both" | ||||
|             } | ||||
|         }, | ||||
|         "profileType": "equipment_ap" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182806348, | ||||
|     "lastModifiedTimestamp": 1602182806348, | ||||
|     "childProfileIds": [ | ||||
|         2, | ||||
|         5, | ||||
|         11, | ||||
|         13 | ||||
|     ] | ||||
| 	"model_type": "Profile", | ||||
| 	"id": 23, | ||||
| 	"customerId": 2, | ||||
| 	"profileType": "equipment_ap", | ||||
| 	"name": "ApProfile-3-radios-passpoint", | ||||
| 	"details": { | ||||
| 		"model_type": "ApNetworkConfiguration", | ||||
| 		"networkConfigVersion": "AP-1", | ||||
| 		"equipmentType": "AP", | ||||
| 		"vlanNative": true, | ||||
| 		"vlan": 0, | ||||
| 		"ntpServer": { | ||||
| 			"model_type": "AutoOrManualString", | ||||
| 			"auto": true, | ||||
| 			"value": "pool.ntp.org" | ||||
| 		}, | ||||
| 		"syslogRelay": null, | ||||
| 		"rtlsSettings": null, | ||||
| 		"syntheticClientEnabled": true, | ||||
| 		"ledControlEnabled": true, | ||||
| 		"equipmentDiscovery": false, | ||||
| 		"greTunnelName": null, | ||||
| 		"greParentIfName": null, | ||||
| 		"greLocalInetAddr": null, | ||||
| 		"greRemoteInetAddr": null, | ||||
| 		"greRemoteMacAddr": null, | ||||
| 		"radioMap": { | ||||
| 			"is2dot4GHz": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzU": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzL": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			} | ||||
| 		}, | ||||
| 		"profileType": "equipment_ap" | ||||
| 	}, | ||||
| 	"createdTimestamp": 1605711197140, | ||||
| 	"lastModifiedTimestamp": 1605711197140, | ||||
| 	"childProfileIds": [ | ||||
| 		16, | ||||
| 		21, | ||||
| 		22, | ||||
| 		15 | ||||
| 	] | ||||
| } | ||||
| @@ -1,72 +1,72 @@ | ||||
| [ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 10, | ||||
|     "customerId": 2, | ||||
|     "profileType": "hotspot_2pt0", | ||||
|     "name": "TipWlan-Hotspot20-Config", | ||||
|     "details": { | ||||
|         "model_type": "Hotspot2Profile", | ||||
|         "enableInterworkingAndHs20": true, | ||||
|         "hessid": null, | ||||
|         "accessNetworkType": "free_public_network", | ||||
|         "networkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||
|         "additionalStepsRequiredForAccess": 0, | ||||
|         "deauthRequestTimeout": 0, | ||||
|         "operatingClass": 0, | ||||
|         "termsAndConditionsFile": { | ||||
|             "model_type": "ManagedFileInfo", | ||||
|             "md5checksum": null, | ||||
|             "lastModifiedTimestamp": null, | ||||
|             "apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | ||||
|             "fileCategory": "ExternalPolicyConfiguration", | ||||
|             "fileType": "TEXT", | ||||
|             "altSlot": false | ||||
|         "model_type": "Profile", | ||||
|         "id": 24, | ||||
|         "customerId": 2, | ||||
|         "profileType": "passpoint", | ||||
|         "name": "TipWlan-Hotspot20-Config", | ||||
|         "details": { | ||||
|             "model_type": "PasspointProfile", | ||||
|             "enableInterworkingAndHs20": true, | ||||
|             "hessid": null, | ||||
|             "additionalStepsRequiredForAccess": 0, | ||||
|             "deauthRequestTimeout": 0, | ||||
|             "operatingClass": 0, | ||||
|             "termsAndConditionsFile": { | ||||
|                 "model_type": "ManagedFileInfo", | ||||
|                 "md5checksum": null, | ||||
|                 "lastModifiedTimestamp": null, | ||||
|                 "apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | ||||
|                 "fileCategory": "ExternalPolicyConfiguration", | ||||
|                 "fileType": "TEXT", | ||||
|                 "altSlot": false | ||||
|             }, | ||||
|             "whitelistDomain": null, | ||||
|             "emergencyServicesReachable": true, | ||||
|             "unauthenticatedEmergencyServiceAccessible": false, | ||||
|             "internetConnectivity": true, | ||||
|             "connectionCapabilitySet": [ | ||||
|                 { | ||||
|                     "model_type": "PasspointConnectionCapability", | ||||
|                     "connectionCapabilitiesPortNumber": 8888, | ||||
|                     "connectionCapabilitiesIpProtocol": "TCP", | ||||
|                     "connectionCapabilitiesStatus": "open" | ||||
|                 } | ||||
|             ], | ||||
|             "ipAddressTypeAvailability": "public_IPv4_address_available", | ||||
|             "qosMapSetConfiguration": null, | ||||
|             "apGeospatialLocation": null, | ||||
|             "apCivicLocation": null, | ||||
|             "apPublicLocationIdUri": null, | ||||
|             "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | ||||
|             "anqpDomainId": 1234, | ||||
|             "disableDownstreamGroupAddressedForwarding": false, | ||||
|             "enable2pt4GHz": true, | ||||
|             "enable5GHz": true, | ||||
|             "associatedAccessSsidNames": [ | ||||
|                 "TipWlan-cloud-hotspot-access" | ||||
|             ], | ||||
|             "osuSsidName": "TipWlan-cloud-hotspot-osu", | ||||
|             "operatorProfileName": "TipWlan-Hotspot20-Operator", | ||||
|             "venueProfileName": "TipWlan-Hotspot20-Venue", | ||||
|             "idProviderProfileNames": [ | ||||
|                 "TipWlan-Hotspot20-OSU-Provider-2", | ||||
|                 "TipWlan-Hotspot20-OSU-Provider" | ||||
|             ], | ||||
|             "accessNetworkType": "free_public_network", | ||||
|             "networkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||
|             "associatedSsids": [ | ||||
|                 "TipWlan-cloud-hotspot-access" | ||||
|             ], | ||||
|             "profileType": "passpoint" | ||||
|         }, | ||||
|         "whitelistDomain": null, | ||||
|         "emergencyServicesReachable": true, | ||||
|         "unauthenticatedEmergencyServiceAccessible": false, | ||||
|         "internetConnectivity": true, | ||||
|         "connectionCapabilitySet": [ | ||||
|             { | ||||
|                 "model_type": "ConnectionCapability", | ||||
|                 "connectionCapabilitiesPortNumber": 8888, | ||||
|                 "connectionCapabilitiesIpProtocol": "TCP", | ||||
|                 "connectionCapabilitiesStatus": "open" | ||||
|             } | ||||
|         ], | ||||
|         "ipAddressTypeAvailability": "public_IPv4_address_available", | ||||
|         "qosMapSetConfiguration": null, | ||||
|         "apGeospatialLocation": null, | ||||
|         "apCivicLocation": null, | ||||
|         "apPublicLocationIdUri": null, | ||||
|         "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | ||||
|         "anqpDomainId": 1234, | ||||
|         "disableDownstreamGroupAddressedForwarding": false, | ||||
|         "enable2pt4GHz": true, | ||||
|         "enable5GHz": true, | ||||
|         "associatedAccessSsidNames": [ | ||||
|             "TipWlan-cloud-hotspot-access" | ||||
|         ], | ||||
|         "osuSsidName": "TipWlan-cloud-3-radios", | ||||
|         "operatorProfileName": "TipWlan-Hotspot20-Operator", | ||||
|         "venueProfileName": "TipWlan-Hotspot20-Venue", | ||||
|         "idProviderProfileNames": [ | ||||
|             "TipWlan-Hotspot20-OSU-Provider-2", | ||||
|             "TipWlan-Hotspot20-OSU-Provider" | ||||
|         ], | ||||
|         "profileType": "hotspot_2pt0", | ||||
|         "associatedSsids": [ | ||||
|             "TipWlan-cloud-hotspot-access" | ||||
|         "createdTimestamp": 1605711223339, | ||||
|         "lastModifiedTimestamp": 1605711223339, | ||||
|         "childProfileIds": [ | ||||
|             17, | ||||
|             18, | ||||
|             19, | ||||
|             20 | ||||
|         ] | ||||
|     }, | ||||
|     "createdTimestamp": 1602182806040, | ||||
|     "lastModifiedTimestamp": 1602182806040, | ||||
|     "childProfileIds": [ | ||||
|         6, | ||||
|         7, | ||||
|         8, | ||||
|         9 | ||||
|     ] | ||||
| } | ||||
|     } | ||||
| ] | ||||
| @@ -1,256 +1,270 @@ | ||||
| [ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 8, | ||||
|     "customerId": 2, | ||||
|     "profileType": "id_provider", | ||||
|     "name": "TipWlan-Hotspot20-OSU-Provider", | ||||
|     "details": { | ||||
|         "model_type": "Hotspot20IdProviderProfile", | ||||
|         "domainName": "rogers.com", | ||||
|         "mccMncList": [ | ||||
|             { | ||||
|                 "model_type": "MccMnc", | ||||
|                 "mcc": 302, | ||||
|                 "mnc": 720, | ||||
|                 "iso": "ca", | ||||
|                 "country": "Canada", | ||||
|                 "countryCode": 1, | ||||
|                 "network": "Rogers AT&T Wireless", | ||||
|                 "mccMncPairing": "302,720" | ||||
|             } | ||||
|         ], | ||||
|         "naiRealmList": [ | ||||
|             { | ||||
|                 "model_type": "NaiRealmInformation", | ||||
|                 "naiRealms": [ | ||||
|                     "rogers.com" | ||||
|                 ], | ||||
|                 "encoding": 0, | ||||
|                 "eapMethods": [ | ||||
|                     "EAP-TTLS with username/password", | ||||
|                     "EAP-TLS with certificate" | ||||
|                 ], | ||||
|                 "eapMap": { | ||||
|                     "EAP-TTLS with username/password": [ | ||||
|                         "Credential Type:username/password", | ||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
|                     ], | ||||
|                     "EAP-TLS with certificate": [ | ||||
|                         "Credential Type:Certificate" | ||||
|                     ] | ||||
|                 } | ||||
|             } | ||||
|         ], | ||||
|         "osuIconList": [ | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_CA", | ||||
|                 "iconName": "icon32eng", | ||||
|                 "filePath": "/tmp/icon32eng.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "fra", | ||||
|                 "iconLocale": "fr_CA", | ||||
|                 "iconName": "icon32fra", | ||||
|                 "filePath": "/tmp/icon32fra.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | ||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_US", | ||||
|                 "iconName": "icon32usa", | ||||
|                 "filePath": "/tmp/icon32usa.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
|             } | ||||
|         ], | ||||
|         "osuServerUri": "https://example.com/osu/rogers/", | ||||
|         "osuFriendlyName": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example provider rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example provider rogers" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemple de fournisseur rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemple de fournisseur rogers" | ||||
|             } | ||||
|         ], | ||||
|         "osuNaiStandalone": "anonymous@rogers.com", | ||||
|         "osuNaiShared": "anonymous@rogers.com", | ||||
|         "osuMethodList": [ | ||||
|             1, | ||||
|             0 | ||||
|         ], | ||||
|         "osuServiceDescription": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example services rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example services rogers" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemples de services rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemples de services rogers" | ||||
|             } | ||||
|         ], | ||||
|         "profileType": "id_provider" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182805654, | ||||
|     "lastModifiedTimestamp": 1602182805654, | ||||
|     "childProfileIds": [] | ||||
| }, | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 9, | ||||
|     "customerId": 2, | ||||
|     "profileType": "id_provider", | ||||
|     "name": "TipWlan-Hotspot20-OSU-Provider-2", | ||||
|     "details": { | ||||
|         "model_type": "Hotspot20IdProviderProfile", | ||||
|         "domainName": "telus.com", | ||||
|         "mccMncList": [ | ||||
|             { | ||||
|                 "model_type": "MccMnc", | ||||
|                 "mcc": 302, | ||||
|                 "mnc": 220, | ||||
|                 "iso": "ca", | ||||
|                 "country": "Canada", | ||||
|                 "countryCode": 1, | ||||
|                 "network": "Telus Mobility", | ||||
|                 "mccMncPairing": "302,220" | ||||
|             } | ||||
|         ], | ||||
|         "naiRealmList": [ | ||||
|             { | ||||
|                 "model_type": "NaiRealmInformation", | ||||
|                 "naiRealms": [ | ||||
|                     "telus.com" | ||||
|                 ], | ||||
|                 "encoding": 0, | ||||
|                 "eapMethods": [ | ||||
|                     "EAP-TTLS with username/password", | ||||
|                     "EAP-TLS with certificate" | ||||
|                 ], | ||||
|                 "eapMap": { | ||||
|                     "EAP-TTLS with username/password": [ | ||||
|                         "Credential Type:username/password", | ||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
|                     ], | ||||
|                     "EAP-TLS with certificate": [ | ||||
|                         "Credential Type:Certificate" | ||||
|                     ] | ||||
|                 } | ||||
|             } | ||||
|         ], | ||||
|         "osuIconList": [ | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_CA", | ||||
|                 "iconName": "icon32eng", | ||||
|                 "filePath": "/tmp/icon32eng.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "fra", | ||||
|                 "iconLocale": "fr_CA", | ||||
|                 "iconName": "icon32fra", | ||||
|                 "filePath": "/tmp/icon32fra.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | ||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_US", | ||||
|                 "iconName": "icon32usa", | ||||
|                 "filePath": "/tmp/icon32usa.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
|             } | ||||
|         ], | ||||
|         "osuServerUri": "https://example.com/osu/telus/", | ||||
|         "osuFriendlyName": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example provider telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example provider telus" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemple de fournisseur telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemple de fournisseur telus" | ||||
|             } | ||||
|         ], | ||||
|         "osuNaiStandalone": "anonymous@telus.com", | ||||
|         "osuNaiShared": "anonymous@telus.com", | ||||
|         "osuMethodList": [ | ||||
|             1, | ||||
|             0 | ||||
|         ], | ||||
|         "osuServiceDescription": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example services telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example services telus" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemples de services telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemples de services telus" | ||||
|             } | ||||
|         ], | ||||
|         "profileType": "id_provider" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182805660, | ||||
|     "lastModifiedTimestamp": 1602182805660, | ||||
|     "childProfileIds": [] | ||||
| } | ||||
|     ] | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 19, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_osu_id_provider", | ||||
| 		"name": "TipWlan-Hotspot20-OSU-Provider", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointOsuProviderProfile", | ||||
| 			"domainName": "rogers.com", | ||||
| 			"mccMncList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointMccMnc", | ||||
| 					"mcc": 302, | ||||
| 					"mnc": 720, | ||||
| 					"iso": "ca", | ||||
| 					"country": "Canada", | ||||
| 					"countryCode": 1, | ||||
| 					"network": "Rogers AT&T Wireless", | ||||
| 					"mccMncPairing": "302,720" | ||||
| 				} | ||||
| 			], | ||||
| 			"naiRealmList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointNaiRealmInformation", | ||||
| 					"naiRealms": [ | ||||
| 						"rogers.com" | ||||
| 					], | ||||
| 					"encoding": 0, | ||||
| 					"eapMethods": [ | ||||
| 						"EAP-TTLS with username/password", | ||||
| 						"EAP-TLS with certificate" | ||||
| 					], | ||||
| 					"eapMap": { | ||||
| 						"EAP-TTLS with username/password": [ | ||||
| 							"Credential Type:username/password", | ||||
| 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
| 						], | ||||
| 						"EAP-TLS with certificate": [ | ||||
| 							"Credential Type:Certificate" | ||||
| 						] | ||||
| 					} | ||||
| 				} | ||||
| 			], | ||||
| 			"osuIconList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_CA", | ||||
| 					"iconName": "icon32eng", | ||||
| 					"filePath": "/tmp/icon32eng.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "fra", | ||||
| 					"iconLocale": "fr_CA", | ||||
| 					"iconName": "icon32fra", | ||||
| 					"filePath": "/tmp/icon32fra.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||
| 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_US", | ||||
| 					"iconName": "icon32usa", | ||||
| 					"filePath": "/tmp/icon32usa.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuServerUri": "https://example.com/osu/rogers", | ||||
| 			"osuFriendlyName": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example provider rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example provider rogers" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemple de fournisseur rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemple de fournisseur rogers" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuNaiStandalone": "anonymous@rogers.com", | ||||
| 			"osuNaiShared": "anonymous@rogers.com", | ||||
| 			"osuMethodList": [ | ||||
| 				1, | ||||
| 				0 | ||||
| 			], | ||||
| 			"osuServiceDescription": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example services rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example services rogers" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemples de services rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemples de services rogers" | ||||
| 				} | ||||
| 			], | ||||
| 			"roamingOi": [ | ||||
| 				1, | ||||
| 				2, | ||||
| 				3, | ||||
| 				4 | ||||
| 			], | ||||
| 			"profileType": "passpoint_osu_id_provider" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711165325, | ||||
| 		"lastModifiedTimestamp": 1605711165325, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	}, | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 20, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_osu_id_provider", | ||||
| 		"name": "TipWlan-Hotspot20-OSU-Provider-2", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointOsuProviderProfile", | ||||
| 			"domainName": "telus.com", | ||||
| 			"mccMncList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointMccMnc", | ||||
| 					"mcc": 302, | ||||
| 					"mnc": 220, | ||||
| 					"iso": "ca", | ||||
| 					"country": "Canada", | ||||
| 					"countryCode": 1, | ||||
| 					"network": "Telus Mobility", | ||||
| 					"mccMncPairing": "302,220" | ||||
| 				} | ||||
| 			], | ||||
| 			"naiRealmList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointNaiRealmInformation", | ||||
| 					"naiRealms": [ | ||||
| 						"telus.com" | ||||
| 					], | ||||
| 					"encoding": 0, | ||||
| 					"eapMethods": [ | ||||
| 						"EAP-TTLS with username/password", | ||||
| 						"EAP-TLS with certificate" | ||||
| 					], | ||||
| 					"eapMap": { | ||||
| 						"EAP-TTLS with username/password": [ | ||||
| 							"Credential Type:username/password", | ||||
| 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
| 						], | ||||
| 						"EAP-TLS with certificate": [ | ||||
| 							"Credential Type:Certificate" | ||||
| 						] | ||||
| 					} | ||||
| 				} | ||||
| 			], | ||||
| 			"osuIconList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_CA", | ||||
| 					"iconName": "icon32eng", | ||||
| 					"filePath": "/tmp/icon32eng.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "fra", | ||||
| 					"iconLocale": "fr_CA", | ||||
| 					"iconName": "icon32fra", | ||||
| 					"filePath": "/tmp/icon32fra.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||
| 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_US", | ||||
| 					"iconName": "icon32usa", | ||||
| 					"filePath": "/tmp/icon32usa.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuServerUri": "https://example.com/osu/telus", | ||||
| 			"osuFriendlyName": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example provider telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example provider telus" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemple de fournisseur telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemple de fournisseur telus" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuNaiStandalone": "anonymous@telus.com", | ||||
| 			"osuNaiShared": "anonymous@telus.com", | ||||
| 			"osuMethodList": [ | ||||
| 				1, | ||||
| 				0 | ||||
| 			], | ||||
| 			"osuServiceDescription": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example services telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example services telus" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemples de services telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemples de services telus" | ||||
| 				} | ||||
| 			], | ||||
| 			"roamingOi": [ | ||||
| 				1, | ||||
| 				2, | ||||
| 				3, | ||||
| 				4 | ||||
| 			], | ||||
| 			"profileType": "passpoint_osu_id_provider" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711165330, | ||||
| 		"lastModifiedTimestamp": 1605711165330, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
|   | ||||
| @@ -1,298 +1,299 @@ | ||||
| [ | ||||
|  { | ||||
|         "model_type": "Profile", | ||||
|         "id": 2, | ||||
|         "customerId": 2, | ||||
|         "profileType": "metrics", | ||||
|         "name": "Metrics-Profile-3-radios", | ||||
|         "details": { | ||||
|             "model_type": "ServiceMetricsCollectionConfigProfile", | ||||
|             "radioTypes": [ | ||||
|                 "is5GHzU", | ||||
|                 "is5GHzL", | ||||
|                 "is2dot4GHz" | ||||
|             ], | ||||
|             "serviceMetricDataTypes": [ | ||||
|                 "ApNode", | ||||
|                 "ApSsid", | ||||
|                 "Client", | ||||
|                 "Channel", | ||||
|                 "Neighbour" | ||||
|             ], | ||||
|             "metricConfigParameterMap": { | ||||
|                 "ApNode": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzU", | ||||
|                         "serviceMetricDataType": "ApNode" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "ApNode" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_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": "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", | ||||
|                         "serviceMetricDataType": "ApNode" | ||||
|                     } | ||||
|                 ], | ||||
|                 "ApSsid": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is2dot4GHz", | ||||
|                         "serviceMetricDataType": "ApSsid" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "ApSsid" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzU", | ||||
|                         "serviceMetricDataType": "ApSsid" | ||||
|                     } | ||||
|                 ], | ||||
|                 "Client": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is2dot4GHz", | ||||
|                         "serviceMetricDataType": "Client" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "Client" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzU", | ||||
|                         "serviceMetricDataType": "Client" | ||||
|                     } | ||||
|                 ], | ||||
|                 "Channel": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "channelSurveyType": "ON_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "Channel" | ||||
|                     }, | ||||
|                     { | ||||
|                         "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", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "Channel" | ||||
|                     }, | ||||
|                     { | ||||
|                         "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": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "channelSurveyType": "ON_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "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", | ||||
|                         "serviceMetricDataType": "Neighbour" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "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", | ||||
|                         "serviceMetricDataType": "Neighbour" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is2dot4GHz", | ||||
|                         "serviceMetricDataType": "Neighbour" | ||||
|                     } | ||||
|                 ] | ||||
|             }, | ||||
|             "profileType": "metrics" | ||||
|         }, | ||||
|         "createdTimestamp": 1602113058699, | ||||
|         "lastModifiedTimestamp": 1602113058699, | ||||
|         "childProfileIds": [] | ||||
|     } | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 22, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "service_metrics_collection_config", | ||||
| 		"name": "Metrics-Profile-Passpoint", | ||||
| 		"details": { | ||||
| 			"model_type": "ServiceMetricsCollectionConfigProfile", | ||||
| 			"radioTypes": [ | ||||
| 				"is5GHzL", | ||||
| 				"is2dot4GHz", | ||||
| 				"is5GHzU" | ||||
| 			], | ||||
| 			"serviceMetricDataTypes": [ | ||||
| 				"ApNode", | ||||
| 				"ApSsid", | ||||
| 				"Client", | ||||
| 				"Channel", | ||||
| 				"Neighbour" | ||||
| 			], | ||||
| 			"metricConfigParameterMap": { | ||||
| 				"ApNode": [ | ||||
| 					{ | ||||
| 						"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": "is5GHzU", | ||||
| 						"serviceMetricDataType": "ApNode", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"serviceMetricDataType": "ApNode", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"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" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"serviceMetricDataType": "ApNode", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					} | ||||
| 				], | ||||
| 				"ApSsid": [ | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"serviceMetricDataType": "ApSsid" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"serviceMetricDataType": "ApSsid" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"serviceMetricDataType": "ApSsid" | ||||
| 					} | ||||
| 				], | ||||
| 				"Client": [ | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"serviceMetricDataType": "Client" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"serviceMetricDataType": "Client" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"serviceMetricDataType": "Client" | ||||
| 					} | ||||
| 				], | ||||
| 				"Channel": [ | ||||
| 					{ | ||||
| 						"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": 120, | ||||
| 						"channelSurveyType": "OFF_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": "is5GHzL", | ||||
| 						"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": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"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" | ||||
| 					} | ||||
| 				], | ||||
| 				"Neighbour": [ | ||||
| 					{ | ||||
| 						"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": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"serviceMetricDataType": "Neighbour", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"channelSurveyType": "ON_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" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"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" | ||||
| 					} | ||||
| 				] | ||||
| 			}, | ||||
| 			"profileType": "service_metrics_collection_config" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711195528, | ||||
| 		"lastModifiedTimestamp": 1605711195528, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
| @@ -1,37 +1,37 @@ | ||||
| [ | ||||
| { | ||||
|         "model_type": "Profile", | ||||
|         "id": 6, | ||||
|         "customerId": 2, | ||||
|         "profileType": "operator", | ||||
|         "name": "TipWlan-Hotspot20-Operator", | ||||
|         "details": { | ||||
|             "model_type": "OperatorProfile", | ||||
|             "domainName": "telecominfraproject.atlassian.net", | ||||
|             "serverOnlyAuthenticatedL2EncryptionNetwork": false, | ||||
|             "x509CertificateLocation": "/etc/ca.pem", | ||||
|             "operatorFriendlyName": [ | ||||
|                 { | ||||
|                     "model_type": "Hotspot20Duple", | ||||
|                     "locale": "en_CA", | ||||
|                     "dupleIso3Language": "eng", | ||||
|                     "dupleName": "Default friendly operator name", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "asDuple": "eng:Default friendly operator name" | ||||
|                 }, | ||||
|                 { | ||||
|                     "model_type": "Hotspot20Duple", | ||||
|                     "locale": "fr_CA", | ||||
|                     "dupleIso3Language": "fra", | ||||
|                     "dupleName": "Nom de l'opérateur convivial par défaut", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "asDuple": "fra:Nom de l'opérateur convivial par défaut" | ||||
|                 } | ||||
|             ], | ||||
|             "profileType": "operator" | ||||
|         }, | ||||
|         "createdTimestamp": 1602113058719, | ||||
|         "lastModifiedTimestamp": 1602113058719, | ||||
|         "childProfileIds": [] | ||||
|     } | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 17, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_operator", | ||||
| 		"name": "TipWlan-Hotspot20-Operator", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointOperatorProfile", | ||||
| 			"serverOnlyAuthenticatedL2EncryptionNetwork": false, | ||||
| 			"x509CertificateLocation": "/etc/ca.pem", | ||||
| 			"operatorFriendlyName": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Default friendly passpoint_operator name", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Default friendly passpoint_operator name" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Nom de l'opérateur convivial par défaut", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Nom de l'opérateur convivial par défaut" | ||||
| 				} | ||||
| 			], | ||||
| 			"profileType": "passpoint_operator" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711164952, | ||||
| 		"lastModifiedTimestamp": 1605711164952, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
|   | ||||
| @@ -1,260 +1,205 @@ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 13, | ||||
|     "customerId": 2, | ||||
|     "profileType": "rf", | ||||
|     "name": "TipWlan-rf", | ||||
|     "details": { | ||||
|         "model_type": "RfConfiguration", | ||||
|         "rfConfigMap": { | ||||
|             "is5GHz": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is80MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 30, | ||||
|                     "minLoadFactor": 40 | ||||
|                 }, | ||||
|                 "minAutoCellSize": -65 | ||||
|             }, | ||||
|             "is2dot4GHz": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is20MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 20, | ||||
|                     "minLoadFactor": 50 | ||||
|                 }, | ||||
|                 "minAutoCellSize": -65 | ||||
|             }, | ||||
|             "is5GHzU": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is80MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 30, | ||||
|                     "minLoadFactor": 40 | ||||
|                 }, | ||||
|                 "minAutoCellSize": -65 | ||||
|             }, | ||||
|             "is5GHzL": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is80MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 30, | ||||
|                     "minLoadFactor": 40 | ||||
|                 }, | ||||
|                 "minAutoCellSize": -65 | ||||
|             } | ||||
|         }, | ||||
|         "profileType": "rf" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182806063, | ||||
|     "lastModifiedTimestamp": 1602182806063, | ||||
|     "childProfileIds": [] | ||||
| 	"model_type": "Profile", | ||||
| 	"id": 21, | ||||
| 	"customerId": 2, | ||||
| 	"profileType": "rf", | ||||
| 	"name": "TipWlan-rf-passpoint", | ||||
| 	"details": { | ||||
| 		"model_type": "RfConfiguration", | ||||
| 		"rfConfigMap": { | ||||
| 			"is5GHz": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is5GHz", | ||||
| 				"radioMode": "modeAC", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is80MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 30, | ||||
| 					"minLoadFactor": 40 | ||||
| 				} | ||||
| 			}, | ||||
| 			"is2dot4GHz": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is2dot4GHz", | ||||
| 				"radioMode": "modeN", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is20MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 20, | ||||
| 					"minLoadFactor": 50 | ||||
| 				} | ||||
| 			}, | ||||
| 			"is5GHzU": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is5GHzU", | ||||
| 				"radioMode": "modeAC", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is80MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 30, | ||||
| 					"minLoadFactor": 40 | ||||
| 				} | ||||
| 			}, | ||||
| 			"is5GHzL": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is5GHzL", | ||||
| 				"radioMode": "modeAC", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is80MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 30, | ||||
| 					"minLoadFactor": 40 | ||||
| 				} | ||||
| 			} | ||||
| 		}, | ||||
| 		"profileType": "rf" | ||||
| 	}, | ||||
| 	"createdTimestamp": 1605711191976, | ||||
| 	"lastModifiedTimestamp": 1605711191976, | ||||
| 	"childProfileIds": [ | ||||
| 	] | ||||
| } | ||||
| @@ -1,7 +1,7 @@ | ||||
| [ | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 5, | ||||
| 		"id": 15, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "ssid", | ||||
| 		"name": "TipWlan-cloud-hotspot-access", | ||||
| @@ -9,9 +9,8 @@ | ||||
| 			"model_type": "SsidConfiguration", | ||||
| 			"ssid": "TipWlan-cloud-hotspot-access", | ||||
| 			"appliedRadios": [ | ||||
| 				"is5GHzU", | ||||
| 				"is5GHzL", | ||||
| 				"is2dot4GHz" | ||||
| 				"is5GHzU" | ||||
| 			], | ||||
| 			"ssidAdminState": "enabled", | ||||
| 			"secureMode": "wpa2PSK", | ||||
| @@ -21,6 +20,7 @@ | ||||
| 			"keyRefresh": 0, | ||||
| 			"noLocalSubnets": false, | ||||
| 			"radiusServiceName": null, | ||||
| 			"radiusAccountingServiceName": null, | ||||
| 			"captivePortalId": null, | ||||
| 			"bandwidthLimitDown": 0, | ||||
| 			"bandwidthLimitUp": 0, | ||||
| @@ -59,25 +59,23 @@ | ||||
| 			"forwardMode": null, | ||||
| 			"profileType": "ssid" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1602113058718, | ||||
| 		"lastModifiedTimestamp": 1602113059547, | ||||
| 		"createdTimestamp": 1605711164949, | ||||
| 		"lastModifiedTimestamp": 1605711223372, | ||||
| 		"childProfileIds": [ | ||||
| 			10 | ||||
| 			24 | ||||
| 		] | ||||
| 	}, | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 11, | ||||
| 		"id": 16, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "ssid", | ||||
| 		"name": "TipWlan-cloud-3-radios", | ||||
| 		"name": "TipWlan-cloud-hotspot-osu", | ||||
| 		"details": { | ||||
| 			"model_type": "SsidConfiguration", | ||||
| 			"ssid": "TipWlan-cloud-3-radios", | ||||
| 			"ssid": "TipWlan-cloud-hotspot-osu", | ||||
| 			"appliedRadios": [ | ||||
| 				"is5GHzL", | ||||
| 				"is2dot4GHz", | ||||
| 				"is5GHzU" | ||||
| 				"is2dot4GHz" | ||||
| 			], | ||||
| 			"ssidAdminState": "enabled", | ||||
| 			"secureMode": "open", | ||||
| @@ -87,6 +85,7 @@ | ||||
| 			"keyRefresh": 0, | ||||
| 			"noLocalSubnets": false, | ||||
| 			"radiusServiceName": null, | ||||
| 			"radiusAccountingServiceName": null, | ||||
| 			"captivePortalId": null, | ||||
| 			"bandwidthLimitDown": 0, | ||||
| 			"bandwidthLimitUp": 0, | ||||
| @@ -125,10 +124,11 @@ | ||||
| 			"forwardMode": null, | ||||
| 			"profileType": "ssid" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1602183994766, | ||||
| 		"lastModifiedTimestamp": 1602183994766, | ||||
| 		"createdTimestamp": 1605711164950, | ||||
| 		"lastModifiedTimestamp": 1605711171732, | ||||
| 		"childProfileIds": [ | ||||
| 			10 | ||||
| 			19, | ||||
| 			20 | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
|   | ||||
| @@ -1,42 +1,43 @@ | ||||
| [ | ||||
|     { | ||||
|         "model_type": "Profile", | ||||
|         "id": 7, | ||||
|         "customerId": 2, | ||||
|         "profileType": "venue", | ||||
|         "name": "TipWlan-Hotspot20-Venue", | ||||
|         "details": { | ||||
|             "model_type": "VenueProfile", | ||||
|             "venueNameSet": [ | ||||
|                 { | ||||
|                     "model_type": "VenueName", | ||||
|                     "locale": "fr_CA", | ||||
|                     "dupleIso3Language": "fra", | ||||
|                     "dupleName": "Exemple de lieu", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "venueUrl": "http://www.example.com/info-fra", | ||||
|                     "asDuple": "fra:Exemple de lieu" | ||||
|                 }, | ||||
|                 { | ||||
|                     "model_type": "VenueName", | ||||
|                     "locale": "en_CA", | ||||
|                     "dupleIso3Language": "eng", | ||||
|                     "dupleName": "Example venue", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "venueUrl": "http://www.example.com/info-eng", | ||||
|                     "asDuple": "eng:Example venue" | ||||
|                 } | ||||
|             ], | ||||
|             "venueTypeAssignment": { | ||||
|                 "model_type": "VenueTypeAssignment", | ||||
|                 "venueDescription": "Research and Development Facility", | ||||
|                 "venueGroupId": 2, | ||||
|                 "venueTypeId": 8 | ||||
|             }, | ||||
|             "profileType": "venue" | ||||
|         }, | ||||
|         "createdTimestamp": 1602113058725, | ||||
|         "lastModifiedTimestamp": 1602113058725, | ||||
|         "childProfileIds": [] | ||||
|     } | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 18, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_venue", | ||||
| 		"name": "TipWlan-Hotspot20-Venue", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointVenueProfile", | ||||
| 			"venueNameSet": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointVenueName", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemple de lieu", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"venueUrl": "http://www.example.com/info-fra", | ||||
| 					"asDuple": "fra:Exemple de lieu" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointVenueName", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example passpoint_venue", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"venueUrl": "http://www.example.com/info-eng", | ||||
| 					"asDuple": "eng:Example passpoint_venue" | ||||
| 				} | ||||
| 			], | ||||
| 			"venueTypeAssignment": { | ||||
| 				"model_type": "ProfileVenueTypeAssignment", | ||||
| 				"venueDescription": "Research and Development Facility", | ||||
| 				"venueGroupId": 2, | ||||
| 				"venueTypeId": 8 | ||||
| 			}, | ||||
| 			"profileType": "passpoint_venue" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711164956, | ||||
| 		"lastModifiedTimestamp": 1605711164956, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
| @@ -41,23 +41,23 @@ | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "perimeterDetectionEnabled": true, | ||||
| @@ -75,23 +75,23 @@ | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "perimeterDetectionEnabled": true, | ||||
| @@ -109,23 +109,23 @@ | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "perimeterDetectionEnabled": true, | ||||
| @@ -141,16 +141,22 @@ | ||||
|         "radioType": "is2dot4GHz", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "radioMode": "modeN", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "stationIsolation": "disabled", | ||||
|         "managementRate": "auto", | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 20, | ||||
|           "minLoadFactor": 50 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "deauthAttackDetection": null | ||||
| @@ -160,16 +166,22 @@ | ||||
|         "radioType": "is5GHzU", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "radioMode": "modeAC", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "stationIsolation": "disabled", | ||||
|         "managementRate": "auto", | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "deauthAttackDetection": null | ||||
| @@ -179,16 +191,22 @@ | ||||
|         "radioType": "is5GHzL", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "radioMode": "modeAC", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "stationIsolation": "disabled", | ||||
|         "managementRate": "auto", | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "deauthAttackDetection": null | ||||
|   | ||||
| @@ -10,55 +10,48 @@ | ||||
|     "countryCode" : "ca", | ||||
|     "maintenanceWindow" : null, | ||||
|     "rrmEnabled" : true, | ||||
|     "dailyRebalancingDetails" : { | ||||
|     "dailyActivityDetails" : { | ||||
|       "SUNDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "MONDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "TUESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "WEDNESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "THURSDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "FRIDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "SATURDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   | ||||
| @@ -10,55 +10,48 @@ | ||||
|     "countryCode" : "usa", | ||||
|     "maintenanceWindow" : null, | ||||
|     "rrmEnabled" : true, | ||||
|     "dailyRebalancingDetails" : { | ||||
|     "dailyActivityDetails" : { | ||||
|       "SUNDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "MONDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "TUESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "WEDNESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "THURSDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "FRIDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "SATURDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   | ||||
| @@ -1,50 +1,55 @@ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 17, | ||||
|     "customerId": 2, | ||||
|     "profileType": "equipment_ap", | ||||
|     "name": "ApProfile-3-radios", | ||||
|     "details": { | ||||
|         "model_type": "ApNetworkConfiguration", | ||||
|         "networkConfigVersion": "AP-1", | ||||
|         "equipmentType": "AP", | ||||
|         "vlanNative": true, | ||||
|         "vlan": 0, | ||||
|         "ntpServer": { | ||||
|             "model_type": "AutoOrManualString", | ||||
|             "auto": true, | ||||
|             "value": "pool.ntp.org" | ||||
|         }, | ||||
|         "syslogRelay": null, | ||||
|         "rtlsSettings": null, | ||||
|         "syntheticClientEnabled": true, | ||||
|         "ledControlEnabled": true, | ||||
|         "equipmentDiscovery": false, | ||||
|         "radioMap": { | ||||
|             "is2dot4GHz": { | ||||
|                 "model_type": "RadioProfileConfiguration", | ||||
|                 "bestApEnabled": true, | ||||
|                 "bestAPSteerType": "both" | ||||
|             }, | ||||
|             "is5GHzU": { | ||||
|                 "model_type": "RadioProfileConfiguration", | ||||
|                 "bestApEnabled": true, | ||||
|                 "bestAPSteerType": "both" | ||||
|             }, | ||||
|             "is5GHzL": { | ||||
|                 "model_type": "RadioProfileConfiguration", | ||||
|                 "bestApEnabled": true, | ||||
|                 "bestAPSteerType": "both" | ||||
|             } | ||||
|         }, | ||||
|         "profileType": "equipment_ap" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182806348, | ||||
|     "lastModifiedTimestamp": 1602182806348, | ||||
|     "childProfileIds": [ | ||||
|         2, | ||||
|         5, | ||||
|         11, | ||||
|         13 | ||||
|     ] | ||||
| 	"model_type": "Profile", | ||||
| 	"id": 23, | ||||
| 	"customerId": 2, | ||||
| 	"profileType": "equipment_ap", | ||||
| 	"name": "ApProfile-3-radios-passpoint", | ||||
| 	"details": { | ||||
| 		"model_type": "ApNetworkConfiguration", | ||||
| 		"networkConfigVersion": "AP-1", | ||||
| 		"equipmentType": "AP", | ||||
| 		"vlanNative": true, | ||||
| 		"vlan": 0, | ||||
| 		"ntpServer": { | ||||
| 			"model_type": "AutoOrManualString", | ||||
| 			"auto": true, | ||||
| 			"value": "pool.ntp.org" | ||||
| 		}, | ||||
| 		"syslogRelay": null, | ||||
| 		"rtlsSettings": null, | ||||
| 		"syntheticClientEnabled": true, | ||||
| 		"ledControlEnabled": true, | ||||
| 		"equipmentDiscovery": false, | ||||
| 		"greTunnelName": null, | ||||
| 		"greParentIfName": null, | ||||
| 		"greLocalInetAddr": null, | ||||
| 		"greRemoteInetAddr": null, | ||||
| 		"greRemoteMacAddr": null, | ||||
| 		"radioMap": { | ||||
| 			"is2dot4GHz": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzU": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzL": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			} | ||||
| 		}, | ||||
| 		"profileType": "equipment_ap" | ||||
| 	}, | ||||
| 	"createdTimestamp": 1605711197140, | ||||
| 	"lastModifiedTimestamp": 1605711197140, | ||||
| 	"childProfileIds": [ | ||||
| 		16, | ||||
| 		21, | ||||
| 		22, | ||||
| 		15 | ||||
| 	] | ||||
| } | ||||
| @@ -1,72 +1,72 @@ | ||||
| [ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 10, | ||||
|     "customerId": 2, | ||||
|     "profileType": "hotspot_2pt0", | ||||
|     "name": "TipWlan-Hotspot20-Config", | ||||
|     "details": { | ||||
|         "model_type": "Hotspot2Profile", | ||||
|         "enableInterworkingAndHs20": true, | ||||
|         "hessid": null, | ||||
|         "accessNetworkType": "free_public_network", | ||||
|         "networkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||
|         "additionalStepsRequiredForAccess": 0, | ||||
|         "deauthRequestTimeout": 0, | ||||
|         "operatingClass": 0, | ||||
|         "termsAndConditionsFile": { | ||||
|             "model_type": "ManagedFileInfo", | ||||
|             "md5checksum": null, | ||||
|             "lastModifiedTimestamp": null, | ||||
|             "apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | ||||
|             "fileCategory": "ExternalPolicyConfiguration", | ||||
|             "fileType": "TEXT", | ||||
|             "altSlot": false | ||||
|         "model_type": "Profile", | ||||
|         "id": 24, | ||||
|         "customerId": 2, | ||||
|         "profileType": "passpoint", | ||||
|         "name": "TipWlan-Hotspot20-Config", | ||||
|         "details": { | ||||
|             "model_type": "PasspointProfile", | ||||
|             "enableInterworkingAndHs20": true, | ||||
|             "hessid": null, | ||||
|             "additionalStepsRequiredForAccess": 0, | ||||
|             "deauthRequestTimeout": 0, | ||||
|             "operatingClass": 0, | ||||
|             "termsAndConditionsFile": { | ||||
|                 "model_type": "ManagedFileInfo", | ||||
|                 "md5checksum": null, | ||||
|                 "lastModifiedTimestamp": null, | ||||
|                 "apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | ||||
|                 "fileCategory": "ExternalPolicyConfiguration", | ||||
|                 "fileType": "TEXT", | ||||
|                 "altSlot": false | ||||
|             }, | ||||
|             "whitelistDomain": null, | ||||
|             "emergencyServicesReachable": true, | ||||
|             "unauthenticatedEmergencyServiceAccessible": false, | ||||
|             "internetConnectivity": true, | ||||
|             "connectionCapabilitySet": [ | ||||
|                 { | ||||
|                     "model_type": "PasspointConnectionCapability", | ||||
|                     "connectionCapabilitiesPortNumber": 8888, | ||||
|                     "connectionCapabilitiesIpProtocol": "TCP", | ||||
|                     "connectionCapabilitiesStatus": "open" | ||||
|                 } | ||||
|             ], | ||||
|             "ipAddressTypeAvailability": "public_IPv4_address_available", | ||||
|             "qosMapSetConfiguration": null, | ||||
|             "apGeospatialLocation": null, | ||||
|             "apCivicLocation": null, | ||||
|             "apPublicLocationIdUri": null, | ||||
|             "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | ||||
|             "anqpDomainId": 1234, | ||||
|             "disableDownstreamGroupAddressedForwarding": false, | ||||
|             "enable2pt4GHz": true, | ||||
|             "enable5GHz": true, | ||||
|             "associatedAccessSsidNames": [ | ||||
|                 "TipWlan-cloud-hotspot-access" | ||||
|             ], | ||||
|             "osuSsidName": "TipWlan-cloud-hotspot-osu", | ||||
|             "operatorProfileName": "TipWlan-Hotspot20-Operator", | ||||
|             "venueProfileName": "TipWlan-Hotspot20-Venue", | ||||
|             "idProviderProfileNames": [ | ||||
|                 "TipWlan-Hotspot20-OSU-Provider-2", | ||||
|                 "TipWlan-Hotspot20-OSU-Provider" | ||||
|             ], | ||||
|             "accessNetworkType": "free_public_network", | ||||
|             "networkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||
|             "associatedSsids": [ | ||||
|                 "TipWlan-cloud-hotspot-access" | ||||
|             ], | ||||
|             "profileType": "passpoint" | ||||
|         }, | ||||
|         "whitelistDomain": null, | ||||
|         "emergencyServicesReachable": true, | ||||
|         "unauthenticatedEmergencyServiceAccessible": false, | ||||
|         "internetConnectivity": true, | ||||
|         "connectionCapabilitySet": [ | ||||
|             { | ||||
|                 "model_type": "ConnectionCapability", | ||||
|                 "connectionCapabilitiesPortNumber": 8888, | ||||
|                 "connectionCapabilitiesIpProtocol": "TCP", | ||||
|                 "connectionCapabilitiesStatus": "open" | ||||
|             } | ||||
|         ], | ||||
|         "ipAddressTypeAvailability": "public_IPv4_address_available", | ||||
|         "qosMapSetConfiguration": null, | ||||
|         "apGeospatialLocation": null, | ||||
|         "apCivicLocation": null, | ||||
|         "apPublicLocationIdUri": null, | ||||
|         "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | ||||
|         "anqpDomainId": 1234, | ||||
|         "disableDownstreamGroupAddressedForwarding": false, | ||||
|         "enable2pt4GHz": true, | ||||
|         "enable5GHz": true, | ||||
|         "associatedAccessSsidNames": [ | ||||
|             "TipWlan-cloud-hotspot-access" | ||||
|         ], | ||||
|         "osuSsidName": "TipWlan-cloud-3-radios", | ||||
|         "operatorProfileName": "TipWlan-Hotspot20-Operator", | ||||
|         "venueProfileName": "TipWlan-Hotspot20-Venue", | ||||
|         "idProviderProfileNames": [ | ||||
|             "TipWlan-Hotspot20-OSU-Provider-2", | ||||
|             "TipWlan-Hotspot20-OSU-Provider" | ||||
|         ], | ||||
|         "profileType": "hotspot_2pt0", | ||||
|         "associatedSsids": [ | ||||
|             "TipWlan-cloud-hotspot-access" | ||||
|         "createdTimestamp": 1605711223339, | ||||
|         "lastModifiedTimestamp": 1605711223339, | ||||
|         "childProfileIds": [ | ||||
|             17, | ||||
|             18, | ||||
|             19, | ||||
|             20 | ||||
|         ] | ||||
|     }, | ||||
|     "createdTimestamp": 1602182806040, | ||||
|     "lastModifiedTimestamp": 1602182806040, | ||||
|     "childProfileIds": [ | ||||
|         6, | ||||
|         7, | ||||
|         8, | ||||
|         9 | ||||
|     ] | ||||
| } | ||||
|     } | ||||
| ] | ||||
| @@ -1,256 +1,270 @@ | ||||
| [ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 8, | ||||
|     "customerId": 2, | ||||
|     "profileType": "id_provider", | ||||
|     "name": "TipWlan-Hotspot20-OSU-Provider", | ||||
|     "details": { | ||||
|         "model_type": "Hotspot20IdProviderProfile", | ||||
|         "domainName": "rogers.com", | ||||
|         "mccMncList": [ | ||||
|             { | ||||
|                 "model_type": "MccMnc", | ||||
|                 "mcc": 302, | ||||
|                 "mnc": 720, | ||||
|                 "iso": "ca", | ||||
|                 "country": "Canada", | ||||
|                 "countryCode": 1, | ||||
|                 "network": "Rogers AT&T Wireless", | ||||
|                 "mccMncPairing": "302,720" | ||||
|             } | ||||
|         ], | ||||
|         "naiRealmList": [ | ||||
|             { | ||||
|                 "model_type": "NaiRealmInformation", | ||||
|                 "naiRealms": [ | ||||
|                     "rogers.com" | ||||
|                 ], | ||||
|                 "encoding": 0, | ||||
|                 "eapMethods": [ | ||||
|                     "EAP-TTLS with username/password", | ||||
|                     "EAP-TLS with certificate" | ||||
|                 ], | ||||
|                 "eapMap": { | ||||
|                     "EAP-TTLS with username/password": [ | ||||
|                         "Credential Type:username/password", | ||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
|                     ], | ||||
|                     "EAP-TLS with certificate": [ | ||||
|                         "Credential Type:Certificate" | ||||
|                     ] | ||||
|                 } | ||||
|             } | ||||
|         ], | ||||
|         "osuIconList": [ | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_CA", | ||||
|                 "iconName": "icon32eng", | ||||
|                 "filePath": "/tmp/icon32eng.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "fra", | ||||
|                 "iconLocale": "fr_CA", | ||||
|                 "iconName": "icon32fra", | ||||
|                 "filePath": "/tmp/icon32fra.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | ||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_US", | ||||
|                 "iconName": "icon32usa", | ||||
|                 "filePath": "/tmp/icon32usa.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
|             } | ||||
|         ], | ||||
|         "osuServerUri": "https://example.com/osu/rogers/", | ||||
|         "osuFriendlyName": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example provider rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example provider rogers" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemple de fournisseur rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemple de fournisseur rogers" | ||||
|             } | ||||
|         ], | ||||
|         "osuNaiStandalone": "anonymous@rogers.com", | ||||
|         "osuNaiShared": "anonymous@rogers.com", | ||||
|         "osuMethodList": [ | ||||
|             1, | ||||
|             0 | ||||
|         ], | ||||
|         "osuServiceDescription": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example services rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example services rogers" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemples de services rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemples de services rogers" | ||||
|             } | ||||
|         ], | ||||
|         "profileType": "id_provider" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182805654, | ||||
|     "lastModifiedTimestamp": 1602182805654, | ||||
|     "childProfileIds": [] | ||||
| }, | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 9, | ||||
|     "customerId": 2, | ||||
|     "profileType": "id_provider", | ||||
|     "name": "TipWlan-Hotspot20-OSU-Provider-2", | ||||
|     "details": { | ||||
|         "model_type": "Hotspot20IdProviderProfile", | ||||
|         "domainName": "telus.com", | ||||
|         "mccMncList": [ | ||||
|             { | ||||
|                 "model_type": "MccMnc", | ||||
|                 "mcc": 302, | ||||
|                 "mnc": 220, | ||||
|                 "iso": "ca", | ||||
|                 "country": "Canada", | ||||
|                 "countryCode": 1, | ||||
|                 "network": "Telus Mobility", | ||||
|                 "mccMncPairing": "302,220" | ||||
|             } | ||||
|         ], | ||||
|         "naiRealmList": [ | ||||
|             { | ||||
|                 "model_type": "NaiRealmInformation", | ||||
|                 "naiRealms": [ | ||||
|                     "telus.com" | ||||
|                 ], | ||||
|                 "encoding": 0, | ||||
|                 "eapMethods": [ | ||||
|                     "EAP-TTLS with username/password", | ||||
|                     "EAP-TLS with certificate" | ||||
|                 ], | ||||
|                 "eapMap": { | ||||
|                     "EAP-TTLS with username/password": [ | ||||
|                         "Credential Type:username/password", | ||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
|                     ], | ||||
|                     "EAP-TLS with certificate": [ | ||||
|                         "Credential Type:Certificate" | ||||
|                     ] | ||||
|                 } | ||||
|             } | ||||
|         ], | ||||
|         "osuIconList": [ | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_CA", | ||||
|                 "iconName": "icon32eng", | ||||
|                 "filePath": "/tmp/icon32eng.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "fra", | ||||
|                 "iconLocale": "fr_CA", | ||||
|                 "iconName": "icon32fra", | ||||
|                 "filePath": "/tmp/icon32fra.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | ||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_US", | ||||
|                 "iconName": "icon32usa", | ||||
|                 "filePath": "/tmp/icon32usa.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
|             } | ||||
|         ], | ||||
|         "osuServerUri": "https://example.com/osu/telus/", | ||||
|         "osuFriendlyName": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example provider telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example provider telus" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemple de fournisseur telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemple de fournisseur telus" | ||||
|             } | ||||
|         ], | ||||
|         "osuNaiStandalone": "anonymous@telus.com", | ||||
|         "osuNaiShared": "anonymous@telus.com", | ||||
|         "osuMethodList": [ | ||||
|             1, | ||||
|             0 | ||||
|         ], | ||||
|         "osuServiceDescription": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example services telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example services telus" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemples de services telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemples de services telus" | ||||
|             } | ||||
|         ], | ||||
|         "profileType": "id_provider" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182805660, | ||||
|     "lastModifiedTimestamp": 1602182805660, | ||||
|     "childProfileIds": [] | ||||
| } | ||||
|     ] | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 19, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_osu_id_provider", | ||||
| 		"name": "TipWlan-Hotspot20-OSU-Provider", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointOsuProviderProfile", | ||||
| 			"domainName": "rogers.com", | ||||
| 			"mccMncList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointMccMnc", | ||||
| 					"mcc": 302, | ||||
| 					"mnc": 720, | ||||
| 					"iso": "ca", | ||||
| 					"country": "Canada", | ||||
| 					"countryCode": 1, | ||||
| 					"network": "Rogers AT&T Wireless", | ||||
| 					"mccMncPairing": "302,720" | ||||
| 				} | ||||
| 			], | ||||
| 			"naiRealmList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointNaiRealmInformation", | ||||
| 					"naiRealms": [ | ||||
| 						"rogers.com" | ||||
| 					], | ||||
| 					"encoding": 0, | ||||
| 					"eapMethods": [ | ||||
| 						"EAP-TTLS with username/password", | ||||
| 						"EAP-TLS with certificate" | ||||
| 					], | ||||
| 					"eapMap": { | ||||
| 						"EAP-TTLS with username/password": [ | ||||
| 							"Credential Type:username/password", | ||||
| 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
| 						], | ||||
| 						"EAP-TLS with certificate": [ | ||||
| 							"Credential Type:Certificate" | ||||
| 						] | ||||
| 					} | ||||
| 				} | ||||
| 			], | ||||
| 			"osuIconList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_CA", | ||||
| 					"iconName": "icon32eng", | ||||
| 					"filePath": "/tmp/icon32eng.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "fra", | ||||
| 					"iconLocale": "fr_CA", | ||||
| 					"iconName": "icon32fra", | ||||
| 					"filePath": "/tmp/icon32fra.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||
| 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_US", | ||||
| 					"iconName": "icon32usa", | ||||
| 					"filePath": "/tmp/icon32usa.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuServerUri": "https://example.com/osu/rogers", | ||||
| 			"osuFriendlyName": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example provider rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example provider rogers" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemple de fournisseur rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemple de fournisseur rogers" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuNaiStandalone": "anonymous@rogers.com", | ||||
| 			"osuNaiShared": "anonymous@rogers.com", | ||||
| 			"osuMethodList": [ | ||||
| 				1, | ||||
| 				0 | ||||
| 			], | ||||
| 			"osuServiceDescription": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example services rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example services rogers" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemples de services rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemples de services rogers" | ||||
| 				} | ||||
| 			], | ||||
| 			"roamingOi": [ | ||||
| 				1, | ||||
| 				2, | ||||
| 				3, | ||||
| 				4 | ||||
| 			], | ||||
| 			"profileType": "passpoint_osu_id_provider" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711165325, | ||||
| 		"lastModifiedTimestamp": 1605711165325, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	}, | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 20, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_osu_id_provider", | ||||
| 		"name": "TipWlan-Hotspot20-OSU-Provider-2", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointOsuProviderProfile", | ||||
| 			"domainName": "telus.com", | ||||
| 			"mccMncList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointMccMnc", | ||||
| 					"mcc": 302, | ||||
| 					"mnc": 220, | ||||
| 					"iso": "ca", | ||||
| 					"country": "Canada", | ||||
| 					"countryCode": 1, | ||||
| 					"network": "Telus Mobility", | ||||
| 					"mccMncPairing": "302,220" | ||||
| 				} | ||||
| 			], | ||||
| 			"naiRealmList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointNaiRealmInformation", | ||||
| 					"naiRealms": [ | ||||
| 						"telus.com" | ||||
| 					], | ||||
| 					"encoding": 0, | ||||
| 					"eapMethods": [ | ||||
| 						"EAP-TTLS with username/password", | ||||
| 						"EAP-TLS with certificate" | ||||
| 					], | ||||
| 					"eapMap": { | ||||
| 						"EAP-TTLS with username/password": [ | ||||
| 							"Credential Type:username/password", | ||||
| 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
| 						], | ||||
| 						"EAP-TLS with certificate": [ | ||||
| 							"Credential Type:Certificate" | ||||
| 						] | ||||
| 					} | ||||
| 				} | ||||
| 			], | ||||
| 			"osuIconList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_CA", | ||||
| 					"iconName": "icon32eng", | ||||
| 					"filePath": "/tmp/icon32eng.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "fra", | ||||
| 					"iconLocale": "fr_CA", | ||||
| 					"iconName": "icon32fra", | ||||
| 					"filePath": "/tmp/icon32fra.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||
| 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_US", | ||||
| 					"iconName": "icon32usa", | ||||
| 					"filePath": "/tmp/icon32usa.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuServerUri": "https://example.com/osu/telus", | ||||
| 			"osuFriendlyName": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example provider telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example provider telus" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemple de fournisseur telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemple de fournisseur telus" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuNaiStandalone": "anonymous@telus.com", | ||||
| 			"osuNaiShared": "anonymous@telus.com", | ||||
| 			"osuMethodList": [ | ||||
| 				1, | ||||
| 				0 | ||||
| 			], | ||||
| 			"osuServiceDescription": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example services telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example services telus" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemples de services telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemples de services telus" | ||||
| 				} | ||||
| 			], | ||||
| 			"roamingOi": [ | ||||
| 				1, | ||||
| 				2, | ||||
| 				3, | ||||
| 				4 | ||||
| 			], | ||||
| 			"profileType": "passpoint_osu_id_provider" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711165330, | ||||
| 		"lastModifiedTimestamp": 1605711165330, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
|   | ||||
| @@ -1,298 +1,299 @@ | ||||
| [ | ||||
|  { | ||||
|         "model_type": "Profile", | ||||
|         "id": 2, | ||||
|         "customerId": 2, | ||||
|         "profileType": "metrics", | ||||
|         "name": "Metrics-Profile-3-radios", | ||||
|         "details": { | ||||
|             "model_type": "ServiceMetricsCollectionConfigProfile", | ||||
|             "radioTypes": [ | ||||
|                 "is5GHzU", | ||||
|                 "is5GHzL", | ||||
|                 "is2dot4GHz" | ||||
|             ], | ||||
|             "serviceMetricDataTypes": [ | ||||
|                 "ApNode", | ||||
|                 "ApSsid", | ||||
|                 "Client", | ||||
|                 "Channel", | ||||
|                 "Neighbour" | ||||
|             ], | ||||
|             "metricConfigParameterMap": { | ||||
|                 "ApNode": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzU", | ||||
|                         "serviceMetricDataType": "ApNode" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "ApNode" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_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": "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", | ||||
|                         "serviceMetricDataType": "ApNode" | ||||
|                     } | ||||
|                 ], | ||||
|                 "ApSsid": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is2dot4GHz", | ||||
|                         "serviceMetricDataType": "ApSsid" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "ApSsid" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzU", | ||||
|                         "serviceMetricDataType": "ApSsid" | ||||
|                     } | ||||
|                 ], | ||||
|                 "Client": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is2dot4GHz", | ||||
|                         "serviceMetricDataType": "Client" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "Client" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzU", | ||||
|                         "serviceMetricDataType": "Client" | ||||
|                     } | ||||
|                 ], | ||||
|                 "Channel": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "channelSurveyType": "ON_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "Channel" | ||||
|                     }, | ||||
|                     { | ||||
|                         "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", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "Channel" | ||||
|                     }, | ||||
|                     { | ||||
|                         "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": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "channelSurveyType": "ON_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "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", | ||||
|                         "serviceMetricDataType": "Neighbour" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "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", | ||||
|                         "serviceMetricDataType": "Neighbour" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is2dot4GHz", | ||||
|                         "serviceMetricDataType": "Neighbour" | ||||
|                     } | ||||
|                 ] | ||||
|             }, | ||||
|             "profileType": "metrics" | ||||
|         }, | ||||
|         "createdTimestamp": 1602113058699, | ||||
|         "lastModifiedTimestamp": 1602113058699, | ||||
|         "childProfileIds": [] | ||||
|     } | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 22, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "service_metrics_collection_config", | ||||
| 		"name": "Metrics-Profile-Passpoint", | ||||
| 		"details": { | ||||
| 			"model_type": "ServiceMetricsCollectionConfigProfile", | ||||
| 			"radioTypes": [ | ||||
| 				"is5GHzL", | ||||
| 				"is2dot4GHz", | ||||
| 				"is5GHzU" | ||||
| 			], | ||||
| 			"serviceMetricDataTypes": [ | ||||
| 				"ApNode", | ||||
| 				"ApSsid", | ||||
| 				"Client", | ||||
| 				"Channel", | ||||
| 				"Neighbour" | ||||
| 			], | ||||
| 			"metricConfigParameterMap": { | ||||
| 				"ApNode": [ | ||||
| 					{ | ||||
| 						"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": "is5GHzU", | ||||
| 						"serviceMetricDataType": "ApNode", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"serviceMetricDataType": "ApNode", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"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" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"serviceMetricDataType": "ApNode", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					} | ||||
| 				], | ||||
| 				"ApSsid": [ | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"serviceMetricDataType": "ApSsid" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"serviceMetricDataType": "ApSsid" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"serviceMetricDataType": "ApSsid" | ||||
| 					} | ||||
| 				], | ||||
| 				"Client": [ | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"serviceMetricDataType": "Client" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"serviceMetricDataType": "Client" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"serviceMetricDataType": "Client" | ||||
| 					} | ||||
| 				], | ||||
| 				"Channel": [ | ||||
| 					{ | ||||
| 						"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": 120, | ||||
| 						"channelSurveyType": "OFF_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": "is5GHzL", | ||||
| 						"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": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"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" | ||||
| 					} | ||||
| 				], | ||||
| 				"Neighbour": [ | ||||
| 					{ | ||||
| 						"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": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"serviceMetricDataType": "Neighbour", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"channelSurveyType": "ON_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" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"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" | ||||
| 					} | ||||
| 				] | ||||
| 			}, | ||||
| 			"profileType": "service_metrics_collection_config" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711195528, | ||||
| 		"lastModifiedTimestamp": 1605711195528, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
| @@ -1,37 +1,37 @@ | ||||
| [ | ||||
| { | ||||
|         "model_type": "Profile", | ||||
|         "id": 6, | ||||
|         "customerId": 2, | ||||
|         "profileType": "operator", | ||||
|         "name": "TipWlan-Hotspot20-Operator", | ||||
|         "details": { | ||||
|             "model_type": "OperatorProfile", | ||||
|             "domainName": "telecominfraproject.atlassian.net", | ||||
|             "serverOnlyAuthenticatedL2EncryptionNetwork": false, | ||||
|             "x509CertificateLocation": "/etc/ca.pem", | ||||
|             "operatorFriendlyName": [ | ||||
|                 { | ||||
|                     "model_type": "Hotspot20Duple", | ||||
|                     "locale": "en_CA", | ||||
|                     "dupleIso3Language": "eng", | ||||
|                     "dupleName": "Default friendly operator name", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "asDuple": "eng:Default friendly operator name" | ||||
|                 }, | ||||
|                 { | ||||
|                     "model_type": "Hotspot20Duple", | ||||
|                     "locale": "fr_CA", | ||||
|                     "dupleIso3Language": "fra", | ||||
|                     "dupleName": "Nom de l'opérateur convivial par défaut", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "asDuple": "fra:Nom de l'opérateur convivial par défaut" | ||||
|                 } | ||||
|             ], | ||||
|             "profileType": "operator" | ||||
|         }, | ||||
|         "createdTimestamp": 1602113058719, | ||||
|         "lastModifiedTimestamp": 1602113058719, | ||||
|         "childProfileIds": [] | ||||
|     } | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 17, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_operator", | ||||
| 		"name": "TipWlan-Hotspot20-Operator", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointOperatorProfile", | ||||
| 			"serverOnlyAuthenticatedL2EncryptionNetwork": false, | ||||
| 			"x509CertificateLocation": "/etc/ca.pem", | ||||
| 			"operatorFriendlyName": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Default friendly passpoint_operator name", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Default friendly passpoint_operator name" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Nom de l'opérateur convivial par défaut", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Nom de l'opérateur convivial par défaut" | ||||
| 				} | ||||
| 			], | ||||
| 			"profileType": "passpoint_operator" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711164952, | ||||
| 		"lastModifiedTimestamp": 1605711164952, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
|   | ||||
| @@ -1,260 +1,205 @@ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 13, | ||||
|     "customerId": 2, | ||||
|     "profileType": "rf", | ||||
|     "name": "TipWlan-rf", | ||||
|     "details": { | ||||
|         "model_type": "RfConfiguration", | ||||
|         "rfConfigMap": { | ||||
|             "is5GHz": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is80MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 30, | ||||
|                     "minLoadFactor": 40 | ||||
|                 }, | ||||
|                 "minAutoCellSize": -65 | ||||
|             }, | ||||
|             "is2dot4GHz": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is20MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 20, | ||||
|                     "minLoadFactor": 50 | ||||
|                 }, | ||||
|                 "minAutoCellSize": -65 | ||||
|             }, | ||||
|             "is5GHzU": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is80MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 30, | ||||
|                     "minLoadFactor": 40 | ||||
|                 }, | ||||
|                 "minAutoCellSize": -65 | ||||
|             }, | ||||
|             "is5GHzL": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is80MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 30, | ||||
|                     "minLoadFactor": 40 | ||||
|                 }, | ||||
|                 "minAutoCellSize": -65 | ||||
|             } | ||||
|         }, | ||||
|         "profileType": "rf" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182806063, | ||||
|     "lastModifiedTimestamp": 1602182806063, | ||||
|     "childProfileIds": [] | ||||
| 	"model_type": "Profile", | ||||
| 	"id": 21, | ||||
| 	"customerId": 2, | ||||
| 	"profileType": "rf", | ||||
| 	"name": "TipWlan-rf-passpoint", | ||||
| 	"details": { | ||||
| 		"model_type": "RfConfiguration", | ||||
| 		"rfConfigMap": { | ||||
| 			"is5GHz": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is5GHz", | ||||
| 				"radioMode": "modeAC", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is80MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 30, | ||||
| 					"minLoadFactor": 40 | ||||
| 				} | ||||
| 			}, | ||||
| 			"is2dot4GHz": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is2dot4GHz", | ||||
| 				"radioMode": "modeN", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is20MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 20, | ||||
| 					"minLoadFactor": 50 | ||||
| 				} | ||||
| 			}, | ||||
| 			"is5GHzU": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is5GHzU", | ||||
| 				"radioMode": "modeAC", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is80MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 30, | ||||
| 					"minLoadFactor": 40 | ||||
| 				} | ||||
| 			}, | ||||
| 			"is5GHzL": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is5GHzL", | ||||
| 				"radioMode": "modeAC", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is80MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 30, | ||||
| 					"minLoadFactor": 40 | ||||
| 				} | ||||
| 			} | ||||
| 		}, | ||||
| 		"profileType": "rf" | ||||
| 	}, | ||||
| 	"createdTimestamp": 1605711191976, | ||||
| 	"lastModifiedTimestamp": 1605711191976, | ||||
| 	"childProfileIds": [ | ||||
| 	] | ||||
| } | ||||
| @@ -1,7 +1,7 @@ | ||||
| [ | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 5, | ||||
| 		"id": 15, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "ssid", | ||||
| 		"name": "TipWlan-cloud-hotspot-access", | ||||
| @@ -9,9 +9,8 @@ | ||||
| 			"model_type": "SsidConfiguration", | ||||
| 			"ssid": "TipWlan-cloud-hotspot-access", | ||||
| 			"appliedRadios": [ | ||||
| 				"is5GHzU", | ||||
| 				"is5GHzL", | ||||
| 				"is2dot4GHz" | ||||
| 				"is5GHzU" | ||||
| 			], | ||||
| 			"ssidAdminState": "enabled", | ||||
| 			"secureMode": "wpa2PSK", | ||||
| @@ -21,6 +20,7 @@ | ||||
| 			"keyRefresh": 0, | ||||
| 			"noLocalSubnets": false, | ||||
| 			"radiusServiceName": null, | ||||
| 			"radiusAccountingServiceName": null, | ||||
| 			"captivePortalId": null, | ||||
| 			"bandwidthLimitDown": 0, | ||||
| 			"bandwidthLimitUp": 0, | ||||
| @@ -59,25 +59,23 @@ | ||||
| 			"forwardMode": null, | ||||
| 			"profileType": "ssid" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1602113058718, | ||||
| 		"lastModifiedTimestamp": 1602113059547, | ||||
| 		"createdTimestamp": 1605711164949, | ||||
| 		"lastModifiedTimestamp": 1605711223372, | ||||
| 		"childProfileIds": [ | ||||
| 			10 | ||||
| 			24 | ||||
| 		] | ||||
| 	}, | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 11, | ||||
| 		"id": 16, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "ssid", | ||||
| 		"name": "TipWlan-cloud-3-radios", | ||||
| 		"name": "TipWlan-cloud-hotspot-osu", | ||||
| 		"details": { | ||||
| 			"model_type": "SsidConfiguration", | ||||
| 			"ssid": "TipWlan-cloud-3-radios", | ||||
| 			"ssid": "TipWlan-cloud-hotspot-osu", | ||||
| 			"appliedRadios": [ | ||||
| 				"is5GHzL", | ||||
| 				"is2dot4GHz", | ||||
| 				"is5GHzU" | ||||
| 				"is2dot4GHz" | ||||
| 			], | ||||
| 			"ssidAdminState": "enabled", | ||||
| 			"secureMode": "open", | ||||
| @@ -87,6 +85,7 @@ | ||||
| 			"keyRefresh": 0, | ||||
| 			"noLocalSubnets": false, | ||||
| 			"radiusServiceName": null, | ||||
| 			"radiusAccountingServiceName": null, | ||||
| 			"captivePortalId": null, | ||||
| 			"bandwidthLimitDown": 0, | ||||
| 			"bandwidthLimitUp": 0, | ||||
| @@ -125,10 +124,11 @@ | ||||
| 			"forwardMode": null, | ||||
| 			"profileType": "ssid" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1602183994766, | ||||
| 		"lastModifiedTimestamp": 1602183994766, | ||||
| 		"createdTimestamp": 1605711164950, | ||||
| 		"lastModifiedTimestamp": 1605711171732, | ||||
| 		"childProfileIds": [ | ||||
| 			10 | ||||
| 			19, | ||||
| 			20 | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
|   | ||||
| @@ -1,42 +1,43 @@ | ||||
| [ | ||||
|     { | ||||
|         "model_type": "Profile", | ||||
|         "id": 7, | ||||
|         "customerId": 2, | ||||
|         "profileType": "venue", | ||||
|         "name": "TipWlan-Hotspot20-Venue", | ||||
|         "details": { | ||||
|             "model_type": "VenueProfile", | ||||
|             "venueNameSet": [ | ||||
|                 { | ||||
|                     "model_type": "VenueName", | ||||
|                     "locale": "fr_CA", | ||||
|                     "dupleIso3Language": "fra", | ||||
|                     "dupleName": "Exemple de lieu", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "venueUrl": "http://www.example.com/info-fra", | ||||
|                     "asDuple": "fra:Exemple de lieu" | ||||
|                 }, | ||||
|                 { | ||||
|                     "model_type": "VenueName", | ||||
|                     "locale": "en_CA", | ||||
|                     "dupleIso3Language": "eng", | ||||
|                     "dupleName": "Example venue", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "venueUrl": "http://www.example.com/info-eng", | ||||
|                     "asDuple": "eng:Example venue" | ||||
|                 } | ||||
|             ], | ||||
|             "venueTypeAssignment": { | ||||
|                 "model_type": "VenueTypeAssignment", | ||||
|                 "venueDescription": "Research and Development Facility", | ||||
|                 "venueGroupId": 2, | ||||
|                 "venueTypeId": 8 | ||||
|             }, | ||||
|             "profileType": "venue" | ||||
|         }, | ||||
|         "createdTimestamp": 1602113058725, | ||||
|         "lastModifiedTimestamp": 1602113058725, | ||||
|         "childProfileIds": [] | ||||
|     } | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 18, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_venue", | ||||
| 		"name": "TipWlan-Hotspot20-Venue", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointVenueProfile", | ||||
| 			"venueNameSet": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointVenueName", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemple de lieu", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"venueUrl": "http://www.example.com/info-fra", | ||||
| 					"asDuple": "fra:Exemple de lieu" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointVenueName", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example passpoint_venue", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"venueUrl": "http://www.example.com/info-eng", | ||||
| 					"asDuple": "eng:Example passpoint_venue" | ||||
| 				} | ||||
| 			], | ||||
| 			"venueTypeAssignment": { | ||||
| 				"model_type": "ProfileVenueTypeAssignment", | ||||
| 				"venueDescription": "Research and Development Facility", | ||||
| 				"venueGroupId": 2, | ||||
| 				"venueTypeId": 8 | ||||
| 			}, | ||||
| 			"profileType": "passpoint_venue" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711164956, | ||||
| 		"lastModifiedTimestamp": 1605711164956, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
| @@ -15,11 +15,6 @@ | ||||
| 	</properties> | ||||
|  | ||||
| 	<dependencies> | ||||
| 		<dependency> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<artifactId>opensync-gateway</artifactId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<artifactId>opensync-ext-static</artifactId> | ||||
|   | ||||
| @@ -41,23 +41,23 @@ | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "perimeterDetectionEnabled": true, | ||||
| @@ -75,23 +75,23 @@ | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "perimeterDetectionEnabled": true, | ||||
| @@ -109,23 +109,23 @@ | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "perimeterDetectionEnabled": true, | ||||
| @@ -141,16 +141,22 @@ | ||||
|         "radioType": "is2dot4GHz", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "radioMode": "modeN", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "stationIsolation": "disabled", | ||||
|         "managementRate": "auto", | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 20, | ||||
|           "minLoadFactor": 50 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "deauthAttackDetection": null | ||||
| @@ -160,16 +166,22 @@ | ||||
|         "radioType": "is5GHzU", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "radioMode": "modeAC", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "stationIsolation": "disabled", | ||||
|         "managementRate": "auto", | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "deauthAttackDetection": null | ||||
| @@ -179,16 +191,22 @@ | ||||
|         "radioType": "is5GHzL", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "radioMode": "modeAC", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "stationIsolation": "disabled", | ||||
|         "managementRate": "auto", | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "deauthAttackDetection": null | ||||
|   | ||||
| @@ -10,55 +10,48 @@ | ||||
|     "countryCode" : "ca", | ||||
|     "maintenanceWindow" : null, | ||||
|     "rrmEnabled" : true, | ||||
|     "dailyRebalancingDetails" : { | ||||
|     "dailyActivityDetails" : { | ||||
|       "SUNDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "MONDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "TUESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "WEDNESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "THURSDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "FRIDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "SATURDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   | ||||
| @@ -10,55 +10,48 @@ | ||||
|     "countryCode" : "usa", | ||||
|     "maintenanceWindow" : null, | ||||
|     "rrmEnabled" : true, | ||||
|     "dailyRebalancingDetails" : { | ||||
|     "dailyActivityDetails" : { | ||||
|       "SUNDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "MONDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "TUESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "WEDNESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "THURSDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "FRIDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "SATURDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   | ||||
| @@ -1,50 +1,55 @@ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 17, | ||||
|     "customerId": 2, | ||||
|     "profileType": "equipment_ap", | ||||
|     "name": "ApProfile-3-radios", | ||||
|     "details": { | ||||
|         "model_type": "ApNetworkConfiguration", | ||||
|         "networkConfigVersion": "AP-1", | ||||
|         "equipmentType": "AP", | ||||
|         "vlanNative": true, | ||||
|         "vlan": 0, | ||||
|         "ntpServer": { | ||||
|             "model_type": "AutoOrManualString", | ||||
|             "auto": true, | ||||
|             "value": "pool.ntp.org" | ||||
|         }, | ||||
|         "syslogRelay": null, | ||||
|         "rtlsSettings": null, | ||||
|         "syntheticClientEnabled": true, | ||||
|         "ledControlEnabled": true, | ||||
|         "equipmentDiscovery": false, | ||||
|         "radioMap": { | ||||
|             "is2dot4GHz": { | ||||
|                 "model_type": "RadioProfileConfiguration", | ||||
|                 "bestApEnabled": true, | ||||
|                 "bestAPSteerType": "both" | ||||
|             }, | ||||
|             "is5GHzU": { | ||||
|                 "model_type": "RadioProfileConfiguration", | ||||
|                 "bestApEnabled": true, | ||||
|                 "bestAPSteerType": "both" | ||||
|             }, | ||||
|             "is5GHzL": { | ||||
|                 "model_type": "RadioProfileConfiguration", | ||||
|                 "bestApEnabled": true, | ||||
|                 "bestAPSteerType": "both" | ||||
|             } | ||||
|         }, | ||||
|         "profileType": "equipment_ap" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182806348, | ||||
|     "lastModifiedTimestamp": 1602182806348, | ||||
|     "childProfileIds": [ | ||||
|         2, | ||||
|         5, | ||||
|         11, | ||||
|         13 | ||||
|     ] | ||||
| 	"model_type": "Profile", | ||||
| 	"id": 23, | ||||
| 	"customerId": 2, | ||||
| 	"profileType": "equipment_ap", | ||||
| 	"name": "ApProfile-3-radios-passpoint", | ||||
| 	"details": { | ||||
| 		"model_type": "ApNetworkConfiguration", | ||||
| 		"networkConfigVersion": "AP-1", | ||||
| 		"equipmentType": "AP", | ||||
| 		"vlanNative": true, | ||||
| 		"vlan": 0, | ||||
| 		"ntpServer": { | ||||
| 			"model_type": "AutoOrManualString", | ||||
| 			"auto": true, | ||||
| 			"value": "pool.ntp.org" | ||||
| 		}, | ||||
| 		"syslogRelay": null, | ||||
| 		"rtlsSettings": null, | ||||
| 		"syntheticClientEnabled": true, | ||||
| 		"ledControlEnabled": true, | ||||
| 		"equipmentDiscovery": false, | ||||
| 		"greTunnelName": null, | ||||
| 		"greParentIfName": null, | ||||
| 		"greLocalInetAddr": null, | ||||
| 		"greRemoteInetAddr": null, | ||||
| 		"greRemoteMacAddr": null, | ||||
| 		"radioMap": { | ||||
| 			"is2dot4GHz": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzU": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzL": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			} | ||||
| 		}, | ||||
| 		"profileType": "equipment_ap" | ||||
| 	}, | ||||
| 	"createdTimestamp": 1605711197140, | ||||
| 	"lastModifiedTimestamp": 1605711197140, | ||||
| 	"childProfileIds": [ | ||||
| 		16, | ||||
| 		21, | ||||
| 		22, | ||||
| 		15 | ||||
| 	] | ||||
| } | ||||
| @@ -1,72 +1,72 @@ | ||||
| [ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 10, | ||||
|     "customerId": 2, | ||||
|     "profileType": "hotspot_2pt0", | ||||
|     "name": "TipWlan-Hotspot20-Config", | ||||
|     "details": { | ||||
|         "model_type": "Hotspot2Profile", | ||||
|         "enableInterworkingAndHs20": true, | ||||
|         "hessid": null, | ||||
|         "accessNetworkType": "free_public_network", | ||||
|         "networkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||
|         "additionalStepsRequiredForAccess": 0, | ||||
|         "deauthRequestTimeout": 0, | ||||
|         "operatingClass": 0, | ||||
|         "termsAndConditionsFile": { | ||||
|             "model_type": "ManagedFileInfo", | ||||
|             "md5checksum": null, | ||||
|             "lastModifiedTimestamp": null, | ||||
|             "apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | ||||
|             "fileCategory": "ExternalPolicyConfiguration", | ||||
|             "fileType": "TEXT", | ||||
|             "altSlot": false | ||||
|         "model_type": "Profile", | ||||
|         "id": 24, | ||||
|         "customerId": 2, | ||||
|         "profileType": "passpoint", | ||||
|         "name": "TipWlan-Hotspot20-Config", | ||||
|         "details": { | ||||
|             "model_type": "PasspointProfile", | ||||
|             "enableInterworkingAndHs20": true, | ||||
|             "hessid": null, | ||||
|             "additionalStepsRequiredForAccess": 0, | ||||
|             "deauthRequestTimeout": 0, | ||||
|             "operatingClass": 0, | ||||
|             "termsAndConditionsFile": { | ||||
|                 "model_type": "ManagedFileInfo", | ||||
|                 "md5checksum": null, | ||||
|                 "lastModifiedTimestamp": null, | ||||
|                 "apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | ||||
|                 "fileCategory": "ExternalPolicyConfiguration", | ||||
|                 "fileType": "TEXT", | ||||
|                 "altSlot": false | ||||
|             }, | ||||
|             "whitelistDomain": null, | ||||
|             "emergencyServicesReachable": true, | ||||
|             "unauthenticatedEmergencyServiceAccessible": false, | ||||
|             "internetConnectivity": true, | ||||
|             "connectionCapabilitySet": [ | ||||
|                 { | ||||
|                     "model_type": "PasspointConnectionCapability", | ||||
|                     "connectionCapabilitiesPortNumber": 8888, | ||||
|                     "connectionCapabilitiesIpProtocol": "TCP", | ||||
|                     "connectionCapabilitiesStatus": "open" | ||||
|                 } | ||||
|             ], | ||||
|             "ipAddressTypeAvailability": "public_IPv4_address_available", | ||||
|             "qosMapSetConfiguration": null, | ||||
|             "apGeospatialLocation": null, | ||||
|             "apCivicLocation": null, | ||||
|             "apPublicLocationIdUri": null, | ||||
|             "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | ||||
|             "anqpDomainId": 1234, | ||||
|             "disableDownstreamGroupAddressedForwarding": false, | ||||
|             "enable2pt4GHz": true, | ||||
|             "enable5GHz": true, | ||||
|             "associatedAccessSsidNames": [ | ||||
|                 "TipWlan-cloud-hotspot-access" | ||||
|             ], | ||||
|             "osuSsidName": "TipWlan-cloud-hotspot-osu", | ||||
|             "operatorProfileName": "TipWlan-Hotspot20-Operator", | ||||
|             "venueProfileName": "TipWlan-Hotspot20-Venue", | ||||
|             "idProviderProfileNames": [ | ||||
|                 "TipWlan-Hotspot20-OSU-Provider-2", | ||||
|                 "TipWlan-Hotspot20-OSU-Provider" | ||||
|             ], | ||||
|             "accessNetworkType": "free_public_network", | ||||
|             "networkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||
|             "associatedSsids": [ | ||||
|                 "TipWlan-cloud-hotspot-access" | ||||
|             ], | ||||
|             "profileType": "passpoint" | ||||
|         }, | ||||
|         "whitelistDomain": null, | ||||
|         "emergencyServicesReachable": true, | ||||
|         "unauthenticatedEmergencyServiceAccessible": false, | ||||
|         "internetConnectivity": true, | ||||
|         "connectionCapabilitySet": [ | ||||
|             { | ||||
|                 "model_type": "ConnectionCapability", | ||||
|                 "connectionCapabilitiesPortNumber": 8888, | ||||
|                 "connectionCapabilitiesIpProtocol": "TCP", | ||||
|                 "connectionCapabilitiesStatus": "open" | ||||
|             } | ||||
|         ], | ||||
|         "ipAddressTypeAvailability": "public_IPv4_address_available", | ||||
|         "qosMapSetConfiguration": null, | ||||
|         "apGeospatialLocation": null, | ||||
|         "apCivicLocation": null, | ||||
|         "apPublicLocationIdUri": null, | ||||
|         "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | ||||
|         "anqpDomainId": 1234, | ||||
|         "disableDownstreamGroupAddressedForwarding": false, | ||||
|         "enable2pt4GHz": true, | ||||
|         "enable5GHz": true, | ||||
|         "associatedAccessSsidNames": [ | ||||
|             "TipWlan-cloud-hotspot-access" | ||||
|         ], | ||||
|         "osuSsidName": "TipWlan-cloud-3-radios", | ||||
|         "operatorProfileName": "TipWlan-Hotspot20-Operator", | ||||
|         "venueProfileName": "TipWlan-Hotspot20-Venue", | ||||
|         "idProviderProfileNames": [ | ||||
|             "TipWlan-Hotspot20-OSU-Provider-2", | ||||
|             "TipWlan-Hotspot20-OSU-Provider" | ||||
|         ], | ||||
|         "profileType": "hotspot_2pt0", | ||||
|         "associatedSsids": [ | ||||
|             "TipWlan-cloud-hotspot-access" | ||||
|         "createdTimestamp": 1605711223339, | ||||
|         "lastModifiedTimestamp": 1605711223339, | ||||
|         "childProfileIds": [ | ||||
|             17, | ||||
|             18, | ||||
|             19, | ||||
|             20 | ||||
|         ] | ||||
|     }, | ||||
|     "createdTimestamp": 1602182806040, | ||||
|     "lastModifiedTimestamp": 1602182806040, | ||||
|     "childProfileIds": [ | ||||
|         6, | ||||
|         7, | ||||
|         8, | ||||
|         9 | ||||
|     ] | ||||
| } | ||||
|     } | ||||
| ] | ||||
| @@ -1,256 +1,270 @@ | ||||
| [ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 8, | ||||
|     "customerId": 2, | ||||
|     "profileType": "id_provider", | ||||
|     "name": "TipWlan-Hotspot20-OSU-Provider", | ||||
|     "details": { | ||||
|         "model_type": "Hotspot20IdProviderProfile", | ||||
|         "domainName": "rogers.com", | ||||
|         "mccMncList": [ | ||||
|             { | ||||
|                 "model_type": "MccMnc", | ||||
|                 "mcc": 302, | ||||
|                 "mnc": 720, | ||||
|                 "iso": "ca", | ||||
|                 "country": "Canada", | ||||
|                 "countryCode": 1, | ||||
|                 "network": "Rogers AT&T Wireless", | ||||
|                 "mccMncPairing": "302,720" | ||||
|             } | ||||
|         ], | ||||
|         "naiRealmList": [ | ||||
|             { | ||||
|                 "model_type": "NaiRealmInformation", | ||||
|                 "naiRealms": [ | ||||
|                     "rogers.com" | ||||
|                 ], | ||||
|                 "encoding": 0, | ||||
|                 "eapMethods": [ | ||||
|                     "EAP-TTLS with username/password", | ||||
|                     "EAP-TLS with certificate" | ||||
|                 ], | ||||
|                 "eapMap": { | ||||
|                     "EAP-TTLS with username/password": [ | ||||
|                         "Credential Type:username/password", | ||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
|                     ], | ||||
|                     "EAP-TLS with certificate": [ | ||||
|                         "Credential Type:Certificate" | ||||
|                     ] | ||||
|                 } | ||||
|             } | ||||
|         ], | ||||
|         "osuIconList": [ | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_CA", | ||||
|                 "iconName": "icon32eng", | ||||
|                 "filePath": "/tmp/icon32eng.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "fra", | ||||
|                 "iconLocale": "fr_CA", | ||||
|                 "iconName": "icon32fra", | ||||
|                 "filePath": "/tmp/icon32fra.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | ||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_US", | ||||
|                 "iconName": "icon32usa", | ||||
|                 "filePath": "/tmp/icon32usa.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
|             } | ||||
|         ], | ||||
|         "osuServerUri": "https://example.com/osu/rogers/", | ||||
|         "osuFriendlyName": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example provider rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example provider rogers" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemple de fournisseur rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemple de fournisseur rogers" | ||||
|             } | ||||
|         ], | ||||
|         "osuNaiStandalone": "anonymous@rogers.com", | ||||
|         "osuNaiShared": "anonymous@rogers.com", | ||||
|         "osuMethodList": [ | ||||
|             1, | ||||
|             0 | ||||
|         ], | ||||
|         "osuServiceDescription": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example services rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example services rogers" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemples de services rogers", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemples de services rogers" | ||||
|             } | ||||
|         ], | ||||
|         "profileType": "id_provider" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182805654, | ||||
|     "lastModifiedTimestamp": 1602182805654, | ||||
|     "childProfileIds": [] | ||||
| }, | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 9, | ||||
|     "customerId": 2, | ||||
|     "profileType": "id_provider", | ||||
|     "name": "TipWlan-Hotspot20-OSU-Provider-2", | ||||
|     "details": { | ||||
|         "model_type": "Hotspot20IdProviderProfile", | ||||
|         "domainName": "telus.com", | ||||
|         "mccMncList": [ | ||||
|             { | ||||
|                 "model_type": "MccMnc", | ||||
|                 "mcc": 302, | ||||
|                 "mnc": 220, | ||||
|                 "iso": "ca", | ||||
|                 "country": "Canada", | ||||
|                 "countryCode": 1, | ||||
|                 "network": "Telus Mobility", | ||||
|                 "mccMncPairing": "302,220" | ||||
|             } | ||||
|         ], | ||||
|         "naiRealmList": [ | ||||
|             { | ||||
|                 "model_type": "NaiRealmInformation", | ||||
|                 "naiRealms": [ | ||||
|                     "telus.com" | ||||
|                 ], | ||||
|                 "encoding": 0, | ||||
|                 "eapMethods": [ | ||||
|                     "EAP-TTLS with username/password", | ||||
|                     "EAP-TLS with certificate" | ||||
|                 ], | ||||
|                 "eapMap": { | ||||
|                     "EAP-TTLS with username/password": [ | ||||
|                         "Credential Type:username/password", | ||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
|                     ], | ||||
|                     "EAP-TLS with certificate": [ | ||||
|                         "Credential Type:Certificate" | ||||
|                     ] | ||||
|                 } | ||||
|             } | ||||
|         ], | ||||
|         "osuIconList": [ | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_CA", | ||||
|                 "iconName": "icon32eng", | ||||
|                 "filePath": "/tmp/icon32eng.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "fra", | ||||
|                 "iconLocale": "fr_CA", | ||||
|                 "iconName": "icon32fra", | ||||
|                 "filePath": "/tmp/icon32fra.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | ||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "OsuIcon", | ||||
|                 "iconWidth": 32, | ||||
|                 "iconHeight": 32, | ||||
|                 "languageCode": "eng", | ||||
|                 "iconLocale": "en_US", | ||||
|                 "iconName": "icon32usa", | ||||
|                 "filePath": "/tmp/icon32usa.png", | ||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | ||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
|             } | ||||
|         ], | ||||
|         "osuServerUri": "https://example.com/osu/telus/", | ||||
|         "osuFriendlyName": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example provider telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example provider telus" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemple de fournisseur telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemple de fournisseur telus" | ||||
|             } | ||||
|         ], | ||||
|         "osuNaiStandalone": "anonymous@telus.com", | ||||
|         "osuNaiShared": "anonymous@telus.com", | ||||
|         "osuMethodList": [ | ||||
|             1, | ||||
|             0 | ||||
|         ], | ||||
|         "osuServiceDescription": [ | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "en_CA", | ||||
|                 "dupleIso3Language": "eng", | ||||
|                 "dupleName": "Example services telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "eng:Example services telus" | ||||
|             }, | ||||
|             { | ||||
|                 "model_type": "Hotspot20Duple", | ||||
|                 "locale": "fr_CA", | ||||
|                 "dupleIso3Language": "fra", | ||||
|                 "dupleName": "Exemples de services telus", | ||||
|                 "defaultDupleSeparator": ":", | ||||
|                 "asDuple": "fra:Exemples de services telus" | ||||
|             } | ||||
|         ], | ||||
|         "profileType": "id_provider" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182805660, | ||||
|     "lastModifiedTimestamp": 1602182805660, | ||||
|     "childProfileIds": [] | ||||
| } | ||||
|     ] | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 19, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_osu_id_provider", | ||||
| 		"name": "TipWlan-Hotspot20-OSU-Provider", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointOsuProviderProfile", | ||||
| 			"domainName": "rogers.com", | ||||
| 			"mccMncList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointMccMnc", | ||||
| 					"mcc": 302, | ||||
| 					"mnc": 720, | ||||
| 					"iso": "ca", | ||||
| 					"country": "Canada", | ||||
| 					"countryCode": 1, | ||||
| 					"network": "Rogers AT&T Wireless", | ||||
| 					"mccMncPairing": "302,720" | ||||
| 				} | ||||
| 			], | ||||
| 			"naiRealmList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointNaiRealmInformation", | ||||
| 					"naiRealms": [ | ||||
| 						"rogers.com" | ||||
| 					], | ||||
| 					"encoding": 0, | ||||
| 					"eapMethods": [ | ||||
| 						"EAP-TTLS with username/password", | ||||
| 						"EAP-TLS with certificate" | ||||
| 					], | ||||
| 					"eapMap": { | ||||
| 						"EAP-TTLS with username/password": [ | ||||
| 							"Credential Type:username/password", | ||||
| 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
| 						], | ||||
| 						"EAP-TLS with certificate": [ | ||||
| 							"Credential Type:Certificate" | ||||
| 						] | ||||
| 					} | ||||
| 				} | ||||
| 			], | ||||
| 			"osuIconList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_CA", | ||||
| 					"iconName": "icon32eng", | ||||
| 					"filePath": "/tmp/icon32eng.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "fra", | ||||
| 					"iconLocale": "fr_CA", | ||||
| 					"iconName": "icon32fra", | ||||
| 					"filePath": "/tmp/icon32fra.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||
| 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_US", | ||||
| 					"iconName": "icon32usa", | ||||
| 					"filePath": "/tmp/icon32usa.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuServerUri": "https://example.com/osu/rogers", | ||||
| 			"osuFriendlyName": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example provider rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example provider rogers" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemple de fournisseur rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemple de fournisseur rogers" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuNaiStandalone": "anonymous@rogers.com", | ||||
| 			"osuNaiShared": "anonymous@rogers.com", | ||||
| 			"osuMethodList": [ | ||||
| 				1, | ||||
| 				0 | ||||
| 			], | ||||
| 			"osuServiceDescription": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example services rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example services rogers" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemples de services rogers", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemples de services rogers" | ||||
| 				} | ||||
| 			], | ||||
| 			"roamingOi": [ | ||||
| 				1, | ||||
| 				2, | ||||
| 				3, | ||||
| 				4 | ||||
| 			], | ||||
| 			"profileType": "passpoint_osu_id_provider" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711165325, | ||||
| 		"lastModifiedTimestamp": 1605711165325, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	}, | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 20, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_osu_id_provider", | ||||
| 		"name": "TipWlan-Hotspot20-OSU-Provider-2", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointOsuProviderProfile", | ||||
| 			"domainName": "telus.com", | ||||
| 			"mccMncList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointMccMnc", | ||||
| 					"mcc": 302, | ||||
| 					"mnc": 220, | ||||
| 					"iso": "ca", | ||||
| 					"country": "Canada", | ||||
| 					"countryCode": 1, | ||||
| 					"network": "Telus Mobility", | ||||
| 					"mccMncPairing": "302,220" | ||||
| 				} | ||||
| 			], | ||||
| 			"naiRealmList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointNaiRealmInformation", | ||||
| 					"naiRealms": [ | ||||
| 						"telus.com" | ||||
| 					], | ||||
| 					"encoding": 0, | ||||
| 					"eapMethods": [ | ||||
| 						"EAP-TTLS with username/password", | ||||
| 						"EAP-TLS with certificate" | ||||
| 					], | ||||
| 					"eapMap": { | ||||
| 						"EAP-TTLS with username/password": [ | ||||
| 							"Credential Type:username/password", | ||||
| 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||
| 						], | ||||
| 						"EAP-TLS with certificate": [ | ||||
| 							"Credential Type:Certificate" | ||||
| 						] | ||||
| 					} | ||||
| 				} | ||||
| 			], | ||||
| 			"osuIconList": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_CA", | ||||
| 					"iconName": "icon32eng", | ||||
| 					"filePath": "/tmp/icon32eng.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "fra", | ||||
| 					"iconLocale": "fr_CA", | ||||
| 					"iconName": "icon32fra", | ||||
| 					"filePath": "/tmp/icon32fra.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||
| 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointOsuIcon", | ||||
| 					"iconWidth": 32, | ||||
| 					"iconHeight": 32, | ||||
| 					"languageCode": "eng", | ||||
| 					"iconLocale": "en_US", | ||||
| 					"iconName": "icon32usa", | ||||
| 					"filePath": "/tmp/icon32usa.png", | ||||
| 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||
| 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuServerUri": "https://example.com/osu/telus", | ||||
| 			"osuFriendlyName": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example provider telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example provider telus" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemple de fournisseur telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemple de fournisseur telus" | ||||
| 				} | ||||
| 			], | ||||
| 			"osuNaiStandalone": "anonymous@telus.com", | ||||
| 			"osuNaiShared": "anonymous@telus.com", | ||||
| 			"osuMethodList": [ | ||||
| 				1, | ||||
| 				0 | ||||
| 			], | ||||
| 			"osuServiceDescription": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example services telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Example services telus" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemples de services telus", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Exemples de services telus" | ||||
| 				} | ||||
| 			], | ||||
| 			"roamingOi": [ | ||||
| 				1, | ||||
| 				2, | ||||
| 				3, | ||||
| 				4 | ||||
| 			], | ||||
| 			"profileType": "passpoint_osu_id_provider" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711165330, | ||||
| 		"lastModifiedTimestamp": 1605711165330, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
|   | ||||
| @@ -1,298 +1,299 @@ | ||||
| [ | ||||
|  { | ||||
|         "model_type": "Profile", | ||||
|         "id": 2, | ||||
|         "customerId": 2, | ||||
|         "profileType": "metrics", | ||||
|         "name": "Metrics-Profile-3-radios", | ||||
|         "details": { | ||||
|             "model_type": "ServiceMetricsCollectionConfigProfile", | ||||
|             "radioTypes": [ | ||||
|                 "is5GHzU", | ||||
|                 "is5GHzL", | ||||
|                 "is2dot4GHz" | ||||
|             ], | ||||
|             "serviceMetricDataTypes": [ | ||||
|                 "ApNode", | ||||
|                 "ApSsid", | ||||
|                 "Client", | ||||
|                 "Channel", | ||||
|                 "Neighbour" | ||||
|             ], | ||||
|             "metricConfigParameterMap": { | ||||
|                 "ApNode": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzU", | ||||
|                         "serviceMetricDataType": "ApNode" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "ApNode" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_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": "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", | ||||
|                         "serviceMetricDataType": "ApNode" | ||||
|                     } | ||||
|                 ], | ||||
|                 "ApSsid": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is2dot4GHz", | ||||
|                         "serviceMetricDataType": "ApSsid" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "ApSsid" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzU", | ||||
|                         "serviceMetricDataType": "ApSsid" | ||||
|                     } | ||||
|                 ], | ||||
|                 "Client": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is2dot4GHz", | ||||
|                         "serviceMetricDataType": "Client" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "Client" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "radioType": "is5GHzU", | ||||
|                         "serviceMetricDataType": "Client" | ||||
|                     } | ||||
|                 ], | ||||
|                 "Channel": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "channelSurveyType": "ON_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "Channel" | ||||
|                     }, | ||||
|                     { | ||||
|                         "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", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is5GHzL", | ||||
|                         "serviceMetricDataType": "Channel" | ||||
|                     }, | ||||
|                     { | ||||
|                         "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": [ | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 60, | ||||
|                         "channelSurveyType": "ON_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "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", | ||||
|                         "serviceMetricDataType": "Neighbour" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "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", | ||||
|                         "serviceMetricDataType": "Neighbour" | ||||
|                     }, | ||||
|                     { | ||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | ||||
|                         "samplingInterval": 30, | ||||
|                         "reportingIntervalSeconds": 120, | ||||
|                         "channelSurveyType": "OFF_CHANNEL", | ||||
|                         "scanIntervalMillis": 0, | ||||
|                         "percentUtilizationThreshold": 10, | ||||
|                         "delayMillisecondsThreshold": 600, | ||||
|                         "statsReportFormat": "RAW", | ||||
|                         "radioType": "is2dot4GHz", | ||||
|                         "serviceMetricDataType": "Neighbour" | ||||
|                     } | ||||
|                 ] | ||||
|             }, | ||||
|             "profileType": "metrics" | ||||
|         }, | ||||
|         "createdTimestamp": 1602113058699, | ||||
|         "lastModifiedTimestamp": 1602113058699, | ||||
|         "childProfileIds": [] | ||||
|     } | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 22, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "service_metrics_collection_config", | ||||
| 		"name": "Metrics-Profile-Passpoint", | ||||
| 		"details": { | ||||
| 			"model_type": "ServiceMetricsCollectionConfigProfile", | ||||
| 			"radioTypes": [ | ||||
| 				"is5GHzL", | ||||
| 				"is2dot4GHz", | ||||
| 				"is5GHzU" | ||||
| 			], | ||||
| 			"serviceMetricDataTypes": [ | ||||
| 				"ApNode", | ||||
| 				"ApSsid", | ||||
| 				"Client", | ||||
| 				"Channel", | ||||
| 				"Neighbour" | ||||
| 			], | ||||
| 			"metricConfigParameterMap": { | ||||
| 				"ApNode": [ | ||||
| 					{ | ||||
| 						"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": "is5GHzU", | ||||
| 						"serviceMetricDataType": "ApNode", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"serviceMetricDataType": "ApNode", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"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" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"serviceMetricDataType": "ApNode", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					} | ||||
| 				], | ||||
| 				"ApSsid": [ | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"serviceMetricDataType": "ApSsid" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"serviceMetricDataType": "ApSsid" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"serviceMetricDataType": "ApSsid" | ||||
| 					} | ||||
| 				], | ||||
| 				"Client": [ | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"serviceMetricDataType": "Client" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"serviceMetricDataType": "Client" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricRadioConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"serviceMetricDataType": "Client" | ||||
| 					} | ||||
| 				], | ||||
| 				"Channel": [ | ||||
| 					{ | ||||
| 						"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": 120, | ||||
| 						"channelSurveyType": "OFF_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": "is5GHzL", | ||||
| 						"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": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzL", | ||||
| 						"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" | ||||
| 					} | ||||
| 				], | ||||
| 				"Neighbour": [ | ||||
| 					{ | ||||
| 						"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": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is5GHzU", | ||||
| 						"serviceMetricDataType": "Neighbour", | ||||
| 						"statsReportFormat": "RAW" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 60, | ||||
| 						"channelSurveyType": "ON_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" | ||||
| 					}, | ||||
| 					{ | ||||
| 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||
| 						"samplingInterval": 30, | ||||
| 						"reportingIntervalSeconds": 120, | ||||
| 						"channelSurveyType": "OFF_CHANNEL", | ||||
| 						"scanIntervalMillis": 0, | ||||
| 						"percentUtilizationThreshold": 10, | ||||
| 						"delayMillisecondsThreshold": 600, | ||||
| 						"radioType": "is2dot4GHz", | ||||
| 						"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" | ||||
| 					} | ||||
| 				] | ||||
| 			}, | ||||
| 			"profileType": "service_metrics_collection_config" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711195528, | ||||
| 		"lastModifiedTimestamp": 1605711195528, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
| @@ -1,37 +1,37 @@ | ||||
| [ | ||||
| { | ||||
|         "model_type": "Profile", | ||||
|         "id": 6, | ||||
|         "customerId": 2, | ||||
|         "profileType": "operator", | ||||
|         "name": "TipWlan-Hotspot20-Operator", | ||||
|         "details": { | ||||
|             "model_type": "OperatorProfile", | ||||
|             "domainName": "telecominfraproject.atlassian.net", | ||||
|             "serverOnlyAuthenticatedL2EncryptionNetwork": false, | ||||
|             "x509CertificateLocation": "/etc/ca.pem", | ||||
|             "operatorFriendlyName": [ | ||||
|                 { | ||||
|                     "model_type": "Hotspot20Duple", | ||||
|                     "locale": "en_CA", | ||||
|                     "dupleIso3Language": "eng", | ||||
|                     "dupleName": "Default friendly operator name", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "asDuple": "eng:Default friendly operator name" | ||||
|                 }, | ||||
|                 { | ||||
|                     "model_type": "Hotspot20Duple", | ||||
|                     "locale": "fr_CA", | ||||
|                     "dupleIso3Language": "fra", | ||||
|                     "dupleName": "Nom de l'opérateur convivial par défaut", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "asDuple": "fra:Nom de l'opérateur convivial par défaut" | ||||
|                 } | ||||
|             ], | ||||
|             "profileType": "operator" | ||||
|         }, | ||||
|         "createdTimestamp": 1602113058719, | ||||
|         "lastModifiedTimestamp": 1602113058719, | ||||
|         "childProfileIds": [] | ||||
|     } | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 17, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_operator", | ||||
| 		"name": "TipWlan-Hotspot20-Operator", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointOperatorProfile", | ||||
| 			"serverOnlyAuthenticatedL2EncryptionNetwork": false, | ||||
| 			"x509CertificateLocation": "/etc/ca.pem", | ||||
| 			"operatorFriendlyName": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Default friendly passpoint_operator name", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "eng:Default friendly passpoint_operator name" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointDuple", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Nom de l'opérateur convivial par défaut", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"asDuple": "fra:Nom de l'opérateur convivial par défaut" | ||||
| 				} | ||||
| 			], | ||||
| 			"profileType": "passpoint_operator" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711164952, | ||||
| 		"lastModifiedTimestamp": 1605711164952, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
|   | ||||
| @@ -1,260 +1,205 @@ | ||||
| { | ||||
|     "model_type": "Profile", | ||||
|     "id": 13, | ||||
|     "customerId": 2, | ||||
|     "profileType": "rf", | ||||
|     "name": "TipWlan-rf", | ||||
|     "details": { | ||||
|         "model_type": "RfConfiguration", | ||||
|         "rfConfigMap": { | ||||
|             "is5GHz": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is80MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 30, | ||||
|                     "minLoadFactor": 40 | ||||
|                 }, | ||||
|                 "minAutoCellSize": -65 | ||||
|             }, | ||||
|             "is2dot4GHz": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is20MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 20, | ||||
|                     "minLoadFactor": 50 | ||||
|                 }, | ||||
|                 "minAutoCellSize": -65 | ||||
|             }, | ||||
|             "is5GHzU": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is80MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 30, | ||||
|                     "minLoadFactor": 40 | ||||
|                 }, | ||||
|                 "minAutoCellSize": -65 | ||||
|             }, | ||||
|             "is5GHzL": { | ||||
|                 "model_type": "RfElementConfiguration", | ||||
|                 "rf": "TipWlan-rf", | ||||
|                 "beaconInterval": 100, | ||||
|                 "forceScanDuringVoice": "disabled", | ||||
|                 "rtsCtsThreshold": 65535, | ||||
|                 "channelBandwidth": "is80MHz", | ||||
|                 "mimoMode": "twoByTwo", | ||||
|                 "maxNumClients": 100, | ||||
|                 "multicastRate": "auto", | ||||
|                 "autoChannelSelection": false, | ||||
|                 "activeScanSettings": { | ||||
|                     "model_type": "ActiveScanSettings", | ||||
|                     "enabled": true, | ||||
|                     "scanFrequencySeconds": 10, | ||||
|                     "scanDurationMillis": 65 | ||||
|                 }, | ||||
|                 "managementRate": "auto", | ||||
|                 "rxCellSizeDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "probeResponseThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "clientDisconnectThresholdDb": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": -90 | ||||
|                 }, | ||||
|                 "eirpTxPower": { | ||||
|                     "model_type": "AutoOrManualValue", | ||||
|                     "auto": true, | ||||
|                     "value": 18 | ||||
|                 }, | ||||
|                 "bestApEnabled": null, | ||||
|                 "neighbouringListApConfig": { | ||||
|                     "model_type": "NeighbouringAPListConfiguration", | ||||
|                     "minSignal": -85, | ||||
|                     "maxAps": 25 | ||||
|                 }, | ||||
|                 "perimeterDetectionEnabled": true, | ||||
|                 "channelHopSettings": { | ||||
|                     "model_type": "ChannelHopSettings", | ||||
|                     "noiseFloorThresholdInDB": -75, | ||||
|                     "noiseFloorThresholdTimeInSeconds": 180, | ||||
|                     "nonWifiThresholdInPercentage": 50, | ||||
|                     "nonWifiThresholdTimeInSeconds": 180, | ||||
|                     "obssHopMode": "NON_WIFI" | ||||
|                 }, | ||||
|                 "bestApSettings": { | ||||
|                     "model_type": "RadioBestApSettings", | ||||
|                     "mlComputed": true, | ||||
|                     "dropInSnrPercentage": 30, | ||||
|                     "minLoadFactor": 40 | ||||
|                 }, | ||||
|                 "minAutoCellSize": -65 | ||||
|             } | ||||
|         }, | ||||
|         "profileType": "rf" | ||||
|     }, | ||||
|     "createdTimestamp": 1602182806063, | ||||
|     "lastModifiedTimestamp": 1602182806063, | ||||
|     "childProfileIds": [] | ||||
| 	"model_type": "Profile", | ||||
| 	"id": 21, | ||||
| 	"customerId": 2, | ||||
| 	"profileType": "rf", | ||||
| 	"name": "TipWlan-rf-passpoint", | ||||
| 	"details": { | ||||
| 		"model_type": "RfConfiguration", | ||||
| 		"rfConfigMap": { | ||||
| 			"is5GHz": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is5GHz", | ||||
| 				"radioMode": "modeAC", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is80MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 30, | ||||
| 					"minLoadFactor": 40 | ||||
| 				} | ||||
| 			}, | ||||
| 			"is2dot4GHz": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is2dot4GHz", | ||||
| 				"radioMode": "modeN", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is20MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 20, | ||||
| 					"minLoadFactor": 50 | ||||
| 				} | ||||
| 			}, | ||||
| 			"is5GHzU": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is5GHzU", | ||||
| 				"radioMode": "modeAC", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is80MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 30, | ||||
| 					"minLoadFactor": 40 | ||||
| 				} | ||||
| 			}, | ||||
| 			"is5GHzL": { | ||||
| 				"model_type": "RfElementConfiguration", | ||||
| 				"radioType": "is5GHzL", | ||||
| 				"radioMode": "modeAC", | ||||
| 				"rf": "TipWlan-rf-passpoint", | ||||
| 				"beaconInterval": 100, | ||||
| 				"forceScanDuringVoice": "disabled", | ||||
| 				"rtsCtsThreshold": 65535, | ||||
| 				"channelBandwidth": "is80MHz", | ||||
| 				"mimoMode": "twoByTwo", | ||||
| 				"maxNumClients": 100, | ||||
| 				"autoChannelSelection": false, | ||||
| 				"activeScanSettings": { | ||||
| 					"model_type": "ActiveScanSettings", | ||||
| 					"enabled": true, | ||||
| 					"scanFrequencySeconds": 10, | ||||
| 					"scanDurationMillis": 65 | ||||
| 				}, | ||||
| 				"neighbouringListApConfig": { | ||||
| 					"model_type": "NeighbouringAPListConfiguration", | ||||
| 					"minSignal": -85, | ||||
| 					"maxAps": 25 | ||||
| 				}, | ||||
| 				"minAutoCellSize": -65, | ||||
| 				"perimeterDetectionEnabled": true, | ||||
| 				"channelHopSettings": { | ||||
| 					"model_type": "ChannelHopSettings", | ||||
| 					"noiseFloorThresholdInDB": -75, | ||||
| 					"noiseFloorThresholdTimeInSeconds": 180, | ||||
| 					"nonWifiThresholdInPercentage": 50, | ||||
| 					"nonWifiThresholdTimeInSeconds": 180, | ||||
| 					"obssHopMode": "NON_WIFI" | ||||
| 				}, | ||||
| 				"bestApEnabled": null, | ||||
| 				"multicastRate": "auto", | ||||
| 				"managementRate": "auto", | ||||
| 				"rxCellSizeDb": -90, | ||||
| 				"probeResponseThresholdDb": -90, | ||||
| 				"clientDisconnectThresholdDb": -90, | ||||
| 				"eirpTxPower": 18, | ||||
| 				"bestApSettings": { | ||||
| 					"model_type": "RadioBestApSettings", | ||||
| 					"mlComputed": true, | ||||
| 					"dropInSnrPercentage": 30, | ||||
| 					"minLoadFactor": 40 | ||||
| 				} | ||||
| 			} | ||||
| 		}, | ||||
| 		"profileType": "rf" | ||||
| 	}, | ||||
| 	"createdTimestamp": 1605711191976, | ||||
| 	"lastModifiedTimestamp": 1605711191976, | ||||
| 	"childProfileIds": [ | ||||
| 	] | ||||
| } | ||||
| @@ -1,7 +1,7 @@ | ||||
| [ | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 5, | ||||
| 		"id": 15, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "ssid", | ||||
| 		"name": "TipWlan-cloud-hotspot-access", | ||||
| @@ -9,9 +9,8 @@ | ||||
| 			"model_type": "SsidConfiguration", | ||||
| 			"ssid": "TipWlan-cloud-hotspot-access", | ||||
| 			"appliedRadios": [ | ||||
| 				"is5GHzU", | ||||
| 				"is5GHzL", | ||||
| 				"is2dot4GHz" | ||||
| 				"is5GHzU" | ||||
| 			], | ||||
| 			"ssidAdminState": "enabled", | ||||
| 			"secureMode": "wpa2PSK", | ||||
| @@ -21,6 +20,7 @@ | ||||
| 			"keyRefresh": 0, | ||||
| 			"noLocalSubnets": false, | ||||
| 			"radiusServiceName": null, | ||||
| 			"radiusAccountingServiceName": null, | ||||
| 			"captivePortalId": null, | ||||
| 			"bandwidthLimitDown": 0, | ||||
| 			"bandwidthLimitUp": 0, | ||||
| @@ -59,25 +59,23 @@ | ||||
| 			"forwardMode": null, | ||||
| 			"profileType": "ssid" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1602113058718, | ||||
| 		"lastModifiedTimestamp": 1602113059547, | ||||
| 		"createdTimestamp": 1605711164949, | ||||
| 		"lastModifiedTimestamp": 1605711223372, | ||||
| 		"childProfileIds": [ | ||||
| 			10 | ||||
| 			24 | ||||
| 		] | ||||
| 	}, | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 11, | ||||
| 		"id": 16, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "ssid", | ||||
| 		"name": "TipWlan-cloud-3-radios", | ||||
| 		"name": "TipWlan-cloud-hotspot-osu", | ||||
| 		"details": { | ||||
| 			"model_type": "SsidConfiguration", | ||||
| 			"ssid": "TipWlan-cloud-3-radios", | ||||
| 			"ssid": "TipWlan-cloud-hotspot-osu", | ||||
| 			"appliedRadios": [ | ||||
| 				"is5GHzL", | ||||
| 				"is2dot4GHz", | ||||
| 				"is5GHzU" | ||||
| 				"is2dot4GHz" | ||||
| 			], | ||||
| 			"ssidAdminState": "enabled", | ||||
| 			"secureMode": "open", | ||||
| @@ -87,6 +85,7 @@ | ||||
| 			"keyRefresh": 0, | ||||
| 			"noLocalSubnets": false, | ||||
| 			"radiusServiceName": null, | ||||
| 			"radiusAccountingServiceName": null, | ||||
| 			"captivePortalId": null, | ||||
| 			"bandwidthLimitDown": 0, | ||||
| 			"bandwidthLimitUp": 0, | ||||
| @@ -125,10 +124,11 @@ | ||||
| 			"forwardMode": null, | ||||
| 			"profileType": "ssid" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1602183994766, | ||||
| 		"lastModifiedTimestamp": 1602183994766, | ||||
| 		"createdTimestamp": 1605711164950, | ||||
| 		"lastModifiedTimestamp": 1605711171732, | ||||
| 		"childProfileIds": [ | ||||
| 			10 | ||||
| 			19, | ||||
| 			20 | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
|   | ||||
| @@ -1,42 +1,43 @@ | ||||
| [ | ||||
|     { | ||||
|         "model_type": "Profile", | ||||
|         "id": 7, | ||||
|         "customerId": 2, | ||||
|         "profileType": "venue", | ||||
|         "name": "TipWlan-Hotspot20-Venue", | ||||
|         "details": { | ||||
|             "model_type": "VenueProfile", | ||||
|             "venueNameSet": [ | ||||
|                 { | ||||
|                     "model_type": "VenueName", | ||||
|                     "locale": "fr_CA", | ||||
|                     "dupleIso3Language": "fra", | ||||
|                     "dupleName": "Exemple de lieu", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "venueUrl": "http://www.example.com/info-fra", | ||||
|                     "asDuple": "fra:Exemple de lieu" | ||||
|                 }, | ||||
|                 { | ||||
|                     "model_type": "VenueName", | ||||
|                     "locale": "en_CA", | ||||
|                     "dupleIso3Language": "eng", | ||||
|                     "dupleName": "Example venue", | ||||
|                     "defaultDupleSeparator": ":", | ||||
|                     "venueUrl": "http://www.example.com/info-eng", | ||||
|                     "asDuple": "eng:Example venue" | ||||
|                 } | ||||
|             ], | ||||
|             "venueTypeAssignment": { | ||||
|                 "model_type": "VenueTypeAssignment", | ||||
|                 "venueDescription": "Research and Development Facility", | ||||
|                 "venueGroupId": 2, | ||||
|                 "venueTypeId": 8 | ||||
|             }, | ||||
|             "profileType": "venue" | ||||
|         }, | ||||
|         "createdTimestamp": 1602113058725, | ||||
|         "lastModifiedTimestamp": 1602113058725, | ||||
|         "childProfileIds": [] | ||||
|     } | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 18, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "passpoint_venue", | ||||
| 		"name": "TipWlan-Hotspot20-Venue", | ||||
| 		"details": { | ||||
| 			"model_type": "PasspointVenueProfile", | ||||
| 			"venueNameSet": [ | ||||
| 				{ | ||||
| 					"model_type": "PasspointVenueName", | ||||
| 					"locale": "fr_CA", | ||||
| 					"dupleIso3Language": "fra", | ||||
| 					"dupleName": "Exemple de lieu", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"venueUrl": "http://www.example.com/info-fra", | ||||
| 					"asDuple": "fra:Exemple de lieu" | ||||
| 				}, | ||||
| 				{ | ||||
| 					"model_type": "PasspointVenueName", | ||||
| 					"locale": "en_CA", | ||||
| 					"dupleIso3Language": "eng", | ||||
| 					"dupleName": "Example passpoint_venue", | ||||
| 					"defaultDupleSeparator": ":", | ||||
| 					"venueUrl": "http://www.example.com/info-eng", | ||||
| 					"asDuple": "eng:Example passpoint_venue" | ||||
| 				} | ||||
| 			], | ||||
| 			"venueTypeAssignment": { | ||||
| 				"model_type": "ProfileVenueTypeAssignment", | ||||
| 				"venueDescription": "Research and Development Facility", | ||||
| 				"venueGroupId": 2, | ||||
| 				"venueTypeId": 8 | ||||
| 			}, | ||||
| 			"profileType": "passpoint_venue" | ||||
| 		}, | ||||
| 		"createdTimestamp": 1605711164956, | ||||
| 		"lastModifiedTimestamp": 1605711164956, | ||||
| 		"childProfileIds": [ | ||||
| 		] | ||||
| 	} | ||||
| ] | ||||
| @@ -23,7 +23,16 @@ | ||||
| 			<artifactId>opensync-ext-interface</artifactId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</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> | ||||
| 			<groupId>com.vmware.ovsdb</groupId> | ||||
| 			<artifactId>ovsdb-client</artifactId> | ||||
| @@ -37,12 +46,6 @@ | ||||
| 		</dependency> | ||||
|  | ||||
| 		<!-- MQTT dependencies BEGIN --> | ||||
| 		<dependency> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<artifactId>tip-wlan-opensync-protobuf</artifactId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
|  | ||||
| 		<dependency> | ||||
| 			<artifactId>service-metric-service-interface</artifactId> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
|   | ||||
| @@ -57,7 +57,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|     @org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.listenPort:6640}") | ||||
|     private int ovsdbListenPort; | ||||
|  | ||||
|     @org.springframework.beans.factory.annotation.Value("${tip.wlan.manager.collectionIntervalSec.deviceStats:120}") | ||||
|     @org.springframework.beans.factory.annotation.Value("${tip.wlan.manager.collectionIntervalSec.deviceStats:60}") | ||||
|     private long collectionIntervalSecDeviceStats; | ||||
|  | ||||
|     @org.springframework.beans.factory.annotation.Value("${tip.wlan.preventClientCnAlteration:false}") | ||||
| @@ -132,7 +132,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|  | ||||
|             } | ||||
|  | ||||
|  | ||||
|             @Override | ||||
|             public void disconnected(OvsdbClient ovsdbClient) { | ||||
|                 String remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress(); | ||||
| @@ -192,22 +191,21 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|         // connectedClients table | ||||
|         String apId = alterClientCnIfRequired(clientCn, connectNodeInfo); | ||||
|  | ||||
|         LOG.debug("Client connect for AP {}", apId); | ||||
|         LOG.debug("Client {} connect for AP {}", clientCn, apId); | ||||
|  | ||||
|         OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId); | ||||
|  | ||||
|         try { | ||||
|             ovsdbDao.provisionBridgePortInterface(ovsdbClient); | ||||
|         } catch (Exception e) { | ||||
|             LOG.warn("Could not provision Bridge->Port->Interface mapping.", e); | ||||
|         } | ||||
|         ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always | ||||
|         ovsdbDao.removeAllSsids(ovsdbClient); // always | ||||
|         ovsdbDao.removeWifiRrm(ovsdbClient); | ||||
|  | ||||
|         if (opensyncAPConfig != null) { | ||||
|             // cleanup existing | ||||
|             ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always | ||||
|             ovsdbDao.removeAllPasspointConfigs(ovsdbClient); | ||||
|             ovsdbDao.removeWifiRrm(ovsdbClient); | ||||
|             ovsdbDao.removeAllSsids(ovsdbClient, opensyncAPConfig); // always | ||||
|             ovsdbDao.removeAllGreTunnels(ovsdbClient, opensyncAPConfig); | ||||
|             // reconfigure | ||||
|             ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig); | ||||
|             ovsdbDao.configureInterfaces(ovsdbClient); | ||||
|             ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig); | ||||
|             ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig); | ||||
|             ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig); | ||||
|             if (opensyncAPConfig.getHotspotConfig() != null) { | ||||
| @@ -217,8 +215,19 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|             if (((ApNetworkConfiguration) opensyncAPConfig.getApProfile().getDetails()).getSyntheticClientEnabled()) { | ||||
|                 ovsdbDao.enableNetworkProbeForSyntheticClient(ovsdbClient); | ||||
|             } | ||||
|         } else { | ||||
|             ovsdbDao.removeAllPasspointConfigs(ovsdbClient); | ||||
|             ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always | ||||
|             ovsdbDao.removeWifiRrm(ovsdbClient); | ||||
|             ovsdbDao.removeAllSsids(ovsdbClient); // always | ||||
|             ovsdbDao.removeAllGreTunnels(ovsdbClient, null); | ||||
|         } | ||||
|  | ||||
|         if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) { | ||||
|             ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats); | ||||
|         } | ||||
|  | ||||
|          | ||||
|         LOG.debug("Client connect Done"); | ||||
|         return connectNodeInfo; | ||||
|     } | ||||
| @@ -261,20 +270,24 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|             LOG.warn("AP with id " + apId + " does not have a config to apply."); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         ovsdbDao.removeAllSsids(ovsdbClient); // always | ||||
|         ovsdbDao.removeWifiRrm(ovsdbClient); | ||||
|         ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always | ||||
|         ovsdbDao.removeAllPasspointConfigs(ovsdbClient); | ||||
|         ovsdbDao.removeWifiRrm(ovsdbClient); | ||||
|         ovsdbDao.removeAllSsids(ovsdbClient, opensyncAPConfig); // always | ||||
|         ovsdbDao.removeAllGreTunnels(ovsdbClient, opensyncAPConfig); | ||||
|  | ||||
|         ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig); | ||||
|         ovsdbDao.configureInterfaces(ovsdbClient); | ||||
|         ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig); | ||||
|         ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig); | ||||
|         ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig); | ||||
|         if (opensyncAPConfig.getHotspotConfig() != null) { | ||||
|             ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig); | ||||
|         } | ||||
|         ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig); | ||||
|  | ||||
|         if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) { | ||||
|             ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats); | ||||
|         } | ||||
|         LOG.debug("Finished processConfigChanged for {}", apId); | ||||
|  | ||||
|     } | ||||
| @@ -354,7 +367,8 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|  | ||||
|         CompletableFuture<TableUpdates> awCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, | ||||
|                 OvsdbDao.dhcpLeasedIpDbTable + "_" + key, | ||||
|                 new MonitorRequests(ImmutableMap.of(OvsdbDao.dhcpLeasedIpDbTable, new MonitorRequest())), | ||||
|                 new MonitorRequests(ImmutableMap.of(OvsdbDao.dhcpLeasedIpDbTable, | ||||
|                         new MonitorRequest(new MonitorSelect(true, true, true, true)))), | ||||
|                 new MonitorCallback() { | ||||
|  | ||||
|                     @Override | ||||
| @@ -419,15 +433,12 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|  | ||||
|                     } | ||||
|  | ||||
|  | ||||
|                 }); | ||||
|  | ||||
|         awCf.join(); | ||||
|  | ||||
|  | ||||
|     } | ||||
|  | ||||
|  | ||||
|     private void monitorCommandStateDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException { | ||||
|  | ||||
|         CompletableFuture<TableUpdates> csCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, | ||||
| @@ -444,7 +455,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|                         List<Map<String, String>> delete = new ArrayList<>(); | ||||
|                         List<Map<String, String>> update = new ArrayList<>(); | ||||
|  | ||||
|  | ||||
|                         for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) { | ||||
|                             for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) { | ||||
|  | ||||
| @@ -498,18 +508,16 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|  | ||||
|                     } | ||||
|  | ||||
|  | ||||
|                 }); | ||||
|  | ||||
|         csCf.join(); | ||||
|  | ||||
|  | ||||
|     } | ||||
|  | ||||
|     private void monitorAwlanNodeDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException { | ||||
|         CompletableFuture<TableUpdates> awCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, | ||||
|                 OvsdbDao.awlanNodeDbTable + "_" + key, | ||||
|                 new MonitorRequests(ImmutableMap.of(OvsdbDao.awlanNodeDbTable, new MonitorRequest())), | ||||
|                 new MonitorRequests(ImmutableMap.of(OvsdbDao.awlanNodeDbTable, new MonitorRequest(new MonitorSelect(true, false, false, true)))), | ||||
|                 new MonitorCallback() { | ||||
|  | ||||
|                     @Override | ||||
| @@ -558,7 +566,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|  | ||||
|                         } | ||||
|  | ||||
|  | ||||
|                         // now address the update/add | ||||
|                         extIntegrationInterface.wifiAssociatedClientsDbTableUpdate(associatedClients, key); | ||||
|  | ||||
| @@ -568,50 +575,48 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|  | ||||
|         acCf.join(); | ||||
|  | ||||
|  | ||||
|     } | ||||
|  | ||||
|     private void monitorWifiInetStateDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException { | ||||
|         CompletableFuture<TableUpdates> isCf = ovsdbClient | ||||
|                 .monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiInetStateDbTable + "_" + key, | ||||
|                         new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiInetStateDbTable, | ||||
|                                 new MonitorRequest(new MonitorSelect(false, true, true, true)))), | ||||
|                         new MonitorCallback() { | ||||
|         CompletableFuture<TableUpdates> isCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, | ||||
|                 OvsdbDao.wifiInetStateDbTable + "_" + key, | ||||
|                 new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiInetStateDbTable, | ||||
|                         new MonitorRequest(new MonitorSelect(true, true, true, true)))), | ||||
|                 new MonitorCallback() { | ||||
|  | ||||
|                             @Override | ||||
|                             public void update(TableUpdates tableUpdates) { | ||||
|                                 LOG.info(OvsdbDao.ovsdbName, | ||||
|                                         OvsdbDao.wifiInetStateDbTable + "_" + key + " monitor callback received {}", | ||||
|                                         tableUpdates); | ||||
|                     @Override | ||||
|                     public void update(TableUpdates tableUpdates) { | ||||
|                         LOG.info(OvsdbDao.ovsdbName, | ||||
|                                 OvsdbDao.wifiInetStateDbTable + "_" + key + " monitor callback received {}", | ||||
|                                 tableUpdates); | ||||
|  | ||||
|                                 List<OpensyncAPInetState> inetStateInsertOrUpdate = new ArrayList<>(); | ||||
|                                 List<OpensyncAPInetState> inetStateDelete = new ArrayList<>(); | ||||
|                         List<OpensyncAPInetState> inetStateInsertOrUpdate = new ArrayList<>(); | ||||
|                         List<OpensyncAPInetState> inetStateDelete = new ArrayList<>(); | ||||
|  | ||||
|                                 for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) { | ||||
|                         for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) { | ||||
|  | ||||
|                                     for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) { | ||||
|                             for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) { | ||||
|  | ||||
|                                         if (rowUpdate.getNew() == null) { | ||||
|                                             inetStateDelete.addAll(ovsdbDao | ||||
|                                                     .getOpensyncApInetStateForRowUpdate(rowUpdate, key, ovsdbClient)); | ||||
|                                         } else { | ||||
|                                             inetStateInsertOrUpdate.addAll(ovsdbDao | ||||
|                                                     .getOpensyncApInetStateForRowUpdate(rowUpdate, key, ovsdbClient)); | ||||
|                                         } | ||||
|  | ||||
|                                     } | ||||
|                                 if (rowUpdate.getNew() == null) { | ||||
|                                     inetStateDelete.addAll( | ||||
|                                             ovsdbDao.getOpensyncApInetStateForRowUpdate(rowUpdate, key, ovsdbClient)); | ||||
|                                 } else { | ||||
|                                     inetStateInsertOrUpdate.addAll( | ||||
|                                             ovsdbDao.getOpensyncApInetStateForRowUpdate(rowUpdate, key, ovsdbClient)); | ||||
|                                 } | ||||
|  | ||||
|  | ||||
|                                 // delete first | ||||
|                                 extIntegrationInterface.wifiInetStateDbTableUpdate(inetStateDelete, key); | ||||
|  | ||||
|                                 // now process updates and mutations | ||||
|                                 extIntegrationInterface.wifiInetStateDbTableUpdate(inetStateInsertOrUpdate, key); | ||||
|  | ||||
|                             } | ||||
|                         } | ||||
|  | ||||
|                         }); | ||||
|                         // delete first | ||||
|                         extIntegrationInterface.wifiInetStateDbTableUpdate(inetStateDelete, key); | ||||
|  | ||||
|                         // now process updates and mutations | ||||
|                         extIntegrationInterface.wifiInetStateDbTableUpdate(inetStateInsertOrUpdate, key); | ||||
|  | ||||
|                     } | ||||
|  | ||||
|                 }); | ||||
|         isCf.join(); | ||||
|  | ||||
|     } | ||||
| @@ -620,7 +625,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|  | ||||
|         CompletableFuture<TableUpdates> rsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, | ||||
|                 OvsdbDao.wifiRadioStateDbTable + "_" + key, | ||||
|                 new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiRadioStateDbTable, new MonitorRequest())), | ||||
|                 new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiRadioStateDbTable, new MonitorRequest(new MonitorSelect(true, false, false, true)))), | ||||
|                 new MonitorCallback() { | ||||
|  | ||||
|                     @Override | ||||
| @@ -641,7 +646,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|  | ||||
|         CompletableFuture<TableUpdates> vsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, | ||||
|                 OvsdbDao.wifiVifStateDbTable + "_" + key, | ||||
|                 new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiVifStateDbTable, new MonitorRequest())), | ||||
|                 new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiVifStateDbTable, new MonitorRequest(new MonitorSelect(true, true, true, true)))), | ||||
|                 new MonitorCallback() { | ||||
|  | ||||
|                     @Override | ||||
| @@ -680,7 +685,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|  | ||||
|                         } | ||||
|  | ||||
|  | ||||
|                     } | ||||
|  | ||||
|                 }); | ||||
| @@ -723,14 +727,10 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|     @Override | ||||
|     public String processFirmwareFlash(String apId, String firmwareVersion, String username) { | ||||
|         OvsdbSession session = ovsdbSessionMapInterface.getSession(apId); | ||||
|         OvsdbClient ovsdbClient = session.getOvsdbClient(); | ||||
|         try { | ||||
|             ovsdbDao.configureFirmwareFlash(session.getOvsdbClient(), apId, firmwareVersion, username); | ||||
|         } catch (Exception e) { | ||||
|             LOG.error("Failed to flash firmware for " + apId + " " + e.getLocalizedMessage()); | ||||
|             monitorOvsdbStateTables(ovsdbClient, apId); // turn back on so we | ||||
|                                                         // can go forward and | ||||
|                                                         // recover | ||||
|             return "Failed to flash firmware for " + apId + " " + e.getLocalizedMessage(); | ||||
|  | ||||
|         } | ||||
| @@ -839,7 +839,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | ||||
|             return "failed to trigger a factory reset of AP " + apId; | ||||
|         } | ||||
|  | ||||
|  | ||||
|     } | ||||
|  | ||||
|     public String alterClientCnIfRequired(String clientCn, ConnectNodeInfo connectNodeInfo) { | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,5 +1,7 @@ | ||||
| package com.telecominfraproject.wlan.opensync.ovsdb.dao.models; | ||||
|  | ||||
| import java.util.Map; | ||||
|  | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||
|  | ||||
| public class WifiInetConfigInfo implements Cloneable{ | ||||
| @@ -17,22 +19,126 @@ public class WifiInetConfigInfo implements Cloneable{ | ||||
| 	public String inetAddr; | ||||
| 	public int mtu; | ||||
| 	public String netmask; | ||||
| 	public String gateway; | ||||
| 	public Map<String,String> dns; | ||||
| 	public Map<String,String> dhcpd; | ||||
|  | ||||
|      | ||||
|     @Override | ||||
|     public WifiInetConfigInfo clone() { | ||||
|         try { | ||||
|             WifiInetConfigInfo ret = (WifiInetConfigInfo)super.clone(); | ||||
|             if (dns != null) ret.dns = this.dns; | ||||
|             if (dhcpd != null) ret.dhcpd = this.dhcpd; | ||||
|             return ret; | ||||
|         }catch(CloneNotSupportedException e) {                 | ||||
|             throw new IllegalStateException("Cannot clone ", e); | ||||
|         }             | ||||
|     } | ||||
|  | ||||
|      | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return String.format( | ||||
|                 "WifiInetConfigInfo [nat=%s, broadcast=%s, enabled=%s, ifName=%s, ifType=%s, ipAssignScheme=%s, network=%s, uuid=%s, inetAddr=%s, mtu=%s, netmask=%s, vlanId=%s]", | ||||
|                 nat, broadcast, enabled, ifName, ifType, ipAssignScheme, network, uuid,inetAddr, mtu, netmask, vlanId); | ||||
|     } | ||||
| 	public int hashCode() { | ||||
| 		final int prime = 31; | ||||
| 		int result = 1; | ||||
| 		result = prime * result + ((broadcast == null) ? 0 : broadcast.hashCode()); | ||||
| 		result = prime * result + ((dhcpd == null) ? 0 : dhcpd.hashCode()); | ||||
| 		result = prime * result + ((dns == null) ? 0 : dns.hashCode()); | ||||
| 		result = prime * result + (enabled ? 1231 : 1237); | ||||
| 		result = prime * result + ((gateway == null) ? 0 : gateway.hashCode()); | ||||
| 		result = prime * result + ((ifName == null) ? 0 : ifName.hashCode()); | ||||
| 		result = prime * result + ((ifType == null) ? 0 : ifType.hashCode()); | ||||
| 		result = prime * result + ((inetAddr == null) ? 0 : inetAddr.hashCode()); | ||||
| 		result = prime * result + ((ipAssignScheme == null) ? 0 : ipAssignScheme.hashCode()); | ||||
| 		result = prime * result + mtu; | ||||
| 		result = prime * result + (nat ? 1231 : 1237); | ||||
| 		result = prime * result + ((netmask == null) ? 0 : netmask.hashCode()); | ||||
| 		result = prime * result + (network ? 1231 : 1237); | ||||
| 		result = prime * result + ((uuid == null) ? 0 : uuid.hashCode()); | ||||
| 		result = prime * result + vlanId; | ||||
| 		return result; | ||||
| 	} | ||||
|  | ||||
|  | ||||
| 	@Override | ||||
| 	public boolean equals(Object obj) { | ||||
| 		if (this == obj) | ||||
| 			return true; | ||||
| 		if (obj == null) | ||||
| 			return false; | ||||
| 		if (getClass() != obj.getClass()) | ||||
| 			return false; | ||||
| 		WifiInetConfigInfo other = (WifiInetConfigInfo) obj; | ||||
| 		if (broadcast == null) { | ||||
| 			if (other.broadcast != null) | ||||
| 				return false; | ||||
| 		} else if (!broadcast.equals(other.broadcast)) | ||||
| 			return false; | ||||
| 		if (dhcpd == null) { | ||||
| 			if (other.dhcpd != null) | ||||
| 				return false; | ||||
| 		} else if (!dhcpd.equals(other.dhcpd)) | ||||
| 			return false; | ||||
| 		if (dns == null) { | ||||
| 			if (other.dns != null) | ||||
| 				return false; | ||||
| 		} else if (!dns.equals(other.dns)) | ||||
| 			return false; | ||||
| 		if (enabled != other.enabled) | ||||
| 			return false; | ||||
| 		if (gateway == null) { | ||||
| 			if (other.gateway != null) | ||||
| 				return false; | ||||
| 		} else if (!gateway.equals(other.gateway)) | ||||
| 			return false; | ||||
| 		if (ifName == null) { | ||||
| 			if (other.ifName != null) | ||||
| 				return false; | ||||
| 		} else if (!ifName.equals(other.ifName)) | ||||
| 			return false; | ||||
| 		if (ifType == null) { | ||||
| 			if (other.ifType != null) | ||||
| 				return false; | ||||
| 		} else if (!ifType.equals(other.ifType)) | ||||
| 			return false; | ||||
| 		if (inetAddr == null) { | ||||
| 			if (other.inetAddr != null) | ||||
| 				return false; | ||||
| 		} else if (!inetAddr.equals(other.inetAddr)) | ||||
| 			return false; | ||||
| 		if (ipAssignScheme == null) { | ||||
| 			if (other.ipAssignScheme != null) | ||||
| 				return false; | ||||
| 		} else if (!ipAssignScheme.equals(other.ipAssignScheme)) | ||||
| 			return false; | ||||
| 		if (mtu != other.mtu) | ||||
| 			return false; | ||||
| 		if (nat != other.nat) | ||||
| 			return false; | ||||
| 		if (netmask == null) { | ||||
| 			if (other.netmask != null) | ||||
| 				return false; | ||||
| 		} else if (!netmask.equals(other.netmask)) | ||||
| 			return false; | ||||
| 		if (network != other.network) | ||||
| 			return false; | ||||
| 		if (uuid == null) { | ||||
| 			if (other.uuid != null) | ||||
| 				return false; | ||||
| 		} else if (!uuid.equals(other.uuid)) | ||||
| 			return false; | ||||
| 		if (vlanId != other.vlanId) | ||||
| 			return false; | ||||
| 		return true; | ||||
| 	} | ||||
|  | ||||
|  | ||||
| 	@Override | ||||
| 	public String toString() { | ||||
| 		return "WifiInetConfigInfo [nat=" + nat + ", enabled=" + enabled + ", ifName=" + ifName + ", ifType=" + ifType | ||||
| 				+ ", ipAssignScheme=" + ipAssignScheme + ", network=" + network + ", uuid=" + uuid + ", vlanId=" | ||||
| 				+ vlanId + ", broadcast=" + broadcast + ", inetAddr=" + inetAddr + ", mtu=" + mtu + ", netmask=" | ||||
| 				+ netmask + ", gateway=" + gateway + ", dns=" + dns + ", dhcpd=" + dhcpd + "]"; | ||||
| 	} | ||||
|      | ||||
| } | ||||
| @@ -3,6 +3,7 @@ package com.telecominfraproject.wlan.opensync.ovsdb.dao.models; | ||||
| import java.util.HashMap; | ||||
| import java.util.HashSet; | ||||
| import java.util.Map; | ||||
| import java.util.Objects; | ||||
| import java.util.Set; | ||||
|  | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||
| @@ -44,6 +45,30 @@ public class WifiRadioConfigInfo implements Cloneable { | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
|     public int hashCode() { | ||||
|         return Objects.hash(beaconInterval, channel, channelMode, country, enabled, freqBand, htMode, hwConfig, hwType, | ||||
|                 ifName, txPower, uuid, vifConfigUuids); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) { | ||||
|             return true; | ||||
|         } | ||||
|         if (!(obj instanceof WifiRadioConfigInfo)) { | ||||
|             return false; | ||||
|         } | ||||
|         WifiRadioConfigInfo other = (WifiRadioConfigInfo) obj; | ||||
|         return beaconInterval == other.beaconInterval && channel == other.channel | ||||
|                 && Objects.equals(channelMode, other.channelMode) && Objects.equals(country, other.country) | ||||
|                 && enabled == other.enabled && Objects.equals(freqBand, other.freqBand) | ||||
|                 && Objects.equals(htMode, other.htMode) && Objects.equals(hwConfig, other.hwConfig) | ||||
|                 && Objects.equals(hwType, other.hwType) && Objects.equals(ifName, other.ifName) | ||||
|                 && Objects.equals(txPower, other.txPower) && Objects.equals(uuid, other.uuid) | ||||
|                 && Objects.equals(vifConfigUuids, other.vifConfigUuids); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| 	public String toString() { | ||||
| 		return String.format( | ||||
| 				"WifiRadioConfigInfo [vifConfigUuids=%s, freqBand=%s, channel=%s, txPower=%s, channelMode=%s, enabled=%s, htMode=%s, hwConfig=%s, hwType=%s, country=%s, bcn_int=%s, ifName=%s, uuid=%s]", | ||||
|   | ||||
| @@ -1,7 +1,9 @@ | ||||
| package com.telecominfraproject.wlan.opensync.ovsdb.dao.models; | ||||
|  | ||||
| import java.util.HashMap; | ||||
| import java.util.HashSet; | ||||
| import java.util.Map; | ||||
| import java.util.Objects; | ||||
| import java.util.Set; | ||||
|  | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||
| @@ -38,12 +40,41 @@ public class WifiVifConfigInfo implements Cloneable{ | ||||
|             if(security!=null) { | ||||
|                 ret.security = new HashMap<>(this.security); | ||||
|             } | ||||
|             if (macList!=null) { | ||||
|                 ret.macList = new HashSet<>(this.macList); | ||||
|             } | ||||
|             return ret; | ||||
|         }catch(CloneNotSupportedException e) {                 | ||||
|             throw new IllegalStateException("Cannot clone ", e); | ||||
|         }             | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         return Objects.hash(apBridge, bridge, btm, enabled, ftMobilityDomain, ftPsk, groupRekey, ifName, macList, | ||||
|                 macListType, minHwMode, mode, rrm, security, ssid, ssidBroadcast, uapsdEnable, uuid, vifRadioIdx, | ||||
|                 vlanId); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) { | ||||
|             return true; | ||||
|         } | ||||
|         if (!(obj instanceof WifiVifConfigInfo)) { | ||||
|             return false; | ||||
|         } | ||||
|         WifiVifConfigInfo other = (WifiVifConfigInfo) obj; | ||||
|         return Objects.equals(apBridge, other.apBridge) && Objects.equals(bridge, other.bridge) && btm == other.btm | ||||
|                 && enabled == other.enabled && ftMobilityDomain == other.ftMobilityDomain && ftPsk == other.ftPsk | ||||
|                 && groupRekey == other.groupRekey && Objects.equals(ifName, other.ifName) | ||||
|                 && Objects.equals(macList, other.macList) && Objects.equals(macListType, other.macListType) | ||||
|                 && Objects.equals(minHwMode, other.minHwMode) && Objects.equals(mode, other.mode) && rrm == other.rrm | ||||
|                 && Objects.equals(security, other.security) && Objects.equals(ssid, other.ssid) | ||||
|                 && Objects.equals(ssidBroadcast, other.ssidBroadcast) && uapsdEnable == other.uapsdEnable | ||||
|                 && Objects.equals(uuid, other.uuid) && vifRadioIdx == other.vifRadioIdx && vlanId == other.vlanId; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return String.format( | ||||
|   | ||||
| @@ -5,7 +5,7 @@ import com.telecominfraproject.wlan.core.model.equipment.RadioType; | ||||
| import com.telecominfraproject.wlan.core.model.equipment.SecurityType; | ||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo; | ||||
| 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.models.ServiceMetricDataType; | ||||
| 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) { | ||||
|             case FULL: | ||||
|                 return "full"; | ||||
|   | ||||
| @@ -126,7 +126,7 @@ public class OpensyncGatewayTipWlanOvsdbClientTest { | ||||
|         Mockito.verify(ovsdbSessionMapInterface).getSession("Test_Client_21P10C68818122"); | ||||
|         Mockito.verify(ovsdbSession).getOvsdbClient(); | ||||
|         Mockito.verify(opensyncExternalIntegrationInterface).getApConfig("Test_Client_21P10C68818122"); | ||||
|         Mockito.verify(ovsdbDao).removeAllSsids(ovsdbClient); | ||||
|         Mockito.verify(ovsdbDao).removeAllSsids(ovsdbClient, apConfig); | ||||
|         Mockito.verify(ovsdbDao).removeAllStatsConfigs(ovsdbClient); | ||||
|         Mockito.verify(ovsdbDao).configureWifiRadios(ovsdbClient, apConfig); | ||||
|         Mockito.verify(ovsdbDao).configureSsids(ovsdbClient, apConfig); | ||||
|   | ||||
| @@ -1,11 +1,15 @@ | ||||
| package com.telecominfraproject.wlan.opensync.ovsdb.dao; | ||||
|  | ||||
| import static org.junit.Assert.assertFalse; | ||||
| import static org.junit.Assert.assertNotNull; | ||||
| import static org.junit.Assert.assertNull; | ||||
|  | ||||
| import java.io.File; | ||||
| import java.net.InetAddress; | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.Set; | ||||
| import java.util.UUID; | ||||
| import java.util.concurrent.CompletableFuture; | ||||
| import java.util.concurrent.TimeUnit; | ||||
| @@ -27,21 +31,19 @@ import org.springframework.context.annotation.Configuration; | ||||
| import org.springframework.context.annotation.Import; | ||||
| import org.springframework.test.context.ActiveProfiles; | ||||
| import org.springframework.test.context.junit4.SpringRunner; | ||||
| import org.springframework.util.ResourceUtils; | ||||
|  | ||||
| import com.fasterxml.jackson.databind.JsonNode; | ||||
| import com.github.fge.jackson.JsonLoader; | ||||
| import com.google.common.collect.ImmutableList; | ||||
| import com.google.common.collect.ImmutableMap; | ||||
| import com.telecominfraproject.wlan.location.models.Location; | ||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo; | ||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPInetState; | ||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState; | ||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState; | ||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig; | ||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPHotspot20Config; | ||||
| import com.telecominfraproject.wlan.profile.models.Profile; | ||||
| import com.telecominfraproject.wlan.profile.models.ProfileType; | ||||
| 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.jsonrpc.v1.util.JsonUtil; | ||||
| import com.vmware.ovsdb.protocol.methods.RowUpdate; | ||||
| import com.vmware.ovsdb.protocol.methods.TableUpdate; | ||||
| import com.vmware.ovsdb.protocol.methods.TableUpdates; | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Atom; | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Row; | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||
| @@ -50,18 +52,30 @@ import com.vmware.ovsdb.protocol.operation.result.ErrorResult; | ||||
| import com.vmware.ovsdb.protocol.operation.result.InsertResult; | ||||
| import com.vmware.ovsdb.protocol.operation.result.OperationResult; | ||||
| import com.vmware.ovsdb.protocol.operation.result.SelectResult; | ||||
| import com.vmware.ovsdb.protocol.schema.DatabaseSchema; | ||||
| import com.vmware.ovsdb.protocol.schema.TableSchema; | ||||
| import com.vmware.ovsdb.service.OvsdbClient; | ||||
|  | ||||
| @RunWith(SpringRunner.class) | ||||
| @ActiveProfiles(profiles = { "integration_test", }) // NOTE: these profiles will | ||||
|                                                     // be ADDED to the list of | ||||
|                                                     // active profiles | ||||
| // be ADDED to the list of | ||||
| // active profiles | ||||
| @SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = OvsdbDaoTest.class) | ||||
| @Import(value = { OvsdbDao.class, OvsdbDaoTest.Config.class, | ||||
|  | ||||
| }) | ||||
| public class OvsdbDaoTest { | ||||
|  | ||||
|     static final int DEFAULT_CUSTOMER_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_2 = 3; | ||||
|     private static final long SSID_PSK_ID = 4; | ||||
|     private static final long SSID_OSU_ID = 5; | ||||
|     private static final long OPERATOR_ID = 6; | ||||
|     private static final long VENUE_ID = 7; | ||||
|     private static final long EQUIPMENT_AP_ID = 8; | ||||
|     private static final String LAN_IF_TYPE = "bridge"; | ||||
|  | ||||
|     private static final String LAN_IF_NAME = "br-lan"; | ||||
| @@ -97,9 +111,12 @@ public class OvsdbDaoTest { | ||||
|     @Mock(answer = Answers.RETURNS_MOCKS) | ||||
|     OvsdbClient ovsdbClient; | ||||
|  | ||||
|     @Mock | ||||
|     @Mock(answer = Answers.RETURNS_MOCKS) | ||||
|     CompletableFuture<OperationResult[]> futureResult; | ||||
|  | ||||
|     @Mock(answer = Answers.RETURNS_MOCKS) | ||||
|     CompletableFuture<OperationResult[]> selectionFutureResult; | ||||
|  | ||||
|     @Autowired | ||||
|     OvsdbDao ovsdbDao; | ||||
|  | ||||
| @@ -108,6 +125,7 @@ public class OvsdbDaoTest { | ||||
|     @Configuration | ||||
|     // @PropertySource({ "classpath:persistence-${envTarget:dev}.properties" }) | ||||
|     static class Config { | ||||
|  | ||||
|         @Bean | ||||
|         public OvsdbDao ovsdbDao() { | ||||
|             return new OvsdbDao(); | ||||
| @@ -124,6 +142,306 @@ public class OvsdbDaoTest { | ||||
|         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 | ||||
|     public void testConfigureGreTunnels() 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.configureGreTunnels(ovsdbClient, apConfig); | ||||
|         // 1 call to check existence, 1 to add profile | ||||
|         Mockito.verify(ovsdbClient, Mockito.times(2)).transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList()); | ||||
|         Mockito.verify(apConfig, Mockito.times(3)).getApProfile(); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @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 | ||||
|     public void testConfigureHotspots() throws Exception { | ||||
|  | ||||
|         DatabaseSchema schemaMock = Mockito.mock(DatabaseSchema.class); | ||||
|         CompletableFuture<DatabaseSchema> schemaFuture = Mockito.mock(CompletableFuture.class); | ||||
|         Mockito.when(schemaFuture.get(Mockito.anyLong(), Mockito.any())).thenReturn(schemaMock); | ||||
|         HashMap<String, TableSchema> mapMock = Mockito.mock(HashMap.class); | ||||
|  | ||||
|         Mockito.when(mapMock.containsKey(Mockito.any())).thenReturn(true); | ||||
|         Mockito.when(mapMock.get(Mockito.any())).thenReturn(Mockito.mock(TableSchema.class)); | ||||
|         Mockito.when(schemaMock.getTables()).thenReturn(mapMock); | ||||
|         Mockito.when(ovsdbClient.getSchema(Mockito.anyString())).thenReturn(schemaFuture); | ||||
|  | ||||
|         OpensyncAPConfig apConfig = new OpensyncAPConfig(); | ||||
|         OpensyncAPHotspot20Config hsConfig = new OpensyncAPHotspot20Config(); | ||||
|  | ||||
|         Profile profileSsidPsk = OvsdbDaoTestUtilities.createPasspointAccessSsid(DEFAULT_CUSTOMER_ID); | ||||
|         profileSsidPsk.setId(SSID_PSK_ID); | ||||
|         Profile profileSsidOsu = OvsdbDaoTestUtilities.createPasspointOsuSsid(DEFAULT_CUSTOMER_ID); | ||||
|         profileSsidOsu.setId(SSID_OSU_ID); | ||||
|         Profile passpointOperatorProfile = OvsdbDaoTestUtilities.createPasspointOperatorProfile(DEFAULT_CUSTOMER_ID); | ||||
|         passpointOperatorProfile.setId(OPERATOR_ID); | ||||
|         Profile passpointVenueProfile = OvsdbDaoTestUtilities.createPasspointVenueProfile(DEFAULT_CUSTOMER_ID); | ||||
|         passpointVenueProfile.setId(VENUE_ID); | ||||
|         Profile hotspot20IdProviderProfile = new Profile(); | ||||
|         hotspot20IdProviderProfile.setId(HOTSPOT_PROVIDER_ID_1); | ||||
|         hotspot20IdProviderProfile = OvsdbDaoTestUtilities.createPasspointIdProviderProfile(DEFAULT_CUSTOMER_ID, | ||||
|                 hotspot20IdProviderProfile, "TipWlan-Hotspot20-OSU-Provider", "Rogers AT&T Wireless", "Canada", "ca", | ||||
|                 302, 720, "rogers.com", 1); | ||||
|         Profile hotspot20IdProviderProfile2 = new Profile(); | ||||
|         hotspot20IdProviderProfile2.setId(HOTSPOT_PROVIDER_ID_2); | ||||
|         hotspot20IdProviderProfile2 = OvsdbDaoTestUtilities.createPasspointIdProviderProfile(DEFAULT_CUSTOMER_ID, | ||||
|                 hotspot20IdProviderProfile2, "TipWlan-Hotspot20-OSU-Provider-2", "Telus Mobility", "Canada", "ca", 302, | ||||
|                 220, "telus.com", 1); | ||||
|  | ||||
|         profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile.getId()); | ||||
|         profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile2.getId()); | ||||
|  | ||||
|         Profile passpointHotspotConfig = OvsdbDaoTestUtilities.createPasspointHotspotConfig(DEFAULT_CUSTOMER_ID, | ||||
|                 hotspot20IdProviderProfile2, hotspot20IdProviderProfile, passpointOperatorProfile, | ||||
|                 passpointVenueProfile, profileSsidPsk, profileSsidOsu); | ||||
|         passpointHotspotConfig.setId(HOTSPOT_CONFIG_ID); | ||||
|  | ||||
|         Profile hotspotProfileAp = OvsdbDaoTestUtilities.createPasspointApProfile(DEFAULT_CUSTOMER_ID, profileSsidPsk, | ||||
|                 profileSsidOsu); | ||||
|         hotspotProfileAp.setId(EQUIPMENT_AP_ID); | ||||
|  | ||||
|         hsConfig.setHotspot20OperatorSet(Set.of(passpointOperatorProfile)); | ||||
|         hsConfig.setHotspot20ProviderSet(Set.of(hotspot20IdProviderProfile, hotspot20IdProviderProfile2)); | ||||
|         hsConfig.setHotspot20VenueSet(Set.of(passpointVenueProfile)); | ||||
|         hsConfig.setHotspot20ProfileSet(Set.of(passpointHotspotConfig)); | ||||
|  | ||||
|         apConfig.setHotspotConfig(hsConfig); | ||||
|  | ||||
|         apConfig.setApProfile(hotspotProfileAp); | ||||
|  | ||||
|         apConfig.setSsidProfile(List.of(profileSsidOsu, profileSsidPsk)); | ||||
|  | ||||
|         Mockito.when(futureResult.get(Mockito.anyLong(), Mockito.eq(TimeUnit.SECONDS))) | ||||
|                 .thenReturn(OvsdbDaoTestUtilities.hs20IconRows()).thenReturn(OvsdbDaoTestUtilities.hs20InsertIconRows()) | ||||
|                 .thenReturn(OvsdbDaoTestUtilities.hs20OsuProviders()).thenReturn(OvsdbDaoTestUtilities.hs20IconRows()) | ||||
|                 .thenReturn(OvsdbDaoTestUtilities.hs20IconRows()) | ||||
|                 .thenReturn(OvsdbDaoTestUtilities.hs20InsertProviderRows()) | ||||
|                 .thenReturn(OvsdbDaoTestUtilities.hs20Config()).thenReturn(OvsdbDaoTestUtilities.hs20OsuProviders()) | ||||
|                 .thenReturn(OvsdbDaoTestUtilities.vifConfigRows()).thenReturn(OvsdbDaoTestUtilities.vifConfigRows()) | ||||
|                 .thenReturn(OvsdbDaoTestUtilities.hs20Config()); | ||||
|  | ||||
|         Mockito.when(ovsdbClient.transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList())).thenReturn(futureResult); | ||||
|  | ||||
|         ovsdbDao.configureHotspots(ovsdbClient, apConfig); | ||||
|  | ||||
|         Mockito.verify(futureResult, Mockito.times(11)).get(Mockito.anyLong(), Mockito.eq(TimeUnit.SECONDS)); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testConfigureGreTunnelsWithNoLocalAddress() 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.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.configureGreTunnels(ovsdbClient, apConfig); | ||||
|         // 2 calls to check existence, 2 calls to insert tunnel (1 each per | ||||
|         // Profile) | ||||
|         Mockito.verify(ovsdbClient, Mockito.times(2)).transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList()); | ||||
|         Mockito.verify(apConfig, Mockito.times(3)).getApProfile(); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testConfigureGreTunnelsWithNoRemoteAddress() throws Exception { | ||||
|         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.setGreTunnelName("gre1"); | ||||
|         tunnelProfileDetails.setGreParentIfName("wan"); | ||||
|         apProfile.setDetails(tunnelProfileDetails); | ||||
|  | ||||
|         OpensyncAPConfig apConfig = Mockito.mock(OpensyncAPConfig.class); | ||||
|         Mockito.when(apConfig.getApProfile()).thenReturn(apProfile); | ||||
|         ovsdbDao.configureGreTunnels(ovsdbClient, apConfig); | ||||
|         // Should not create | ||||
|         Mockito.verify(ovsdbClient, Mockito.times(0)).transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList()); | ||||
|         Mockito.verify(apConfig, Mockito.times(3)).getApProfile(); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testConfigureGreTunnelsWithNoParentInterface() throws Exception { | ||||
|         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"); | ||||
|         apProfile.setDetails(tunnelProfileDetails); | ||||
|  | ||||
|         OpensyncAPConfig apConfig = Mockito.mock(OpensyncAPConfig.class); | ||||
|         Mockito.when(apConfig.getApProfile()).thenReturn(apProfile); | ||||
|         ovsdbDao.configureGreTunnels(ovsdbClient, apConfig); | ||||
|         // Should not create | ||||
|         Mockito.verify(ovsdbClient, Mockito.times(0)).transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList()); | ||||
|         Mockito.verify(apConfig, Mockito.times(3)).getApProfile(); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testConfigureGreTunnelsWithNoTunnelName() throws Exception { | ||||
|         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.setGreParentIfName("wan"); | ||||
|  | ||||
|         apProfile.setDetails(tunnelProfileDetails); | ||||
|  | ||||
|         OpensyncAPConfig apConfig = Mockito.mock(OpensyncAPConfig.class); | ||||
|         Mockito.when(apConfig.getApProfile()).thenReturn(apProfile); | ||||
|         ovsdbDao.configureGreTunnels(ovsdbClient, apConfig); | ||||
|         // Should not create | ||||
|         Mockito.verify(ovsdbClient, Mockito.times(0)).transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList()); | ||||
|         Mockito.verify(apConfig, Mockito.times(3)).getApProfile(); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testGetConnectNodeInfo() throws Exception { | ||||
|  | ||||
| @@ -207,7 +525,7 @@ public class OvsdbDaoTest { | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     @Test(expected = RuntimeException.class) | ||||
|     public void testFailGetConnectNodeInfo() throws Exception { | ||||
|  | ||||
|         Mockito.when(ovsdbClient.transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList())).thenReturn(futureResult); | ||||
| @@ -387,94 +705,6 @@ public class OvsdbDaoTest { | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testOvsdbDaoGetOpensyncAPVIFState() throws Exception { | ||||
|  | ||||
|         String path = "src/test/resources/Wifi_VIF_State-home-ap-24.json"; | ||||
|  | ||||
|         File file = new File(path); | ||||
|         String absolutePath = file.getAbsolutePath(); | ||||
|         File jsonFile = ResourceUtils.getFile(absolutePath); | ||||
|  | ||||
|         JsonNode jn = JsonLoader.fromFile(jsonFile); | ||||
|         Row row = JsonUtil.deserializeNoException(jn.toString(), Row.class); | ||||
|         RowUpdate rowUpdate = new RowUpdate(); | ||||
|         rowUpdate.setNew(row); | ||||
|  | ||||
|         path = "src/test/resources/Wifi_VIF_State-home-ap-l50.json"; | ||||
|         file = new File(path); | ||||
|         absolutePath = file.getAbsolutePath(); | ||||
|         jsonFile = ResourceUtils.getFile(absolutePath); | ||||
|         jn = JsonLoader.fromFile(jsonFile); | ||||
|         Row row1 = JsonUtil.deserializeNoException(jn.toString(), Row.class); | ||||
|  | ||||
|         RowUpdate rowUpdate1 = new RowUpdate(); | ||||
|         rowUpdate1.setNew(row1); | ||||
|  | ||||
|         path = "src/test/resources/Wifi_VIF_State-home-ap-u50.json"; | ||||
|         file = new File(path); | ||||
|         absolutePath = file.getAbsolutePath(); | ||||
|         jsonFile = ResourceUtils.getFile(absolutePath); | ||||
|         jn = JsonLoader.fromFile(jsonFile); | ||||
|         Row row2 = JsonUtil.deserializeNoException(jn.toString(), Row.class); | ||||
|  | ||||
|         RowUpdate rowUpdate2 = new RowUpdate(); | ||||
|         rowUpdate2.setNew(row2); | ||||
|  | ||||
|         List<OpensyncAPVIFState> vifStateList = ovsdbDao.getOpensyncApVifStateForRowUpdate(rowUpdate, "SomeAPId", ovsdbClient); | ||||
|         assert (vifStateList.size() == 1); | ||||
|         vifStateList.addAll(ovsdbDao.getOpensyncApVifStateForRowUpdate(rowUpdate1, "SomeAPId", ovsdbClient)); | ||||
|         assert (vifStateList.size() == 2); | ||||
|         vifStateList.addAll(ovsdbDao.getOpensyncApVifStateForRowUpdate(rowUpdate2, "SomeAPId", ovsdbClient)); | ||||
|         assert (vifStateList.size() == 3); | ||||
|  | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testOvsdbDaoGetOpensyncAPRadioState() throws Exception { | ||||
|  | ||||
|         String path = "src/test/resources/Wifi_Radio_State-home-ap-24.json"; | ||||
|  | ||||
|         File file = new File(path); | ||||
|         String absolutePath = file.getAbsolutePath(); | ||||
|         File jsonFile = ResourceUtils.getFile(absolutePath); | ||||
|  | ||||
|         JsonNode jn = JsonLoader.fromFile(jsonFile); | ||||
|         Row row = JsonUtil.deserializeNoException(jn.toString(), Row.class); | ||||
|         RowUpdate rowUpdate = new RowUpdate(); | ||||
|         rowUpdate.setNew(row); | ||||
|  | ||||
|         path = "src/test/resources/Wifi_Radio_State-home-ap-l50.json"; | ||||
|         file = new File(path); | ||||
|         absolutePath = file.getAbsolutePath(); | ||||
|         jsonFile = ResourceUtils.getFile(absolutePath); | ||||
|         jn = JsonLoader.fromFile(jsonFile); | ||||
|         Row row1 = JsonUtil.deserializeNoException(jn.toString(), Row.class); | ||||
|  | ||||
|         RowUpdate rowUpdate1 = new RowUpdate(); | ||||
|         rowUpdate1.setNew(row1); | ||||
|  | ||||
|         path = "src/test/resources/Wifi_Radio_State-home-ap-u50.json"; | ||||
|         file = new File(path); | ||||
|         absolutePath = file.getAbsolutePath(); | ||||
|         jsonFile = ResourceUtils.getFile(absolutePath); | ||||
|         jn = JsonLoader.fromFile(jsonFile); | ||||
|         Row row2 = JsonUtil.deserializeNoException(jn.toString(), Row.class); | ||||
|  | ||||
|         RowUpdate rowUpdate2 = new RowUpdate(); | ||||
|         rowUpdate2.setNew(row2); | ||||
|  | ||||
|         TableUpdate tableUpdate = new TableUpdate(ImmutableMap.of(row.getUuidColumn("_uuid").getUuid(), rowUpdate, | ||||
|                 row1.getUuidColumn("_uuid").getUuid(), rowUpdate1, row2.getUuidColumn("_uuid").getUuid(), rowUpdate2)); | ||||
|         TableUpdates tableUpdates = new TableUpdates(ImmutableMap.of(OvsdbDao.wifiRadioStateDbTable, tableUpdate)); | ||||
|  | ||||
|         List<OpensyncAPRadioState> radioStateList = ovsdbDao.getOpensyncAPRadioState(tableUpdates, "SomeAPId", | ||||
|                 ovsdbClient); | ||||
|         assert (radioStateList.size() == 3); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testObsdbDaoEnableNetworkProbe() throws Exception { | ||||
|  | ||||
| @@ -521,48 +751,7 @@ public class OvsdbDaoTest { | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testOvsdbDaoGetOpensyncAPInetState() throws Exception { | ||||
|  | ||||
|         String path = "src/test/resources/Wifi_Inet_State-home-ap-24.json"; | ||||
|  | ||||
|         File file = new File(path); | ||||
|         String absolutePath = file.getAbsolutePath(); | ||||
|         File jsonFile = ResourceUtils.getFile(absolutePath); | ||||
|  | ||||
|         JsonNode jn = JsonLoader.fromFile(jsonFile); | ||||
|         Row row = JsonUtil.deserializeNoException(jn.toString(), Row.class); | ||||
|         RowUpdate rowUpdate = new RowUpdate(); | ||||
|         rowUpdate.setNew(row); | ||||
|  | ||||
|         path = "src/test/resources/Wifi_Inet_State-home-ap-l50.json"; | ||||
|         file = new File(path); | ||||
|         absolutePath = file.getAbsolutePath(); | ||||
|         jsonFile = ResourceUtils.getFile(absolutePath); | ||||
|         jn = JsonLoader.fromFile(jsonFile); | ||||
|         Row row1 = JsonUtil.deserializeNoException(jn.toString(), Row.class); | ||||
|  | ||||
|         RowUpdate rowUpdate1 = new RowUpdate(); | ||||
|         rowUpdate1.setNew(row1); | ||||
|  | ||||
|         path = "src/test/resources/Wifi_Inet_State-home-ap-u50.json"; | ||||
|         file = new File(path); | ||||
|         absolutePath = file.getAbsolutePath(); | ||||
|         jsonFile = ResourceUtils.getFile(absolutePath); | ||||
|         jn = JsonLoader.fromFile(jsonFile); | ||||
|         Row row2 = JsonUtil.deserializeNoException(jn.toString(), Row.class); | ||||
|  | ||||
|         RowUpdate rowUpdate2 = new RowUpdate(); | ||||
|         rowUpdate2.setNew(row2); | ||||
|          | ||||
|         List<OpensyncAPInetState> inetStateList = ovsdbDao.getOpensyncApInetStateForRowUpdate(rowUpdate, "SomeAPId", ovsdbClient); | ||||
|         assert (inetStateList.size() == 1); | ||||
|         inetStateList.addAll(ovsdbDao.getOpensyncApInetStateForRowUpdate(rowUpdate1, "SomeAPId", ovsdbClient)); | ||||
|         assert (inetStateList.size() == 2); | ||||
|         inetStateList.addAll(ovsdbDao.getOpensyncApInetStateForRowUpdate(rowUpdate2, "SomeAPId", ovsdbClient)); | ||||
|         assert (inetStateList.size() == 3); | ||||
|  | ||||
|  | ||||
|     } | ||||
|     static Row[] hs20Icons = { | ||||
|  | ||||
|     }; | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,547 @@ | ||||
| package com.telecominfraproject.wlan.opensync.ovsdb.dao; | ||||
|  | ||||
| import java.net.InetAddress; | ||||
| import java.net.UnknownHostException; | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.HashSet; | ||||
| import java.util.List; | ||||
| import java.util.Locale; | ||||
| import java.util.Map; | ||||
| import java.util.Set; | ||||
| import java.util.UUID; | ||||
|  | ||||
| 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.ProfileType; | ||||
| import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration; | ||||
| import com.telecominfraproject.wlan.profile.passpoint.models.PasspointDuple; | ||||
| import com.telecominfraproject.wlan.profile.passpoint.models.PasspointMccMnc; | ||||
| import com.telecominfraproject.wlan.profile.passpoint.models.PasspointProfile; | ||||
| import com.telecominfraproject.wlan.profile.passpoint.models.operator.PasspointOperatorProfile; | ||||
| import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointNaiRealmInformation; | ||||
| import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointOsuIcon; | ||||
| import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointOsuProviderProfile; | ||||
| 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.ssid.models.SsidConfiguration; | ||||
| import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.SecureMode; | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Atom; | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Row; | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Value; | ||||
| import com.vmware.ovsdb.protocol.operation.result.InsertResult; | ||||
| import com.vmware.ovsdb.protocol.operation.result.OperationResult; | ||||
| import com.vmware.ovsdb.protocol.operation.result.SelectResult; | ||||
| import com.vmware.ovsdb.protocol.operation.result.UpdateResult; | ||||
|  | ||||
| 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) { | ||||
|  | ||||
|         profileSsidPsk = createPasspointAccessSsid(customerId); | ||||
|         profileSsidOsu = createPasspointOsuSsid(customerId); | ||||
|  | ||||
|         passpointOperatorProfile = createPasspointOperatorProfile(customerId); | ||||
|  | ||||
|         passpointVenueProfile = createPasspointVenueProfile(customerId); | ||||
|  | ||||
|         hotspot20IdProviderProfile = createPasspointIdProviderProfile(customerId, hotspot20IdProviderProfile, | ||||
|                 "TipWlan-Hotspot20-OSU-Provider", "Rogers AT&T Wireless", "Canada", "ca", 302, 720, "rogers.com", 1); | ||||
|  | ||||
|         hotspot20IdProviderProfile2 = createPasspointIdProviderProfile(customerId, hotspot20IdProviderProfile2, | ||||
|                 "TipWlan-Hotspot20-OSU-Provider-2", "Telus Mobility", "Canada", "ca", 302, 220, "telus.com", 1); | ||||
|  | ||||
|  | ||||
|         profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile.getId()); | ||||
|         profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile2.getId()); | ||||
|  | ||||
|         passpointHotspotConfig = createPasspointHotspotConfig(customerId, hotspot20IdProviderProfile2, | ||||
|                 hotspot20IdProviderProfile, passpointOperatorProfile, passpointVenueProfile, profileSsidPsk, | ||||
|                 profileSsidOsu); | ||||
|  | ||||
|         hotspotProfileAp = createPasspointApProfile(customerId, profileSsidPsk, profileSsidOsu); | ||||
|     } | ||||
|  | ||||
|     static Profile createPasspointHotspotConfig(int customerId, Profile hotspot20IdProviderProfile2, | ||||
|             Profile hotspot20IdProviderProfile, Profile passpointOperatorProfile, Profile passpointVenueProfile, | ||||
|             Profile profileSsidPsk, Profile profileSsidOpen) { | ||||
|         Profile passpointHotspotConfig; | ||||
|         passpointHotspotConfig = new Profile(); | ||||
|         passpointHotspotConfig.setCustomerId(customerId); | ||||
|         passpointHotspotConfig.setName("TipWlan-Hotspot20-Config"); | ||||
|         passpointHotspotConfig.setProfileType(ProfileType.passpoint); | ||||
|         Set<Long> passpointHotspotConfigChildIds = new HashSet<>(); | ||||
|         passpointHotspotConfigChildIds.add(passpointOperatorProfile.getId()); | ||||
|         passpointHotspotConfigChildIds.add(passpointVenueProfile.getId()); | ||||
|         passpointHotspotConfigChildIds.add(hotspot20IdProviderProfile.getId()); | ||||
|         passpointHotspotConfigChildIds.add(hotspot20IdProviderProfile2.getId()); | ||||
|         passpointHotspotConfig.setChildProfileIds(passpointHotspotConfigChildIds); | ||||
|         passpointHotspotConfig.setDetails(PasspointProfile.createWithDefaults()); | ||||
|         Set<String> providerNames = new HashSet<>(); | ||||
|         providerNames.add(hotspot20IdProviderProfile.getName()); | ||||
|         providerNames.add(hotspot20IdProviderProfile2.getName()); | ||||
|         ((PasspointProfile) passpointHotspotConfig.getDetails()).setIdProviderProfileNames(providerNames); | ||||
|         ((PasspointProfile) passpointHotspotConfig.getDetails()) | ||||
|                 .setOperatorProfileName(passpointOperatorProfile.getName()); | ||||
|         ((PasspointProfile) passpointHotspotConfig.getDetails()).setVenueProfileName(passpointVenueProfile.getName()); | ||||
|         ((PasspointProfile) passpointHotspotConfig.getDetails()).setOsuSsidName(profileSsidOpen.getName()); | ||||
|         profileSsidPsk.getChildProfileIds().add(passpointHotspotConfig.getId()); | ||||
|         return passpointHotspotConfig; | ||||
|     } | ||||
|  | ||||
|     static Profile createPasspointIdProviderProfile(int customerId, Profile providerProfile, String providerName, | ||||
|             String network, String country, String iso, int mcc, int mnc, String naiRealm, int countryCode) { | ||||
|         Profile hotspot20IdProviderProfile; | ||||
|         hotspot20IdProviderProfile = new Profile(); | ||||
|         hotspot20IdProviderProfile.setCustomerId(customerId); | ||||
|         hotspot20IdProviderProfile.setName(providerName); | ||||
|         hotspot20IdProviderProfile.setProfileType(ProfileType.passpoint_osu_id_provider); | ||||
|         PasspointMccMnc passpointMccMnc = PasspointMccMnc.createWithDefaults(); | ||||
|         passpointMccMnc.setMcc(mcc); | ||||
|         passpointMccMnc.setMnc(mnc); | ||||
|         passpointMccMnc.setIso(iso); | ||||
|         passpointMccMnc.setCountry(country); | ||||
|         passpointMccMnc.setCountryCode(1); | ||||
|         passpointMccMnc.setNetwork(network); | ||||
|         List<PasspointMccMnc> mccMncList = new ArrayList<>(); | ||||
|         mccMncList.add(passpointMccMnc); | ||||
|         Set<String> naiRealms = new HashSet<>(); | ||||
|         naiRealms.add(naiRealm); | ||||
|         naiRealm.split("."); | ||||
|         List<Byte> roamingOi = new ArrayList<>(); | ||||
|         roamingOi.add(Byte.valueOf("1")); | ||||
|         roamingOi.add(Byte.valueOf("2")); | ||||
|         roamingOi.add(Byte.valueOf("3")); | ||||
|         roamingOi.add(Byte.valueOf("4")); | ||||
|         hotspot20IdProviderProfile = createOsuProviderProfile(customerId, hotspot20IdProviderProfile, mccMncList, | ||||
|                 naiRealms, "https://example.com/osu/" + naiRealm.split(".com")[0], naiRealm.split(".com")[0], naiRealm, | ||||
|                 roamingOi); | ||||
|         return hotspot20IdProviderProfile; | ||||
|     } | ||||
|  | ||||
|     static Profile createPasspointVenueProfile(int customerId) { | ||||
|         Profile passpointVenueProfile; | ||||
|         passpointVenueProfile = new Profile(); | ||||
|         passpointVenueProfile.setCustomerId(customerId); | ||||
|         passpointVenueProfile.setName("TipWlan-Hotspot20-Venue"); | ||||
|         passpointVenueProfile.setProfileType(ProfileType.passpoint_venue); | ||||
|         passpointVenueProfile.setDetails(PasspointVenueProfile.createWithDefaults()); | ||||
|         return passpointVenueProfile; | ||||
|     } | ||||
|  | ||||
|     static Profile createPasspointOperatorProfile(int customerId) { | ||||
|         Profile passpointOperatorProfile; | ||||
|         passpointOperatorProfile = new Profile(); | ||||
|         passpointOperatorProfile.setCustomerId(customerId); | ||||
|         passpointOperatorProfile.setName("TipWlan-Hotspot20-Operator"); | ||||
|         passpointOperatorProfile.setProfileType(ProfileType.passpoint_operator); | ||||
|         passpointOperatorProfile.setDetails(PasspointOperatorProfile.createWithDefaults()); | ||||
|         return passpointOperatorProfile; | ||||
|     } | ||||
|  | ||||
|     static Profile createPasspointAccessSsid(int customerId) { | ||||
|         Profile profileSsidPsk; | ||||
|         profileSsidPsk = new Profile(); | ||||
|         profileSsidPsk.setCustomerId(customerId); | ||||
|         profileSsidPsk.setName("TipWlan-cloud-hotspot-access"); | ||||
|         SsidConfiguration ssidConfigPsk = SsidConfiguration.createWithDefaults(); | ||||
|         Set<RadioType> appliedRadiosPsk = new HashSet<RadioType>(); | ||||
|         appliedRadiosPsk.add(RadioType.is5GHzL); | ||||
|         appliedRadiosPsk.add(RadioType.is5GHzU); | ||||
|         ssidConfigPsk.setSsid("TipWlan-cloud-hotspot-access"); | ||||
|         ssidConfigPsk.setAppliedRadios(appliedRadiosPsk); | ||||
|         ssidConfigPsk.setSecureMode(SecureMode.wpa2PSK); | ||||
|         ssidConfigPsk.setKeyStr("testing123"); | ||||
|         profileSsidPsk.setDetails(ssidConfigPsk); | ||||
|         return profileSsidPsk; | ||||
|     } | ||||
|  | ||||
|     static Profile createPasspointOsuSsid(int customerId) { | ||||
|         Profile profileSsidPsk; | ||||
|         profileSsidPsk = new Profile(); | ||||
|         profileSsidPsk.setCustomerId(customerId); | ||||
|         profileSsidPsk.setName("TipWlan-cloud-hotspot-osu"); | ||||
|         SsidConfiguration ssidConfigPsk = SsidConfiguration.createWithDefaults(); | ||||
|         Set<RadioType> appliedRadiosPsk = new HashSet<RadioType>(); | ||||
|         appliedRadiosPsk.add(RadioType.is2dot4GHz); | ||||
|         ssidConfigPsk.setSsid("TipWlan-cloud-hotspot-osu"); | ||||
|         ssidConfigPsk.setAppliedRadios(appliedRadiosPsk); | ||||
|         ssidConfigPsk.setSecureMode(SecureMode.open); | ||||
|         profileSsidPsk.setDetails(ssidConfigPsk); | ||||
|         return profileSsidPsk; | ||||
|     } | ||||
|  | ||||
|     static Profile createPasspointApProfile(int customerId, Profile profileSsidPsk, Profile profileSsidOpen) { | ||||
|  | ||||
|         Profile hotspotProfileAp = new Profile(); | ||||
|         hotspotProfileAp.setCustomerId(customerId); | ||||
|         hotspotProfileAp.setName("HotspotProfileAp"); | ||||
|         hotspotProfileAp.setDetails(ApNetworkConfiguration.createWithDefaults()); | ||||
|         hotspotProfileAp.getChildProfileIds().add(profileSsidPsk.getId()); | ||||
|         hotspotProfileAp.getChildProfileIds().add(profileSsidOpen.getId()); | ||||
|         hotspotProfileAp.getChildProfileIds().add(createPasspointRfProfile(customerId).getId()); | ||||
|         return hotspotProfileAp; | ||||
|  | ||||
|     } | ||||
|  | ||||
|     static Profile createPasspointRfProfile(int customerId) { | ||||
|  | ||||
|         Profile profileRf = new Profile(); | ||||
|         profileRf.setCustomerId(customerId); | ||||
|         profileRf.setName("TipWlan-rf-passpoint"); | ||||
|         RfConfiguration rfConfig = RfConfiguration.createWithDefaults(); | ||||
|         rfConfig.getRfConfigMap().forEach((x, y) -> y.setRf("TipWlan-rf-passpoint")); | ||||
|         profileRf.setDetails(rfConfig); | ||||
|  | ||||
|         return profileRf; | ||||
|     } | ||||
|  | ||||
|     static Profile createOsuProviderProfile(int customerId, Profile hotspot20IdProviderProfile, | ||||
|             List<PasspointMccMnc> mccMncList, Set<String> realms, String serverUri, String suffix, String domainName, | ||||
|             List<Byte> roamingOi) { | ||||
|  | ||||
|         PasspointOsuProviderProfile passpointIdProviderProfile = PasspointOsuProviderProfile.createWithDefaults(); | ||||
|  | ||||
|         passpointIdProviderProfile.setMccMncList(mccMncList); | ||||
|         PasspointOsuIcon icon1 = new PasspointOsuIcon(); | ||||
|         icon1.setIconLocale(Locale.CANADA); | ||||
|         icon1.setIconWidth(32); | ||||
|         icon1.setIconHeight(32); | ||||
|         icon1.setLanguageCode(Locale.CANADA.getISO3Language()); | ||||
|         icon1.setIconName("icon32eng"); | ||||
|         icon1.setImageUrl("https://localhost:9096/icon32eng.png"); | ||||
|         icon1.setFilePath("/tmp/icon32eng.png"); | ||||
|         PasspointOsuIcon icon2 = new PasspointOsuIcon(); | ||||
|         icon2.setIconLocale(Locale.CANADA_FRENCH); | ||||
|         icon2.setIconWidth(32); | ||||
|         icon2.setIconHeight(32); | ||||
|         icon2.setLanguageCode(Locale.CANADA_FRENCH.getISO3Language()); | ||||
|         icon2.setIconName("icon32fra"); | ||||
|         icon2.setImageUrl("https://localhost:9096/icon32fra.png"); | ||||
|         icon2.setFilePath("/tmp/icon32fra.png"); | ||||
|         PasspointOsuIcon icon3 = new PasspointOsuIcon(); | ||||
|         icon3.setIconLocale(Locale.US); | ||||
|         icon3.setIconWidth(32); | ||||
|         icon3.setIconHeight(32); | ||||
|         icon3.setLanguageCode(Locale.US.getISO3Language()); | ||||
|         icon3.setIconName("icon32usa"); | ||||
|         icon3.setImageUrl("https://localhost:9096/icon32usa.png"); | ||||
|         icon3.setFilePath("/tmp/icon32usa.png"); | ||||
|         List<PasspointOsuIcon> osuIconList = new ArrayList<>(); | ||||
|         osuIconList.add(icon1); | ||||
|         osuIconList.add(icon2); | ||||
|         osuIconList.add(icon3); | ||||
|         passpointIdProviderProfile.setOsuIconList(osuIconList); | ||||
|  | ||||
|         passpointIdProviderProfile.setRoamingOi(roamingOi); | ||||
|         List<PasspointNaiRealmInformation> naiRealmList = new ArrayList<>(); | ||||
|  | ||||
|         PasspointNaiRealmInformation naiRealmInfo = PasspointNaiRealmInformation.createWithDefaults(); | ||||
|         naiRealmInfo.setNaiRealms(realms); | ||||
|  | ||||
|         naiRealmList.add(naiRealmInfo); | ||||
|         passpointIdProviderProfile.setNaiRealmList(naiRealmList); | ||||
|         passpointIdProviderProfile.setDomainName(domainName); | ||||
|         passpointIdProviderProfile.setOsuNaiStandalone("anonymous@" + domainName); | ||||
|         passpointIdProviderProfile.setOsuNaiShared("anonymous@" + domainName); | ||||
|         List<Integer> methodList = new ArrayList<>(); | ||||
|         methodList.add(1); | ||||
|         methodList.add(0); | ||||
|         passpointIdProviderProfile.setOsuMethodList(methodList); | ||||
|         PasspointDuple enOsuProvider = PasspointDuple.createWithDefaults(); | ||||
|         enOsuProvider.setLocale(Locale.CANADA); | ||||
|         enOsuProvider.setDupleName("Example provider " + suffix); | ||||
|         PasspointDuple frOsuProvider = PasspointDuple.createWithDefaults(); | ||||
|         frOsuProvider.setLocale(Locale.CANADA_FRENCH); | ||||
|         frOsuProvider.setDupleName("Exemple de fournisseur " + suffix); | ||||
|         List<PasspointDuple> friendlyNameList = new ArrayList<>(); | ||||
|         friendlyNameList.add(enOsuProvider); | ||||
|         friendlyNameList.add(frOsuProvider); | ||||
|         passpointIdProviderProfile.setOsuFriendlyName(friendlyNameList); | ||||
|         List<PasspointDuple> osuServiceDescription = new ArrayList<>(); | ||||
|         PasspointDuple enService = PasspointDuple.createWithDefaults(); | ||||
|         enService.setLocale(Locale.CANADA); | ||||
|         enService.setDupleName("Example services " + suffix); | ||||
|         osuServiceDescription.add(enService); | ||||
|         PasspointDuple frService = PasspointDuple.createWithDefaults(); | ||||
|         frService.setLocale(Locale.CANADA_FRENCH); | ||||
|         frService.setDupleName("Exemples de services " + suffix); | ||||
|         osuServiceDescription.add(frService); | ||||
|         passpointIdProviderProfile.setOsuServiceDescription(osuServiceDescription); | ||||
|         passpointIdProviderProfile.setOsuServerUri(serverUri); | ||||
|  | ||||
|         hotspot20IdProviderProfile.setDetails(passpointIdProviderProfile); | ||||
|         return hotspot20IdProviderProfile; | ||||
|     } | ||||
|  | ||||
|     static OperationResult[] hs20Config() { | ||||
|         List<Row> ret = new ArrayList<>(); | ||||
|  | ||||
|         Map<String, Value> columns = new HashMap<>(); | ||||
|         columns.put("_uuid", new Atom<>(Uuid.of(UUID.fromString("28f2b88e-d10d-4cae-832d-784210940709")))); | ||||
|         columns.put("_version", new Atom<>(Uuid.of(UUID.randomUUID()))); | ||||
|         columns.put("anqp_domain_id", new Atom<>(1234)); | ||||
|         columns.put("connection_capability", new Atom<>(" 6:8888:1")); | ||||
|         columns.put("deauth_request_timeout", new Atom<>(0)); | ||||
|         columns.put("domain_name", | ||||
|                 com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("rogers.com"), new Atom<>("telus.com"))); | ||||
|         columns.put("enable", new Atom<>(true)); | ||||
|         columns.put("gas_addr3_behavior", new Atom<>(0)); | ||||
|         columns.put("hessid", new Atom<>("26:f5:a2:ef:2e:56")); | ||||
|         columns.put("ipaddr_type_availability", new Atom<>(4)); | ||||
|         columns.put("mcc_mnc", new Atom<>("302,720;302,220")); | ||||
|         columns.put("nai_realm", com.vmware.ovsdb.protocol.operation.notation.Set | ||||
|                 .of(new Atom<>("0,rogers.com,21[5:7][2:4],13[5:6]"), new Atom<>("0,telus.com,21[5:7][2:4],13[5:6]"))); | ||||
|         columns.put("network_auth_type", new Atom<>("00")); | ||||
|         columns.put("operating_class", new Atom<>(0)); | ||||
|         columns.put("operator_friendly_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"))); | ||||
|         columns.put("operator_icons", | ||||
|                 com.vmware.ovsdb.protocol.operation.notation.Set.of( | ||||
|                         new Atom<>(Uuid.of(UUID.fromString("5f2d0e46-92bd-43a1-aa66-94474deb2212"))), | ||||
|                         new Atom<>(Uuid.of(UUID.fromString("7cf892c2-3f04-4851-986c-a7b7d8ad1dfa"))), | ||||
|                         new Atom<>(Uuid.of(UUID.fromString("9449e6cf-de62-4805-855b-3fc9bb5cd3ec"))))); | ||||
|         columns.put("osen", new Atom<>(false)); | ||||
|         columns.put("osu_providers", | ||||
|                 com.vmware.ovsdb.protocol.operation.notation.Set.of( | ||||
|                         new Atom<>(Uuid.of(UUID.fromString("33b78c84-3242-4477-831f-185c6532cfda"))), | ||||
|                         new Atom<>(Uuid.of(UUID.fromString("ae51393c-f9e5-4021-af73-c5ad4b751f88"))))); | ||||
|         columns.put("osu_ssid", new Atom<>("ssid-open")); | ||||
|         columns.put("roaming_oi", | ||||
|                 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("venue_group_type", new Atom<>("2:8")); | ||||
|         columns.put("venue_name", com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("eng:Example passpoint_venue"), | ||||
|                 new Atom<>("fra:Exemple de lieu"))); | ||||
|         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"))); | ||||
|         columns.put("vif_config", | ||||
|                 com.vmware.ovsdb.protocol.operation.notation.Set.of( | ||||
|                         new Atom<>(Uuid.of(UUID.fromString("66abe4b3-2a26-4769-b684-da70e2392a07"))), | ||||
|                         new Atom<>(Uuid.of(UUID.fromString("fad30b59-fada-41fc-ad62-2afca67cf9d5"))))); | ||||
|  | ||||
|         OperationResult[] operationResult = new OperationResult[1]; | ||||
|         SelectResult selectResult = new SelectResult(ret); | ||||
|         operationResult[0] = selectResult; | ||||
|  | ||||
|         return operationResult; | ||||
|     } | ||||
|  | ||||
|     static OperationResult[] hs20InsertProviderRows() { | ||||
|  | ||||
|         InsertResult insertResult = new InsertResult(Uuid.of(UUID.fromString("33b78c84-3242-4477-831f-185c6532cfda"))); | ||||
|         InsertResult insertResult2 = new InsertResult(Uuid.of(UUID.fromString("ae51393c-f9e5-4021-af73-c5ad4b751f88"))); | ||||
|  | ||||
|         OperationResult[] operationResult = new OperationResult[2]; | ||||
|         operationResult[0] = insertResult; | ||||
|         operationResult[1] = insertResult2; | ||||
|  | ||||
|         return operationResult; | ||||
|     } | ||||
|  | ||||
|     static OperationResult[] hs20OsuProviders() { | ||||
|         List<Row> ret = new ArrayList<>(); | ||||
|  | ||||
|         Map<String, Value> columns = new HashMap<>(); | ||||
|         columns.put("_uuid", new Atom<>(Uuid.of(UUID.fromString("33b78c84-3242-4477-831f-185c6532cfda")))); | ||||
|         columns.put("_version", new Atom<>(Uuid.of(UUID.randomUUID()))); | ||||
|         columns.put("method_list", com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>(0), new Atom<>(1))); | ||||
|         columns.put("osu_friendly_name", com.vmware.ovsdb.protocol.operation.notation.Set | ||||
|                 .of(new Atom<>("eng:Example provider rogers"), new Atom<>("fra:Exemple de fournisseur rogers"))); | ||||
|         columns.put("osu_icons", | ||||
|                 com.vmware.ovsdb.protocol.operation.notation.Set.of( | ||||
|                         new Atom<>(Uuid.of(UUID.fromString("5f2d0e46-92bd-43a1-aa66-94474deb2212"))), | ||||
|                         new Atom<>(Uuid.of(UUID.fromString("7cf892c2-3f04-4851-986c-a7b7d8ad1dfa"))), | ||||
|                         new Atom<>(Uuid.of(UUID.fromString("9449e6cf-de62-4805-855b-3fc9bb5cd3ec"))))); | ||||
|         columns.put("osu_nai", new Atom<>("anonymous@rogers.com")); | ||||
|         columns.put("server_uri", new Atom<>("https://example.com/osu/rogers")); | ||||
|         columns.put("service_description", com.vmware.ovsdb.protocol.operation.notation.Set | ||||
|                 .of(new Atom<>("eng:Example provider rogers"), new Atom<>("fra:Exemple de fournisseur rogers"))); | ||||
|  | ||||
|         ret.add(new Row(columns)); | ||||
|  | ||||
|         columns = new HashMap<>(); | ||||
|         columns.put("_uuid", new Atom<>(Uuid.of(UUID.fromString("ae51393c-f9e5-4021-af73-c5ad4b751f88")))); | ||||
|         columns.put("_version", new Atom<>(Uuid.of(UUID.randomUUID()))); | ||||
|         columns.put("method_list", com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>(0), new Atom<>(1))); | ||||
|         columns.put("osu_friendly_name", com.vmware.ovsdb.protocol.operation.notation.Set | ||||
|                 .of(new Atom<>("eng:Example provider telus"), new Atom<>("fra:Exemple de fournisseur telus"))); | ||||
|         columns.put("osu_icons", | ||||
|                 com.vmware.ovsdb.protocol.operation.notation.Set.of( | ||||
|                         new Atom<>(Uuid.of(UUID.fromString("5f2d0e46-92bd-43a1-aa66-94474deb2212"))), | ||||
|                         new Atom<>(Uuid.of(UUID.fromString("7cf892c2-3f04-4851-986c-a7b7d8ad1dfa"))), | ||||
|                         new Atom<>(Uuid.of(UUID.fromString("9449e6cf-de62-4805-855b-3fc9bb5cd3ec"))))); | ||||
|         columns.put("osu_nai", new Atom<>("anonymous@telus.com")); | ||||
|         columns.put("server_uri", new Atom<>("https://example.com/osu/telus")); | ||||
|         columns.put("service_description", com.vmware.ovsdb.protocol.operation.notation.Set | ||||
|                 .of(new Atom<>("eng:Example provider telus"), new Atom<>("fra:Exemple de fournisseur telus"))); | ||||
|  | ||||
|         OperationResult[] operationResult = new OperationResult[1]; | ||||
|         SelectResult selectResult = new SelectResult(ret); | ||||
|         operationResult[0] = selectResult; | ||||
|  | ||||
|         return operationResult; | ||||
|     } | ||||
|  | ||||
|     static OperationResult[] hs20InsertIconRows() { | ||||
|  | ||||
|         UpdateResult insertResult = new UpdateResult(1); | ||||
|         UpdateResult insertResult2 = new UpdateResult(2); | ||||
|         UpdateResult insertResult3 = new UpdateResult(3); | ||||
|  | ||||
|         OperationResult[] operationResult = new OperationResult[3]; | ||||
|         operationResult[0] = insertResult; | ||||
|         operationResult[1] = insertResult2; | ||||
|         operationResult[2] = insertResult3; | ||||
|  | ||||
|         return operationResult; | ||||
|     } | ||||
|  | ||||
|  | ||||
|     static OperationResult[] hs20IconRows() { | ||||
|         List<Row> ret = new ArrayList<>(); | ||||
|  | ||||
|         Map<String, Value> columns = new HashMap<>(); | ||||
|         columns.put("_uuid", new Atom<>(Uuid.of(UUID.fromString("5f2d0e46-92bd-43a1-aa66-94474deb2212")))); | ||||
|         columns.put("_version", new Atom<>(Uuid.of(UUID.randomUUID()))); | ||||
|         columns.put("height", new Atom<>(32L)); | ||||
|         columns.put("img_type", new Atom<>("image/png")); | ||||
|         columns.put("lang_code", new Atom<>("eng")); | ||||
|         columns.put("name", new Atom<>("icon32usa")); | ||||
|         columns.put("path", new Atom<String>("/tmp/icon32usa.png")); | ||||
|         columns.put("url", new Atom<String>("https://localhost:9096/icon32usa.png")); | ||||
|         columns.put("width", new Atom<>(32L)); | ||||
|  | ||||
|         ret.add(new Row(columns)); | ||||
|  | ||||
|         columns = new HashMap<>(); | ||||
|         columns.put("_uuid", new Atom<>(Uuid.of(UUID.fromString("7cf892c2-3f04-4851-986c-a7b7d8ad1dfa")))); | ||||
|         columns.put("_version", new Atom<>(Uuid.of(UUID.randomUUID()))); | ||||
|         columns.put("height", new Atom<>(32L)); | ||||
|         columns.put("img_type", new Atom<>("image/png")); | ||||
|         columns.put("lang_code", new Atom<>("eng")); | ||||
|         columns.put("name", new Atom<>("icon32eng")); | ||||
|         columns.put("path", new Atom<String>("/tmp/icon32eng.png")); | ||||
|         columns.put("url", new Atom<String>("https://localhost:9096/icon32eng.png")); | ||||
|         columns.put("width", new Atom<>(32L)); | ||||
|  | ||||
|         ret.add(new Row(columns)); | ||||
|  | ||||
|         columns = new HashMap<>(); | ||||
|         columns.put("_uuid", new Atom<>(Uuid.of(UUID.fromString("9449e6cf-de62-4805-855b-3fc9bb5cd3ec")))); | ||||
|         columns.put("_version", new Atom<>(Uuid.of(UUID.randomUUID()))); | ||||
|         columns.put("height", new Atom<>(32L)); | ||||
|         columns.put("img_type", new Atom<>("image/png")); | ||||
|         columns.put("lang_code", new Atom<>("fra")); | ||||
|         columns.put("name", new Atom<>("icon32fra")); | ||||
|         columns.put("path", new Atom<String>("/tmp/icon32fra.png")); | ||||
|         columns.put("url", new Atom<String>("https://localhost:9096/icon32fra.png")); | ||||
|         columns.put("width", new Atom<>(32L)); | ||||
|  | ||||
|         ret.add(new Row(columns)); | ||||
|  | ||||
|         SelectResult selectResult = new SelectResult(ret); | ||||
|  | ||||
|         OperationResult[] operationResult = new OperationResult[1]; | ||||
|         operationResult[0] = selectResult; | ||||
|  | ||||
|         return operationResult; | ||||
|     } | ||||
|  | ||||
|     static OperationResult[] vifConfigRows() { | ||||
|  | ||||
|         List<Row> ret = new ArrayList<>(); | ||||
|         Row row = new Row(new HashMap<String, Value>()); | ||||
|         row.getColumns().put("_uuid", new Atom<>(Uuid.of(UUID.fromString("66abe4b3-2a26-4769-b684-da70e2392a07")))); | ||||
|         row.getColumns().put("ssid", new Atom<>("ssid-access")); | ||||
|         row.getColumns().put("mac", new Atom<>("26:f5:a2:ef:2e:56")); | ||||
|         row.getColumns().put("if_name", new Atom<>("wlan0")); | ||||
|         ret.add(row); | ||||
|  | ||||
|         Row row2 = new Row(new HashMap<String, Value>()); | ||||
|         row2.getColumns().put("_uuid", new Atom<>(Uuid.of(UUID.fromString("fad30b59-fada-41fc-ad62-2afca67cf9d5")))); | ||||
|         row2.getColumns().put("ssid", new Atom<>("ssid-access")); | ||||
|         row2.getColumns().put("mac", new Atom<>("24:f5:a2:ef:2e:54")); | ||||
|         row2.getColumns().put("if_name", new Atom<>("wlan2")); | ||||
|         ret.add(row2); | ||||
|  | ||||
|         Row row3 = new Row(new HashMap<String, Value>()); | ||||
|         row3.getColumns().put("_uuid", new Atom<>(Uuid.of(UUID.randomUUID()))); | ||||
|         row3.getColumns().put("ssid", new Atom<>("ssid-open")); | ||||
|         row3.getColumns().put("mac", new Atom<>("24:f5:a2:ef:2e:55")); | ||||
|         row3.getColumns().put("if_name", new Atom<>("wlan1")); | ||||
|         ret.add(row3); | ||||
|  | ||||
|         SelectResult selectResult = new SelectResult(ret); | ||||
|  | ||||
|         OperationResult[] operationResult = new OperationResult[1]; | ||||
|         operationResult[0] = selectResult; | ||||
|         return operationResult; | ||||
|     } | ||||
|  | ||||
|     static OperationResult[] vifStates() { | ||||
|  | ||||
|         List<Row> ret = new ArrayList<>(); | ||||
|  | ||||
|         Row row = new Row(new HashMap<String, Value>()); | ||||
|         row.getColumns().put("_uuid", new Atom<>(Uuid.of(UUID.fromString("66abe4b3-2a26-4769-b684-da70e2392a07")))); | ||||
|         row.getColumns().put("ssid", new Atom<>("ssid-access")); | ||||
|         row.getColumns().put("if_name", new Atom<>("wlan0")); | ||||
|         ret.add(row); | ||||
|  | ||||
|         Row row2 = new Row(new HashMap<String, Value>()); | ||||
|         row2.getColumns().put("_uuid", new Atom<>(Uuid.of(UUID.fromString("fad30b59-fada-41fc-ad62-2afca67cf9d5")))); | ||||
|         row2.getColumns().put("ssid", new Atom<>("ssid-access")); | ||||
|         row2.getColumns().put("if_name", new Atom<>("wlan2")); | ||||
|         ret.add(row2); | ||||
|  | ||||
|         Row row3 = new Row(new HashMap<String, Value>()); | ||||
|         row3.getColumns().put("_uuid", new Atom<>(Uuid.of(UUID.randomUUID()))); | ||||
|         row3.getColumns().put("ssid", new Atom<>("ssid-open")); | ||||
|         row3.getColumns().put("if_name", new Atom<>("wlan1")); | ||||
|         ret.add(row3); | ||||
|  | ||||
|         SelectResult selectResult = new SelectResult(ret); | ||||
|  | ||||
|  | ||||
|         OperationResult[] operationResult = new OperationResult[1]; | ||||
|         operationResult[0].equals(selectResult); | ||||
|         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; | ||||
|     } | ||||
|      | ||||
|      | ||||
| } | ||||
| @@ -1,110 +0,0 @@ | ||||
| { | ||||
| 	"vif_radio_idx": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"if_name": "home-ap-24", | ||||
| 	"state": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac": "24:f5:a2:ef:2e:54", | ||||
| 	"ssid": "TipWlan-cloud-3-radios", | ||||
| 	"uapsd_enable": true, | ||||
| 	"ap_bridge": false, | ||||
| 	"wps_pbc": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac_list": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"associated_clients": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"btm": 1, | ||||
| 	"_uuid": [ | ||||
| 		"uuid", | ||||
| 		"a007d865-fe4b-4265-a9a1-69d4b309e939" | ||||
| 	], | ||||
| 	"ssid_broadcast": "enabled", | ||||
| 	"wps": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mcast2ucast": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mode": "ap", | ||||
| 	"mac_list_type": "none", | ||||
| 	"wps_pbc_key_id": "", | ||||
| 	"ft_psk": 0, | ||||
| 	"channel": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"parent": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"multi_ap": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"ap_vlan_sta_addr": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"security": [ | ||||
| 		"map", | ||||
| 		[ | ||||
| 			[ | ||||
| 				"encryption", | ||||
| 				"OPEN" | ||||
| 			] | ||||
| 		] | ||||
| 	], | ||||
| 	"wds": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"enabled": true, | ||||
| 	"vlan_id": 1, | ||||
| 	"min_hw_mode": "11n", | ||||
| 	"vif_config": [ | ||||
| 		"uuid", | ||||
| 		"fc3de7db-ee6c-452c-859c-1be81b0b5b24" | ||||
| 	], | ||||
| 	"_version": [ | ||||
| 		"uuid", | ||||
| 		"a96bff45-29bd-423b-9014-10a418683e5d" | ||||
| 	], | ||||
| 	"bridge": "lan", | ||||
| 	"group_rekey": 0, | ||||
| 	"ft_mobility_domain": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"dynamic_beacon": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"rrm": 1 | ||||
| } | ||||
| @@ -1,109 +0,0 @@ | ||||
| { | ||||
| 	"vif_radio_idx": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"if_name": "home-ap-l50", | ||||
| 	"state": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac": "24:f5:a2:ef:2e:55", | ||||
| 	"ssid": "TipWlan-cloud-3-radios", | ||||
| 	"uapsd_enable": true, | ||||
| 	"ap_bridge": false, | ||||
| 	"wps_pbc": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac_list": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"associated_clients": [ | ||||
| 		"uuid", | ||||
| 		"073c3961-33fe-4054-abc6-ae2e8b91c914" | ||||
| 	], | ||||
| 	"btm": 1, | ||||
| 	"_uuid": [ | ||||
| 		"uuid", | ||||
| 		"7ebfab8d-0962-4af3-a45b-b5a9d68c86c8" | ||||
| 	], | ||||
| 	"ssid_broadcast": "enabled", | ||||
| 	"wps": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mcast2ucast": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mode": "ap", | ||||
| 	"mac_list_type": "none", | ||||
| 	"wps_pbc_key_id": "", | ||||
| 	"ft_psk": 0, | ||||
| 	"channel": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"parent": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"multi_ap": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"ap_vlan_sta_addr": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"security": [ | ||||
| 		"map", | ||||
| 		[ | ||||
| 			[ | ||||
| 				"encryption", | ||||
| 				"OPEN" | ||||
| 			] | ||||
| 		] | ||||
| 	], | ||||
| 	"wds": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"enabled": true, | ||||
| 	"vlan_id": 1, | ||||
| 	"min_hw_mode": "11ac", | ||||
| 	"vif_config": [ | ||||
| 		"uuid", | ||||
| 		"54c01e8b-4d67-456e-ab18-cbc89c784c2a" | ||||
| 	], | ||||
| 	"_version": [ | ||||
| 		"uuid", | ||||
| 		"faec64fb-fbc1-417a-9ff4-f30ff2c5be94" | ||||
| 	], | ||||
| 	"bridge": "lan", | ||||
| 	"group_rekey": 0, | ||||
| 	"ft_mobility_domain": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"dynamic_beacon": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"rrm": 1 | ||||
| } | ||||
| @@ -1,109 +0,0 @@ | ||||
| { | ||||
| 	"vif_radio_idx": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"if_name": "home-ap-u50", | ||||
| 	"state": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac": "26:f5:a2:ef:2e:56", | ||||
| 	"ssid": "TipWlan-cloud-3-radios", | ||||
| 	"uapsd_enable": true, | ||||
| 	"ap_bridge": false, | ||||
| 	"wps_pbc": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac_list": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"associated_clients": [ | ||||
| 		"uuid", | ||||
| 		"c9f5a30d-7ccf-406f-a0d8-f108b377584e" | ||||
| 	], | ||||
| 	"btm": 1, | ||||
| 	"_uuid": [ | ||||
| 		"uuid", | ||||
| 		"009e6ee9-d687-4201-9c55-f42d26cbd7b5" | ||||
| 	], | ||||
| 	"ssid_broadcast": "enabled", | ||||
| 	"wps": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mcast2ucast": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mode": "ap", | ||||
| 	"mac_list_type": "none", | ||||
| 	"wps_pbc_key_id": "", | ||||
| 	"ft_psk": 0, | ||||
| 	"channel": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"parent": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"multi_ap": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"ap_vlan_sta_addr": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"security": [ | ||||
| 		"map", | ||||
| 		[ | ||||
| 			[ | ||||
| 				"encryption", | ||||
| 				"OPEN" | ||||
| 			] | ||||
| 		] | ||||
| 	], | ||||
| 	"wds": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"enabled": true, | ||||
| 	"vlan_id": 1, | ||||
| 	"min_hw_mode": "11ac", | ||||
| 	"vif_config": [ | ||||
| 		"uuid", | ||||
| 		"4aeefd3b-b86f-45e4-a9a1-c734363be9c8" | ||||
| 	], | ||||
| 	"_version": [ | ||||
| 		"uuid", | ||||
| 		"e70c7842-6257-46d1-94d3-350a55733fc4" | ||||
| 	], | ||||
| 	"bridge": "lan", | ||||
| 	"group_rekey": 0, | ||||
| 	"ft_mobility_domain": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"dynamic_beacon": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"rrm": 1 | ||||
| } | ||||
| @@ -1,110 +0,0 @@ | ||||
| { | ||||
| 	"vif_radio_idx": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"if_name": "home-ap-24", | ||||
| 	"state": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac": "24:f5:a2:ef:2e:54", | ||||
| 	"ssid": "TipWlan-cloud-3-radios", | ||||
| 	"uapsd_enable": true, | ||||
| 	"ap_bridge": false, | ||||
| 	"wps_pbc": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac_list": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"associated_clients": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"btm": 1, | ||||
| 	"_uuid": [ | ||||
| 		"uuid", | ||||
| 		"a007d865-fe4b-4265-a9a1-69d4b309e939" | ||||
| 	], | ||||
| 	"ssid_broadcast": "enabled", | ||||
| 	"wps": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mcast2ucast": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mode": "ap", | ||||
| 	"mac_list_type": "none", | ||||
| 	"wps_pbc_key_id": "", | ||||
| 	"ft_psk": 0, | ||||
| 	"channel": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"parent": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"multi_ap": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"ap_vlan_sta_addr": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"security": [ | ||||
| 		"map", | ||||
| 		[ | ||||
| 			[ | ||||
| 				"encryption", | ||||
| 				"OPEN" | ||||
| 			] | ||||
| 		] | ||||
| 	], | ||||
| 	"wds": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"enabled": true, | ||||
| 	"vlan_id": 1, | ||||
| 	"min_hw_mode": "11n", | ||||
| 	"vif_config": [ | ||||
| 		"uuid", | ||||
| 		"fc3de7db-ee6c-452c-859c-1be81b0b5b24" | ||||
| 	], | ||||
| 	"_version": [ | ||||
| 		"uuid", | ||||
| 		"a96bff45-29bd-423b-9014-10a418683e5d" | ||||
| 	], | ||||
| 	"bridge": "lan", | ||||
| 	"group_rekey": 0, | ||||
| 	"ft_mobility_domain": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"dynamic_beacon": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"rrm": 1 | ||||
| } | ||||
| @@ -1,109 +0,0 @@ | ||||
| { | ||||
| 	"vif_radio_idx": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"if_name": "home-ap-l50", | ||||
| 	"state": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac": "24:f5:a2:ef:2e:55", | ||||
| 	"ssid": "TipWlan-cloud-3-radios", | ||||
| 	"uapsd_enable": true, | ||||
| 	"ap_bridge": false, | ||||
| 	"wps_pbc": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac_list": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"associated_clients": [ | ||||
| 		"uuid", | ||||
| 		"073c3961-33fe-4054-abc6-ae2e8b91c914" | ||||
| 	], | ||||
| 	"btm": 1, | ||||
| 	"_uuid": [ | ||||
| 		"uuid", | ||||
| 		"7ebfab8d-0962-4af3-a45b-b5a9d68c86c8" | ||||
| 	], | ||||
| 	"ssid_broadcast": "enabled", | ||||
| 	"wps": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mcast2ucast": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mode": "ap", | ||||
| 	"mac_list_type": "none", | ||||
| 	"wps_pbc_key_id": "", | ||||
| 	"ft_psk": 0, | ||||
| 	"channel": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"parent": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"multi_ap": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"ap_vlan_sta_addr": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"security": [ | ||||
| 		"map", | ||||
| 		[ | ||||
| 			[ | ||||
| 				"encryption", | ||||
| 				"OPEN" | ||||
| 			] | ||||
| 		] | ||||
| 	], | ||||
| 	"wds": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"enabled": true, | ||||
| 	"vlan_id": 1, | ||||
| 	"min_hw_mode": "11ac", | ||||
| 	"vif_config": [ | ||||
| 		"uuid", | ||||
| 		"54c01e8b-4d67-456e-ab18-cbc89c784c2a" | ||||
| 	], | ||||
| 	"_version": [ | ||||
| 		"uuid", | ||||
| 		"faec64fb-fbc1-417a-9ff4-f30ff2c5be94" | ||||
| 	], | ||||
| 	"bridge": "lan", | ||||
| 	"group_rekey": 0, | ||||
| 	"ft_mobility_domain": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"dynamic_beacon": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"rrm": 1 | ||||
| } | ||||
| @@ -1,109 +0,0 @@ | ||||
| { | ||||
| 	"vif_radio_idx": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"if_name": "home-ap-u50", | ||||
| 	"state": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac": "26:f5:a2:ef:2e:56", | ||||
| 	"ssid": "TipWlan-cloud-3-radios", | ||||
| 	"uapsd_enable": true, | ||||
| 	"ap_bridge": false, | ||||
| 	"wps_pbc": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac_list": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"associated_clients": [ | ||||
| 		"uuid", | ||||
| 		"c9f5a30d-7ccf-406f-a0d8-f108b377584e" | ||||
| 	], | ||||
| 	"btm": 1, | ||||
| 	"_uuid": [ | ||||
| 		"uuid", | ||||
| 		"009e6ee9-d687-4201-9c55-f42d26cbd7b5" | ||||
| 	], | ||||
| 	"ssid_broadcast": "enabled", | ||||
| 	"wps": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mcast2ucast": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mode": "ap", | ||||
| 	"mac_list_type": "none", | ||||
| 	"wps_pbc_key_id": "", | ||||
| 	"ft_psk": 0, | ||||
| 	"channel": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"parent": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"multi_ap": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"ap_vlan_sta_addr": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"security": [ | ||||
| 		"map", | ||||
| 		[ | ||||
| 			[ | ||||
| 				"encryption", | ||||
| 				"OPEN" | ||||
| 			] | ||||
| 		] | ||||
| 	], | ||||
| 	"wds": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"enabled": true, | ||||
| 	"vlan_id": 1, | ||||
| 	"min_hw_mode": "11ac", | ||||
| 	"vif_config": [ | ||||
| 		"uuid", | ||||
| 		"4aeefd3b-b86f-45e4-a9a1-c734363be9c8" | ||||
| 	], | ||||
| 	"_version": [ | ||||
| 		"uuid", | ||||
| 		"e70c7842-6257-46d1-94d3-350a55733fc4" | ||||
| 	], | ||||
| 	"bridge": "lan", | ||||
| 	"group_rekey": 0, | ||||
| 	"ft_mobility_domain": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"dynamic_beacon": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"rrm": 1 | ||||
| } | ||||
| @@ -1,110 +0,0 @@ | ||||
| { | ||||
| 	"vif_radio_idx": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"if_name": "home-ap-24", | ||||
| 	"state": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac": "24:f5:a2:ef:2e:54", | ||||
| 	"ssid": "TipWlan-cloud-3-radios", | ||||
| 	"uapsd_enable": true, | ||||
| 	"ap_bridge": false, | ||||
| 	"wps_pbc": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac_list": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"associated_clients": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"btm": 1, | ||||
| 	"_uuid": [ | ||||
| 		"uuid", | ||||
| 		"a007d865-fe4b-4265-a9a1-69d4b309e939" | ||||
| 	], | ||||
| 	"ssid_broadcast": "enabled", | ||||
| 	"wps": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mcast2ucast": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mode": "ap", | ||||
| 	"mac_list_type": "none", | ||||
| 	"wps_pbc_key_id": "", | ||||
| 	"ft_psk": 0, | ||||
| 	"channel": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"parent": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"multi_ap": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"ap_vlan_sta_addr": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"security": [ | ||||
| 		"map", | ||||
| 		[ | ||||
| 			[ | ||||
| 				"encryption", | ||||
| 				"OPEN" | ||||
| 			] | ||||
| 		] | ||||
| 	], | ||||
| 	"wds": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"enabled": true, | ||||
| 	"vlan_id": 1, | ||||
| 	"min_hw_mode": "11n", | ||||
| 	"vif_config": [ | ||||
| 		"uuid", | ||||
| 		"fc3de7db-ee6c-452c-859c-1be81b0b5b24" | ||||
| 	], | ||||
| 	"_version": [ | ||||
| 		"uuid", | ||||
| 		"a96bff45-29bd-423b-9014-10a418683e5d" | ||||
| 	], | ||||
| 	"bridge": "lan", | ||||
| 	"group_rekey": 0, | ||||
| 	"ft_mobility_domain": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"dynamic_beacon": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"rrm": 1 | ||||
| } | ||||
| @@ -1,109 +0,0 @@ | ||||
| { | ||||
| 	"vif_radio_idx": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"if_name": "home-ap-l50", | ||||
| 	"state": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac": "24:f5:a2:ef:2e:55", | ||||
| 	"ssid": "TipWlan-cloud-3-radios", | ||||
| 	"uapsd_enable": true, | ||||
| 	"ap_bridge": false, | ||||
| 	"wps_pbc": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mac_list": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"associated_clients": [ | ||||
| 		"uuid", | ||||
| 		"073c3961-33fe-4054-abc6-ae2e8b91c914" | ||||
| 	], | ||||
| 	"btm": 1, | ||||
| 	"_uuid": [ | ||||
| 		"uuid", | ||||
| 		"7ebfab8d-0962-4af3-a45b-b5a9d68c86c8" | ||||
| 	], | ||||
| 	"ssid_broadcast": "enabled", | ||||
| 	"wps": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mcast2ucast": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"mode": "ap", | ||||
| 	"mac_list_type": "none", | ||||
| 	"wps_pbc_key_id": "", | ||||
| 	"ft_psk": 0, | ||||
| 	"channel": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"parent": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"multi_ap": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"ap_vlan_sta_addr": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"security": [ | ||||
| 		"map", | ||||
| 		[ | ||||
| 			[ | ||||
| 				"encryption", | ||||
| 				"OPEN" | ||||
| 			] | ||||
| 		] | ||||
| 	], | ||||
| 	"wds": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"enabled": true, | ||||
| 	"vlan_id": 1, | ||||
| 	"min_hw_mode": "11ac", | ||||
| 	"vif_config": [ | ||||
| 		"uuid", | ||||
| 		"54c01e8b-4d67-456e-ab18-cbc89c784c2a" | ||||
| 	], | ||||
| 	"_version": [ | ||||
| 		"uuid", | ||||
| 		"faec64fb-fbc1-417a-9ff4-f30ff2c5be94" | ||||
| 	], | ||||
| 	"bridge": "lan", | ||||
| 	"group_rekey": 0, | ||||
| 	"ft_mobility_domain": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"dynamic_beacon": [ | ||||
| 		"set", | ||||
| 		[ | ||||
| 		] | ||||
| 	], | ||||
| 	"rrm": 1 | ||||
| } | ||||
| @@ -1,96 +0,0 @@ | ||||
| { | ||||
|     "vif_radio_idx": [ | ||||
|         "set", | ||||
|         [] | ||||
|     ], | ||||
|     "if_name": "home-ap-u50", | ||||
|     "state": [ | ||||
|         "set", | ||||
|         [] | ||||
|     ], | ||||
|     "mac": "26:f5:a2:ef:2e:56", | ||||
|     "ssid": "TipWlan-cloud-3-radios", | ||||
|     "uapsd_enable": true, | ||||
|     "ap_bridge": false, | ||||
|     "wps_pbc": [ | ||||
|         "set", | ||||
|         [] | ||||
|     ], | ||||
|     "mac_list": [ | ||||
|         "set", | ||||
|         [] | ||||
|     ], | ||||
|     "associated_clients": [ | ||||
|         "uuid", | ||||
|         "c9f5a30d-7ccf-406f-a0d8-f108b377584e" | ||||
|     ], | ||||
|     "btm": 1, | ||||
|     "_uuid": [ | ||||
|         "uuid", | ||||
|         "009e6ee9-d687-4201-9c55-f42d26cbd7b5" | ||||
|     ], | ||||
|     "ssid_broadcast": "enabled", | ||||
|     "wps": [ | ||||
|         "set", | ||||
|         [] | ||||
|     ], | ||||
|     "mcast2ucast": [ | ||||
|         "set", | ||||
|         [] | ||||
|     ], | ||||
|     "mode": "ap", | ||||
|     "mac_list_type": "none", | ||||
|     "wps_pbc_key_id": "", | ||||
|     "ft_psk": 0, | ||||
|     "channel": [ | ||||
|         "set", | ||||
|         [] | ||||
|     ], | ||||
|     "parent": [ | ||||
|         "set", | ||||
|         [] | ||||
|     ], | ||||
|     "multi_ap": [ | ||||
|         "set", | ||||
|         [] | ||||
|     ], | ||||
|     "ap_vlan_sta_addr": [ | ||||
|         "set", | ||||
|         [] | ||||
|     ], | ||||
|     "security": [ | ||||
|         "map", | ||||
|         [ | ||||
|             [ | ||||
|                 "encryption", | ||||
|                 "OPEN" | ||||
|             ] | ||||
|         ] | ||||
|     ], | ||||
|     "wds": [ | ||||
|         "set", | ||||
|         [] | ||||
|     ], | ||||
|     "enabled": true, | ||||
|     "vlan_id": 1, | ||||
|     "min_hw_mode": "11ac", | ||||
|     "vif_config": [ | ||||
|         "uuid", | ||||
|         "4aeefd3b-b86f-45e4-a9a1-c734363be9c8" | ||||
|     ], | ||||
|     "_version": [ | ||||
|         "uuid", | ||||
|         "e70c7842-6257-46d1-94d3-350a55733fc4" | ||||
|     ], | ||||
|     "bridge": "lan", | ||||
|     "group_rekey": 0, | ||||
|     "ft_mobility_domain": [ | ||||
|         "set", | ||||
|         [] | ||||
|     ], | ||||
|     "dynamic_beacon": [ | ||||
|         "set", | ||||
|         [] | ||||
|     ], | ||||
|     "rrm": 1 | ||||
| } | ||||
		Reference in New Issue
	
	Block a user