mirror of
				https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
				synced 2025-10-31 10:37:51 +00:00 
			
		
		
		
	Compare commits
	
		
			70 Commits
		
	
	
		
			WIFI-797-R
			...
			20201204-1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | b8cd98017d | ||
|   | 0c89e6c624 | ||
|   | becf59dc0f | ||
|   | feff3d6530 | ||
|   | 2e7a090722 | ||
|   | 6ece024535 | ||
|   | 4837b0e026 | ||
|   | 0eca082a4d | ||
|   | db4672a9a2 | ||
|   | 9e58a9d7b7 | ||
|   | f083c3488c | ||
|   | b28655a5bd | ||
|   | 124b6054b5 | ||
|   | d79917d20f | ||
|   | c0bb71aed2 | ||
|   | 5e32798159 | ||
|   | 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 | 
							
								
								
									
										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> | 	<name>opensync-ext-cloud</name> | ||||||
| 	<description>Configuration interface that provides config from the cloud services.</description> | 	<description>Configuration interface that provides config from the cloud services.</description> | ||||||
| 	<dependencies> | 	<dependencies> | ||||||
| 		<dependency> | <!-- 		<dependency> --> | ||||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | <!-- 			<groupId>com.telecominfraproject.wlan</groupId> --> | ||||||
| 			<artifactId>opensync-ext-interface</artifactId> | <!-- 			<artifactId>opensync-ext-interface</artifactId> --> | ||||||
| 			<version>${tip-wlan-cloud.release.version}</version> | <!-- 			<version>${tip-wlan-cloud.release.version}</version> --> | ||||||
| 		</dependency> | <!-- 		</dependency> --> | ||||||
| 		<dependency> | 		<dependency> | ||||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | 			<groupId>com.telecominfraproject.wlan</groupId> | ||||||
| 			<artifactId>opensync-gateway</artifactId> | 			<artifactId>opensync-gateway</artifactId> | ||||||
| 			<version>${tip-wlan-cloud.release.version}</version> | 			<version>${tip-wlan-cloud.release.version}</version> | ||||||
| 		</dependency> | 		</dependency> | ||||||
|  	  <dependency> |  	  | ||||||
|         <artifactId>base-container</artifactId> |  | ||||||
|         <groupId>com.telecominfraproject.wlan</groupId> |  | ||||||
|         <version>${tip-wlan-cloud.release.version}</version> |  | ||||||
|       </dependency> |  | ||||||
|         <dependency> |         <dependency> | ||||||
|             <artifactId>base-client</artifactId> |             <artifactId>base-client</artifactId> | ||||||
|             <groupId>com.telecominfraproject.wlan</groupId> |             <groupId>com.telecominfraproject.wlan</groupId> | ||||||
| @@ -39,7 +35,7 @@ | |||||||
|         <groupId>com.telecominfraproject.wlan</groupId> |         <groupId>com.telecominfraproject.wlan</groupId> | ||||||
|         <version>${tip-wlan-cloud.release.version}</version> |         <version>${tip-wlan-cloud.release.version}</version> | ||||||
|       </dependency> |       </dependency> | ||||||
|  |       | ||||||
|       <dependency> |       <dependency> | ||||||
|         <artifactId>customer-service-interface</artifactId> |         <artifactId>customer-service-interface</artifactId> | ||||||
|         <groupId>com.telecominfraproject.wlan</groupId> |         <groupId>com.telecominfraproject.wlan</groupId> | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -88,7 +88,6 @@ import sts.OpensyncStats.Client; | |||||||
| import sts.OpensyncStats.ClientReport; | import sts.OpensyncStats.ClientReport; | ||||||
| import sts.OpensyncStats.EventReport; | import sts.OpensyncStats.EventReport; | ||||||
| import sts.OpensyncStats.EventReport.ClientAssocEvent; | import sts.OpensyncStats.EventReport.ClientAssocEvent; | ||||||
| import sts.OpensyncStats.EventType; |  | ||||||
| import sts.OpensyncStats.RadioBandType; | import sts.OpensyncStats.RadioBandType; | ||||||
| import sts.OpensyncStats.Report; | import sts.OpensyncStats.Report; | ||||||
|  |  | ||||||
| @@ -162,20 +161,6 @@ public class OpensyncExternalIntegrationCloudTest { | |||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Test |  | ||||||
|     public void testGetCustomerEquipment() { |  | ||||||
|  |  | ||||||
|         Equipment equipment = new Equipment(); |  | ||||||
|         equipment.setDetails(ApElementConfiguration.createWithDefaults()); |  | ||||||
|  |  | ||||||
|         Mockito.when( |  | ||||||
|                 equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122"))) |  | ||||||
|                 .thenReturn(equipment); |  | ||||||
|         assertNotNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818122")); |  | ||||||
|         assertNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818133")); |  | ||||||
|  |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Test |     @Test | ||||||
|     public void testApConnected() { |     public void testApConnected() { | ||||||
|  |  | ||||||
| @@ -697,7 +682,7 @@ public class OpensyncExternalIntegrationCloudTest { | |||||||
|         protocolStatus.setCustomerId(2); |         protocolStatus.setCustomerId(2); | ||||||
|         protocolStatus.setEquipmentId(1L); |         protocolStatus.setEquipmentId(1L); | ||||||
|         EquipmentProtocolStatusData protocolStatusData = new EquipmentProtocolStatusData(); |         EquipmentProtocolStatusData protocolStatusData = new EquipmentProtocolStatusData(); | ||||||
|         protocolStatusData.setReportedCC(CountryCode.ca); |         protocolStatusData.setReportedCC(CountryCode.CA); | ||||||
|         protocolStatus.setDetails(protocolStatusData); |         protocolStatus.setDetails(protocolStatusData); | ||||||
|         protocolStatus.setStatusDataType(StatusDataType.PROTOCOL); |         protocolStatus.setStatusDataType(StatusDataType.PROTOCOL); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -7,6 +7,7 @@ import java.net.InetAddress; | |||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
|  | import com.telecominfraproject.wlan.systemevent.models.SystemEvent; | ||||||
| import org.junit.After; | import org.junit.After; | ||||||
| import org.junit.Before; | import org.junit.Before; | ||||||
| import org.junit.Ignore; | import org.junit.Ignore; | ||||||
| @@ -39,6 +40,8 @@ import com.telecominfraproject.wlan.core.model.equipment.MacAddress; | |||||||
| import com.telecominfraproject.wlan.core.model.equipment.RadioType; | import com.telecominfraproject.wlan.core.model.equipment.RadioType; | ||||||
| import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface; | import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface; | ||||||
| import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface; | import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface; | ||||||
|  | import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration; | ||||||
|  | import com.telecominfraproject.wlan.equipment.models.Equipment; | ||||||
| import com.telecominfraproject.wlan.firmware.FirmwareServiceInterface; | import com.telecominfraproject.wlan.firmware.FirmwareServiceInterface; | ||||||
| import com.telecominfraproject.wlan.location.service.LocationServiceInterface; | import com.telecominfraproject.wlan.location.service.LocationServiceInterface; | ||||||
| import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController; | import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController; | ||||||
| @@ -52,18 +55,21 @@ import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSIDs; | |||||||
| import com.telecominfraproject.wlan.status.models.Status; | import com.telecominfraproject.wlan.status.models.Status; | ||||||
| import com.telecominfraproject.wlan.status.models.StatusDataType; | import com.telecominfraproject.wlan.status.models.StatusDataType; | ||||||
|  |  | ||||||
|  | import sts.OpensyncStats; | ||||||
| import sts.OpensyncStats.AssocType; | import sts.OpensyncStats.AssocType; | ||||||
|  | import sts.OpensyncStats.ChannelSwitchReason; | ||||||
| import sts.OpensyncStats.Client; | import sts.OpensyncStats.Client; | ||||||
| import sts.OpensyncStats.ClientReport; | import sts.OpensyncStats.ClientReport; | ||||||
| import sts.OpensyncStats.DNSProbeMetric; | import sts.OpensyncStats.DNSProbeMetric; | ||||||
| import sts.OpensyncStats.EventReport; | import sts.OpensyncStats.EventReport; | ||||||
|  | import sts.OpensyncStats.EventReport.ChannelSwitchEvent; | ||||||
|  | import sts.OpensyncStats.EventReport.ClientAssocEvent; | ||||||
| import sts.OpensyncStats.NetworkProbe; | import sts.OpensyncStats.NetworkProbe; | ||||||
| import sts.OpensyncStats.RADIUSMetrics; | import sts.OpensyncStats.RADIUSMetrics; | ||||||
| import sts.OpensyncStats.RadioBandType; | import sts.OpensyncStats.RadioBandType; | ||||||
| import sts.OpensyncStats.Report; | import sts.OpensyncStats.Report; | ||||||
| import sts.OpensyncStats.StateUpDown; | import sts.OpensyncStats.StateUpDown; | ||||||
| import sts.OpensyncStats.VLANMetrics; | import sts.OpensyncStats.VLANMetrics; | ||||||
| import sts.OpensyncStats.EventReport.ClientAssocEvent; |  | ||||||
|  |  | ||||||
| @RunWith(SpringRunner.class) | @RunWith(SpringRunner.class) | ||||||
| @ActiveProfiles(profiles = { "integration_test", }) | @ActiveProfiles(profiles = { "integration_test", }) | ||||||
| @@ -164,6 +170,20 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest { | |||||||
|  |  | ||||||
|     @Test |     @Test | ||||||
|     public void testProcessMqttMessageStringReport() { |     public void testProcessMqttMessageStringReport() { | ||||||
|  |         Equipment equipment = new Equipment(); | ||||||
|  |  | ||||||
|  |         equipment.setDetails(ApElementConfiguration.createWithDefaults()); | ||||||
|  |          | ||||||
|  |         equipment.setId(1L); | ||||||
|  |  | ||||||
|  |         Mockito.when( | ||||||
|  |                 equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122"))) | ||||||
|  |                 .thenReturn(equipment); | ||||||
|  |          | ||||||
|  |         equipment.setProfileId(0L); | ||||||
|  |          | ||||||
|  |         Mockito.when(equipmentServiceInterface.getOrNull(1L)).thenReturn(equipment); | ||||||
|  |         Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment); | ||||||
|  |  | ||||||
|         Report report = Report.newBuilder().setNodeID("21P10C68818122") |         Report report = Report.newBuilder().setNodeID("21P10C68818122") | ||||||
|                 .addAllClients(getOpensyncStatsClientReportsList()) |                 .addAllClients(getOpensyncStatsClientReportsList()) | ||||||
| @@ -239,6 +259,55 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest { | |||||||
|         // TODO: implement me when wcs stats reports supported |         // TODO: implement me when wcs stats reports supported | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     // Verify CallStart, CallStop and CallReport are properly processed and published as | ||||||
|  |     // respective events (5 events in total) | ||||||
|  |     @Test | ||||||
|  |     public void testProcessMqttMessageStringMultipleVideoVoiceReport() { | ||||||
|  |         OpensyncStats.VideoVoiceReport.Builder callStartVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder(). | ||||||
|  |                 setCallStart(getDefaultCallStart()); | ||||||
|  |         OpensyncStats.VideoVoiceReport.Builder callReportGotPublishVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder(). | ||||||
|  |                 setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.GOT_PUBLISH, 121, 1028, 1316, 1888, 298, 2, 100, 200)); | ||||||
|  |         OpensyncStats.VideoVoiceReport.Builder callReportRoamedToVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder(). | ||||||
|  |                 setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_TO, 123, 1020, 1116, 1345, 223, 0, 102, 203)); | ||||||
|  |         OpensyncStats.VideoVoiceReport.Builder callReportRoamedFromVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder(). | ||||||
|  |                 setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_FROM, 122, 1029, 1300, 1234, 111, 3, 101, 201)); | ||||||
|  |         OpensyncStats.VideoVoiceReport.Builder callStopVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder(). | ||||||
|  |                 setCallStop(getDefaultCallStop()); | ||||||
|  |         // Create report with multiple voiceReports in one | ||||||
|  |         Report multipleVoiceReportsInOneReport = Report.newBuilder().addVideoVoiceReport(callStartVoiceReportBuilder). | ||||||
|  |                 addVideoVoiceReport(callReportGotPublishVoiceReportBuilder). | ||||||
|  |                 addVideoVoiceReport(callReportRoamedFromVoiceReportBuilder). | ||||||
|  |                 addVideoVoiceReport(callReportRoamedToVoiceReportBuilder). | ||||||
|  |                 addVideoVoiceReport(callStopVoiceReportBuilder). | ||||||
|  |                 setNodeID("1"). | ||||||
|  |                 build(); | ||||||
|  |  | ||||||
|  |         opensyncExternalIntegrationMqttProcessor.populateSipCallReport(null, multipleVoiceReportsInOneReport, 1, 2L, "TestAP", 12L); | ||||||
|  |  | ||||||
|  |         Mockito.verify(equipmentMetricsCollectorInterface, Mockito.times(1)).publishEventsBulk(Mockito.anyList()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     // Create report with 1 voiceReports that contains multiple Calls | ||||||
|  |     // Note that GOT_PUBLISH and ROAMED_FROM are ignored in the CallReport. ROAMED_TO overwrites them | ||||||
|  |     @Test | ||||||
|  |     public void testProcessMqttMessageStringOneVideoVoiceReport() { | ||||||
|  |  | ||||||
|  |         OpensyncStats.VideoVoiceReport.Builder videoVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder(). | ||||||
|  |                 setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.GOT_PUBLISH, 121, 1028, 1316,1888, 298, 2, 100,200)). | ||||||
|  |                 setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_FROM, 122, 1029, 1300,1234, 111, 3, 101,201)). | ||||||
|  |                 setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_TO, 123, 1020, 1116,1345, 223, 0, 102,203)). | ||||||
|  |                 setCallStart(getDefaultCallStart()). | ||||||
|  |                 setCallStop(getDefaultCallStop()); | ||||||
|  |         Report oneVoiceReportWithMultipleCallsInOneReport = Report.getDefaultInstance().toBuilder(). | ||||||
|  |                 addVideoVoiceReport(videoVoiceReportBuilder). | ||||||
|  |                 setNodeID("1"). | ||||||
|  |                 build(); | ||||||
|  |  | ||||||
|  |         opensyncExternalIntegrationMqttProcessor.populateSipCallReport(null, oneVoiceReportWithMultipleCallsInOneReport, 1, 2L, "TestAP", 12L); | ||||||
|  |  | ||||||
|  |         Mockito.verify(equipmentMetricsCollectorInterface, Mockito.times(1)).publishEventsBulk(Mockito.anyList()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Test |     @Test | ||||||
|     public void testpopulateNetworkProbeMetrics() throws Exception { |     public void testpopulateNetworkProbeMetrics() throws Exception { | ||||||
|  |  | ||||||
| @@ -297,6 +366,74 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest { | |||||||
|         return bssidList; |         return bssidList; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     private OpensyncStats.CallStart getDefaultCallStart() { | ||||||
|  |         OpensyncStats.CallStart.Builder callStartBuilder = OpensyncStats.CallStart.newBuilder(); | ||||||
|  |         callStartBuilder.setBand(RadioBandType.BAND5G); | ||||||
|  |         callStartBuilder.setChannel(40); | ||||||
|  |         callStartBuilder.addCodecs("110 opus/48000/2"); | ||||||
|  |         callStartBuilder.addCodecs("102 iLBC/8000"); | ||||||
|  |         callStartBuilder.setClientMac(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes())); | ||||||
|  |         callStartBuilder.setDeviceInfo("Test Device"); | ||||||
|  |         callStartBuilder.setProviderDomain("skype"); | ||||||
|  |         callStartBuilder.setSessionId(123L); | ||||||
|  |         callStartBuilder.setWifiSessionId(1234L); | ||||||
|  |  | ||||||
|  |         return callStartBuilder.build(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private OpensyncStats.CallStop getDefaultCallStop() { | ||||||
|  |         OpensyncStats.CallStop.Builder callStopBuilder = OpensyncStats.CallStop.newBuilder(); | ||||||
|  |         callStopBuilder.setBand(RadioBandType.BAND5G); | ||||||
|  |         callStopBuilder.setChannel(40); | ||||||
|  |         callStopBuilder.addCodecs("110 opus/48000/2"); | ||||||
|  |         callStopBuilder.addCodecs("102 iLBC/8000"); | ||||||
|  |         callStopBuilder.setClientMac(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes())); | ||||||
|  |         callStopBuilder.setCallDuration(1230); | ||||||
|  |         callStopBuilder.setProviderDomain("skype"); | ||||||
|  |         callStopBuilder.setSessionId(123L); | ||||||
|  |         callStopBuilder.setWifiSessionId(1234L); | ||||||
|  |         callStopBuilder.setReason(OpensyncStats.CallStop.CallStopReason.BYE_OK); | ||||||
|  |         callStopBuilder.addStats(getRtpFlowStats(121, 1380, 1400,3000, 119, 3, 205,350)); | ||||||
|  |  | ||||||
|  |         return callStopBuilder.build(); | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     private OpensyncStats.RtpFlowStats getRtpFlowStats(int codec, int jitter, int latency, int totalPackets, | ||||||
|  |                                                        int totalPacketsLost, int mos, int firstRtpSeq, int lastRtpSeq) { | ||||||
|  |         OpensyncStats.RtpFlowStats.Builder rtpFlowStatsBuilder = OpensyncStats.RtpFlowStats.newBuilder(); | ||||||
|  |         rtpFlowStatsBuilder.setCodec(codec); | ||||||
|  |         rtpFlowStatsBuilder.setBlockCodecs(ByteString.copyFrom(new byte[] { (byte) 0xe6, 0x1 })); | ||||||
|  |         rtpFlowStatsBuilder.setDirection(OpensyncStats.RtpFlowStats.RtpFlowDirection.RTP_DOWNSTREAM); | ||||||
|  |         rtpFlowStatsBuilder.setRtpFlowType(OpensyncStats.RtpFlowStats.RtpFlowType.RTP_VOICE); | ||||||
|  |         rtpFlowStatsBuilder.setJitter(jitter); | ||||||
|  |         rtpFlowStatsBuilder.setLatency(latency); | ||||||
|  |         rtpFlowStatsBuilder.setTotalPacketsSent(totalPackets); | ||||||
|  |         rtpFlowStatsBuilder.setTotalPacketsLost(totalPacketsLost); | ||||||
|  |         rtpFlowStatsBuilder.setMosx100(mos); | ||||||
|  |         rtpFlowStatsBuilder.setRtpSeqFirst(firstRtpSeq); | ||||||
|  |         rtpFlowStatsBuilder.setRtpSeqLast(lastRtpSeq); | ||||||
|  |  | ||||||
|  |         return rtpFlowStatsBuilder.build(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private OpensyncStats.CallReport getDefaultCallReport(OpensyncStats.CallReport.CallReportReason reason, int codec, | ||||||
|  |                                                           int jitter, int latency, int totalPackets, int totalPacketsLost, | ||||||
|  |                                                           int mos, int firstRtpSeq, int lastRtpSeq) { | ||||||
|  |         OpensyncStats.CallReport.Builder callReportBuilder = OpensyncStats.CallReport.newBuilder(); | ||||||
|  |         callReportBuilder.setBand(RadioBandType.BAND5G); | ||||||
|  |         callReportBuilder.setChannel(40); | ||||||
|  |         callReportBuilder.addCodecs("110 opus/48000/2"); | ||||||
|  |         callReportBuilder.addCodecs("102 iLBC/8000"); | ||||||
|  |         callReportBuilder.setClientMac(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes())); | ||||||
|  |         callReportBuilder.setProviderDomain("skype"); | ||||||
|  |         callReportBuilder.setSessionId(123L); | ||||||
|  |         callReportBuilder.setWifiSessionId(1234L); | ||||||
|  |         callReportBuilder.setReason(reason); | ||||||
|  |         callReportBuilder.addStats(getRtpFlowStats(codec, jitter, latency, totalPackets, totalPacketsLost, | ||||||
|  |                 mos, firstRtpSeq, lastRtpSeq)); | ||||||
|  |  | ||||||
|  |         return callReportBuilder.build(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     private List<EventReport> getOpensyncStatsEventReportsList() { |     private List<EventReport> getOpensyncStatsEventReportsList() { | ||||||
|  |  | ||||||
| @@ -341,8 +478,15 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest { | |||||||
|         clientSessionBuilder.addAllClientAssocEvent(clientAssocEventList); |         clientSessionBuilder.addAllClientAssocEvent(clientAssocEventList); | ||||||
|         List<sts.OpensyncStats.EventReport.ClientSession> clientSessionList = new ArrayList<>(); |         List<sts.OpensyncStats.EventReport.ClientSession> clientSessionList = new ArrayList<>(); | ||||||
|         clientSessionList.add(clientSessionBuilder.build()); |         clientSessionList.add(clientSessionBuilder.build()); | ||||||
|  |          | ||||||
|  |         sts.OpensyncStats.EventReport.ChannelSwitchEvent.Builder channelSwitchEventBuilder = sts.OpensyncStats.EventReport.ChannelSwitchEvent.getDefaultInstance().toBuilder(); | ||||||
|  |         channelSwitchEventBuilder.setBand(RadioBandType.BAND5GL).setChannel(40).setReason(ChannelSwitchReason.high_interference).setTimestampMs(System.currentTimeMillis()); | ||||||
|  |  | ||||||
|  |         List<ChannelSwitchEvent> channelSwitchEventList = new ArrayList<>(); | ||||||
|  |         channelSwitchEventList.add(channelSwitchEventBuilder.build()); | ||||||
|  |          | ||||||
|         eventReportBuilder.addAllClientSession(clientSessionList); |         eventReportBuilder.addAllClientSession(clientSessionList); | ||||||
|  |         eventReportBuilder.addAllChannelSwitch(channelSwitchEventList); | ||||||
|  |  | ||||||
|         eventReportList.add(eventReportBuilder.build()); |         eventReportList.add(eventReportBuilder.build()); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -22,11 +22,7 @@ | |||||||
| 			<artifactId>tip-wlan-opensync-protobuf</artifactId> | 			<artifactId>tip-wlan-opensync-protobuf</artifactId> | ||||||
| 			<version>${tip-wlan-cloud.release.version}</version> | 			<version>${tip-wlan-cloud.release.version}</version> | ||||||
| 		</dependency> | 		</dependency> | ||||||
| 		<dependency> | 		 | ||||||
| 			<artifactId>customer-models</artifactId> |  | ||||||
| 			<groupId>com.telecominfraproject.wlan</groupId> |  | ||||||
| 			<version>${tip-wlan-cloud.release.version}</version> |  | ||||||
| 		</dependency> |  | ||||||
| 		<dependency> | 		<dependency> | ||||||
| 			<artifactId>equipment-models</artifactId> | 			<artifactId>equipment-models</artifactId> | ||||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | 			<groupId>com.telecominfraproject.wlan</groupId> | ||||||
| @@ -47,11 +43,7 @@ | |||||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | 			<groupId>com.telecominfraproject.wlan</groupId> | ||||||
| 			<version>${tip-wlan-cloud.release.version}</version> | 			<version>${tip-wlan-cloud.release.version}</version> | ||||||
| 		</dependency> | 		</dependency> | ||||||
| 		<dependency> | 		 | ||||||
| 			<artifactId>client-models</artifactId> |  | ||||||
| 			<groupId>com.telecominfraproject.wlan</groupId> |  | ||||||
| 			<version>${tip-wlan-cloud.release.version}</version> |  | ||||||
| 		</dependency> |  | ||||||
|  |  | ||||||
| 		<dependency> | 		<dependency> | ||||||
| 			<groupId>com.vmware.ovsdb</groupId> | 			<groupId>com.vmware.ovsdb</groupId> | ||||||
|   | |||||||
| @@ -3,6 +3,7 @@ package com.telecominfraproject.wlan.opensync.external.integration.models; | |||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.HashSet; | import java.util.HashSet; | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  | import java.util.Objects; | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
|  |  | ||||||
| import com.telecominfraproject.wlan.core.model.entity.CountryCode; | import com.telecominfraproject.wlan.core.model.entity.CountryCode; | ||||||
| @@ -282,4 +283,34 @@ public class OpensyncAPConfig extends BaseJsonModel { | |||||||
|     public List<Profile> getMetricsProfiles() { |     public List<Profile> getMetricsProfiles() { | ||||||
|         return metricsProfile;        |         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.telecominfraproject.wlan.core.model.json.BaseJsonModel; | ||||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||||
|  |  | ||||||
| public class OpensyncAPInetState extends BaseJsonModel  { | public class OpensyncAPInetState extends BaseJsonModel { | ||||||
|  |  | ||||||
|  |  | ||||||
| 	private static final long serialVersionUID = 1707053648715030173L; | 	private static final long serialVersionUID = 1707053648715030173L; | ||||||
| 	 |  | ||||||
| 	public String ifName; | 	public String ifName; | ||||||
| 	public String dhcpd; | 	public Map<String, String> dhcpd; | ||||||
| 	public String unpnpMode; | 	public String unpnpMode; | ||||||
| 	public String ifType; | 	public String ifType; | ||||||
| 	public String softwdsMacAddr; | 	public String softwdsMacAddr; | ||||||
| @@ -37,175 +36,423 @@ public class OpensyncAPInetState extends BaseJsonModel  { | |||||||
| 	public String inetConfig; | 	public String inetConfig; | ||||||
| 	public Uuid _uuid; | 	public Uuid _uuid; | ||||||
| 	public Uuid version; | 	public Uuid version; | ||||||
|  | 	public String greLocalInetAddr; | ||||||
|  | 	public String greRemoteMacAddr; | ||||||
|  |  | ||||||
| 	 |  | ||||||
| 	 |  | ||||||
| 	 |  | ||||||
| 	public OpensyncAPInetState() { | 	public OpensyncAPInetState() { | ||||||
|         super(); | 		super(); | ||||||
|         dns = new HashMap<>(); | 		dns = new HashMap<>(); | ||||||
|         dhcpc = new HashMap<>(); | 		dhcpc = new HashMap<>(); | ||||||
|     } | 	} | ||||||
|     public String getIfName() { |  | ||||||
|  | 	public String getIfName() { | ||||||
| 		return ifName; | 		return ifName; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setIfName(String ifName) { | 	public void setIfName(String ifName) { | ||||||
| 		this.ifName = ifName; | 		this.ifName = ifName; | ||||||
| 	} | 	} | ||||||
| 	public String getDhcpd() { |  | ||||||
|  | 	public Map<String, String> getDhcpd() { | ||||||
| 		return dhcpd; | 		return dhcpd; | ||||||
| 	} | 	} | ||||||
| 	public void setDhcpd(String dhcpd) { |  | ||||||
|  | 	public void setDhcpd(Map<String, String> dhcpd) { | ||||||
| 		this.dhcpd = dhcpd; | 		this.dhcpd = dhcpd; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getUnpnpMode() { | 	public String getUnpnpMode() { | ||||||
| 		return unpnpMode; | 		return unpnpMode; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setUnpnpMode(String unpnpMode) { | 	public void setUnpnpMode(String unpnpMode) { | ||||||
| 		this.unpnpMode = unpnpMode; | 		this.unpnpMode = unpnpMode; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getIfType() { | 	public String getIfType() { | ||||||
| 		return ifType; | 		return ifType; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setIfType(String ifType) { | 	public void setIfType(String ifType) { | ||||||
| 		this.ifType = ifType; | 		this.ifType = ifType; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getSoftwdsMacAddr() { | 	public String getSoftwdsMacAddr() { | ||||||
| 		return softwdsMacAddr; | 		return softwdsMacAddr; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setSoftwdsMacAddr(String softwdsMacAddr) { | 	public void setSoftwdsMacAddr(String softwdsMacAddr) { | ||||||
| 		this.softwdsMacAddr = softwdsMacAddr; | 		this.softwdsMacAddr = softwdsMacAddr; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public boolean isEnabled() { | 	public boolean isEnabled() { | ||||||
| 		return enabled; | 		return enabled; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setEnabled(boolean enabled) { | 	public void setEnabled(boolean enabled) { | ||||||
| 		this.enabled = enabled; | 		this.enabled = enabled; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public boolean isSofwdsWrap() { | 	public boolean isSofwdsWrap() { | ||||||
| 		return sofwdsWrap; | 		return sofwdsWrap; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setSofwdsWrap(boolean sofwdsWrap) { | 	public void setSofwdsWrap(boolean sofwdsWrap) { | ||||||
| 		this.sofwdsWrap = sofwdsWrap; | 		this.sofwdsWrap = sofwdsWrap; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public int getVlanId() { | 	public int getVlanId() { | ||||||
| 		return vlanId; | 		return vlanId; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setVlanId(int vlanId) { | 	public void setVlanId(int vlanId) { | ||||||
| 		this.vlanId = vlanId; | 		this.vlanId = vlanId; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getNetmask() { | 	public String getNetmask() { | ||||||
| 		return netmask; | 		return netmask; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setNetmask(String netmask) { | 	public void setNetmask(String netmask) { | ||||||
| 		this.netmask = netmask; | 		this.netmask = netmask; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public boolean isNat() { | 	public boolean isNat() { | ||||||
| 		return nat; | 		return nat; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setNat(boolean nat) { | 	public void setNat(boolean nat) { | ||||||
| 		this.nat = nat; | 		this.nat = nat; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getGreRemoteInetAddr() { | 	public String getGreRemoteInetAddr() { | ||||||
| 		return greRemoteInetAddr; | 		return greRemoteInetAddr; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setGreRemoteInetAddr(String greRemoteInetAddr) { | 	public void setGreRemoteInetAddr(String greRemoteInetAddr) { | ||||||
| 		this.greRemoteInetAddr = greRemoteInetAddr; | 		this.greRemoteInetAddr = greRemoteInetAddr; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getIfUuid() { | 	public String getIfUuid() { | ||||||
| 		return ifUuid; | 		return ifUuid; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setIfUuid(String ifUuid) { | 	public void setIfUuid(String ifUuid) { | ||||||
| 		this.ifUuid = ifUuid; | 		this.ifUuid = ifUuid; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getInetAddr() { | 	public String getInetAddr() { | ||||||
| 		return inetAddr; | 		return inetAddr; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setInetAddr(String inetAddr) { | 	public void setInetAddr(String inetAddr) { | ||||||
| 		this.inetAddr = inetAddr; | 		this.inetAddr = inetAddr; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getHwAddr() { | 	public String getHwAddr() { | ||||||
| 		return hwAddr; | 		return hwAddr; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setHwAddr(String hwAddr) { | 	public void setHwAddr(String hwAddr) { | ||||||
| 		this.hwAddr = hwAddr; | 		this.hwAddr = hwAddr; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public int getMtw() { | 	public int getMtw() { | ||||||
| 		return mtw; | 		return mtw; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setMtw(int mtw) { | 	public void setMtw(int mtw) { | ||||||
| 		this.mtw = mtw; | 		this.mtw = mtw; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public boolean isNetwork() { | 	public boolean isNetwork() { | ||||||
| 		return network; | 		return network; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setNetwork(boolean network) { | 	public void setNetwork(boolean network) { | ||||||
| 		this.network = network; | 		this.network = network; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public Map<String, String> getDns() { | 	public Map<String, String> getDns() { | ||||||
| 		return dns; | 		return dns; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setDns(Map<String, String> dns) { | 	public void setDns(Map<String, String> dns) { | ||||||
| 		this.dns = dns; | 		this.dns = dns; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getParentIfName() { | 	public String getParentIfName() { | ||||||
| 		return parentIfName; | 		return parentIfName; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setParentIfName(String parentIfName) { | 	public void setParentIfName(String parentIfName) { | ||||||
| 		this.parentIfName = parentIfName; | 		this.parentIfName = parentIfName; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getGreIfName() { | 	public String getGreIfName() { | ||||||
| 		return greIfName; | 		return greIfName; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setGreIfName(String greIfName) { | 	public void setGreIfName(String greIfName) { | ||||||
| 		this.greIfName = greIfName; | 		this.greIfName = greIfName; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getBroadcast() { | 	public String getBroadcast() { | ||||||
| 		return broadcast; | 		return broadcast; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setBroadcast(String broadcast) { | 	public void setBroadcast(String broadcast) { | ||||||
| 		this.broadcast = broadcast; | 		this.broadcast = broadcast; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public Map<String, String> getDhcpc() { | 	public Map<String, String> getDhcpc() { | ||||||
| 		return dhcpc; | 		return dhcpc; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setDhcpc(Map<String, String> dhcpc) { | 	public void setDhcpc(Map<String, String> dhcpc) { | ||||||
| 		this.dhcpc = dhcpc; | 		this.dhcpc = dhcpc; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getGateway() { | 	public String getGateway() { | ||||||
| 		return gateway; | 		return gateway; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setGateway(String gateway) { | 	public void setGateway(String gateway) { | ||||||
| 		this.gateway = gateway; | 		this.gateway = gateway; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getIpAssignScheme() { | 	public String getIpAssignScheme() { | ||||||
| 		return ipAssignScheme; | 		return ipAssignScheme; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setIpAssignScheme(String ipAssignScheme) { | 	public void setIpAssignScheme(String ipAssignScheme) { | ||||||
| 		this.ipAssignScheme = ipAssignScheme; | 		this.ipAssignScheme = ipAssignScheme; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public String getInetConfig() { | 	public String getInetConfig() { | ||||||
| 		return inetConfig; | 		return inetConfig; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setInetConfig(String inetConfig) { | 	public void setInetConfig(String inetConfig) { | ||||||
| 		this.inetConfig = inetConfig; | 		this.inetConfig = inetConfig; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public static long getSerialversionuid() { | 	public static long getSerialversionuid() { | ||||||
| 		return serialVersionUID; | 		return serialVersionUID; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public Uuid get_uuid() { | 	public Uuid get_uuid() { | ||||||
| 		return _uuid; | 		return _uuid; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void set_uuid(Uuid _uuid) { | 	public void set_uuid(Uuid _uuid) { | ||||||
| 		this._uuid = _uuid; | 		this._uuid = _uuid; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public Uuid getVersion() { | 	public Uuid getVersion() { | ||||||
| 		return version; | 		return version; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void setVersion(Uuid version) { | 	public void setVersion(Uuid version) { | ||||||
| 		this.version = 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> |   <dependencies> | ||||||
|   	<dependency> |   	<dependency> | ||||||
|   		<groupId>com.telecominfraproject.wlan</groupId> |   		<groupId>com.telecominfraproject.wlan</groupId> | ||||||
|   		<artifactId>opensync-ext-interface</artifactId> |   		<artifactId>opensync-gateway</artifactId> | ||||||
|   		<version>${tip-wlan-cloud.release.version}</version> |   		<version>${tip-wlan-cloud.release.version}</version> | ||||||
|   	</dependency> |   	</dependency> | ||||||
|   </dependencies> |   </dependencies> | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|   "model_type": "Equipment", |   "model_type": "Equipment", | ||||||
|   "id": 51, |   "id": 51, | ||||||
|   "customerId": 2, |   "customerId": 2, | ||||||
|   "profileId": 5, |   "profileId": 12, | ||||||
|   "locationId": 8, |   "locationId": 8, | ||||||
|   "equipmentType": "AP", |   "equipmentType": "AP", | ||||||
|   "inventoryId": "Test_Client_21P10C68818122", |   "inventoryId": "Test_Client_21P10C68818122", | ||||||
| @@ -38,37 +38,28 @@ | |||||||
|         "channelNumber": 6, |         "channelNumber": 6, | ||||||
|         "manualChannelNumber": 6, |         "manualChannelNumber": 6, | ||||||
|         "backupChannelNumber": 11, |         "backupChannelNumber": 11, | ||||||
|         "autoChannelSelection": false, |  | ||||||
|         "channelBandwidth": "is20MHz", |  | ||||||
|         "bannedChannels": [], |         "bannedChannels": [], | ||||||
|         "allowedChannels": [], |         "allowedChannels": [], | ||||||
|         "rxCellSizeDb": { |         "rxCellSizeDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "probeResponseThresholdDb": { |         "probeResponseThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "clientDisconnectThresholdDb": { |         "clientDisconnectThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "eirpTxPower": { |         "eirpTxPower": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": false, |         	 "source": "auto", | ||||||
|           "value": 32 |           "value": 32 | ||||||
|         }, |         }, | ||||||
|         "bestApEnabled": null, |  | ||||||
|         "neighbouringListApConfig": { |  | ||||||
|           "model_type": "NeighbouringAPListConfiguration", |  | ||||||
|           "minSignal": -85, |  | ||||||
|           "maxAps": 25 |  | ||||||
|         }, |  | ||||||
|         "minAutoCellSize": -80, |  | ||||||
|         "perimeterDetectionEnabled": true, |         "perimeterDetectionEnabled": true, | ||||||
|         "bestAPSteerType": "both", |         "bestAPSteerType": "both", | ||||||
|         "deauthAttackDetection": null, |         "deauthAttackDetection": null, | ||||||
| @@ -81,37 +72,28 @@ | |||||||
|         "channelNumber": 149, |         "channelNumber": 149, | ||||||
|         "manualChannelNumber": 149, |         "manualChannelNumber": 149, | ||||||
|         "backupChannelNumber": 154, |         "backupChannelNumber": 154, | ||||||
|         "autoChannelSelection": false, |  | ||||||
|         "channelBandwidth": "is80MHz", |  | ||||||
|         "bannedChannels": [], |         "bannedChannels": [], | ||||||
|         "allowedChannels": [], |         "allowedChannels": [], | ||||||
|         "rxCellSizeDb": { |         "rxCellSizeDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "probeResponseThresholdDb": { |         "probeResponseThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "clientDisconnectThresholdDb": { |         "clientDisconnectThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "eirpTxPower": { |         "eirpTxPower": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": false, |         	 "source": "auto", | ||||||
|           "value": 32 |           "value": 32 | ||||||
|         }, |         }, | ||||||
|         "bestApEnabled": null, |  | ||||||
|         "neighbouringListApConfig": { |  | ||||||
|           "model_type": "NeighbouringAPListConfiguration", |  | ||||||
|           "minSignal": -85, |  | ||||||
|           "maxAps": 25 |  | ||||||
|         }, |  | ||||||
|         "minAutoCellSize": -80, |  | ||||||
|         "perimeterDetectionEnabled": true, |         "perimeterDetectionEnabled": true, | ||||||
|         "bestAPSteerType": "both", |         "bestAPSteerType": "both", | ||||||
|         "deauthAttackDetection": null, |         "deauthAttackDetection": null, | ||||||
| @@ -124,37 +106,28 @@ | |||||||
|         "channelNumber": 36, |         "channelNumber": 36, | ||||||
|         "manualChannelNumber": 36, |         "manualChannelNumber": 36, | ||||||
|         "backupChannelNumber": 44, |         "backupChannelNumber": 44, | ||||||
|         "autoChannelSelection": false, |  | ||||||
|         "channelBandwidth": "is80MHz", |  | ||||||
|         "bannedChannels": [], |         "bannedChannels": [], | ||||||
|         "allowedChannels": [], |         "allowedChannels": [], | ||||||
|         "rxCellSizeDb": { |         "rxCellSizeDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "probeResponseThresholdDb": { |         "probeResponseThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "clientDisconnectThresholdDb": { |         "clientDisconnectThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "eirpTxPower": { |         "eirpTxPower": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": false, |         	 "source": "auto", | ||||||
|           "value": 32 |           "value": 32 | ||||||
|         }, |         }, | ||||||
|         "bestApEnabled": null, |  | ||||||
|         "neighbouringListApConfig": { |  | ||||||
|           "model_type": "NeighbouringAPListConfiguration", |  | ||||||
|           "minSignal": -85, |  | ||||||
|           "maxAps": 25 |  | ||||||
|         }, |  | ||||||
|         "minAutoCellSize": -80, |  | ||||||
|         "perimeterDetectionEnabled": true, |         "perimeterDetectionEnabled": true, | ||||||
|         "bestAPSteerType": "both", |         "bestAPSteerType": "both", | ||||||
|         "deauthAttackDetection": null, |         "deauthAttackDetection": null, | ||||||
| @@ -168,39 +141,24 @@ | |||||||
|         "radioType": "is2dot4GHz", |         "radioType": "is2dot4GHz", | ||||||
|         "radioAdminState": "enabled", |         "radioAdminState": "enabled", | ||||||
|         "fragmentationThresholdBytes": 2346, |         "fragmentationThresholdBytes": 2346, | ||||||
|         "rtsCtsThreshold": 65535, |  | ||||||
|         "autoChannelSelection": "disabled", |  | ||||||
|         "radioMode": "modeN", |  | ||||||
|         "mimoMode": "twoByTwo", |  | ||||||
|         "wmmState": "enabled", |  | ||||||
|         "uapsdState": "enabled", |         "uapsdState": "enabled", | ||||||
|         "maxNumClients": 100, |  | ||||||
|         "stationIsolation": "disabled", |         "stationIsolation": "disabled", | ||||||
|         "multicastRate": "auto", |         "managementRate": { | ||||||
|         "managementRate": "auto", |           "model_type": "SourceSelectionManagement", | ||||||
|         "activeScanSettings": { |           "source": "auto", | ||||||
|           "model_type": "ActiveScanSettings", |           "value": "auto" | ||||||
|           "enabled": true, |  | ||||||
|           "scanFrequencySeconds": 10, |  | ||||||
|           "scanDurationMillis": 65 |  | ||||||
|         }, |  | ||||||
|         "channelHopSettings": { |  | ||||||
|           "model_type": "ChannelHopSettings", |  | ||||||
|           "noiseFloorThresholdInDB": -75, |  | ||||||
|           "noiseFloorThresholdTimeInSeconds": 180, |  | ||||||
|           "nonWifiThresholdInPercentage": 50, |  | ||||||
|           "nonWifiThresholdTimeInSeconds": 180, |  | ||||||
|           "obssHopMode": "NON_WIFI" |  | ||||||
|         }, |         }, | ||||||
|         "bestApSettings": { |         "bestApSettings": { | ||||||
|           "model_type": "RadioBestApSettings", |         "model_type": "SourceSelectionSteering", | ||||||
|           "mlComputed": true, |           "source": "auto", | ||||||
|           "dropInSnrPercentage": 20, |           "value": { | ||||||
|           "minLoadFactor": 50 | 	          "model_type": "RadioBestApSettings", | ||||||
|  | 	          "mlComputed": true, | ||||||
|  | 	          "dropInSnrPercentage": 30, | ||||||
|  | 	          "minLoadFactor": 40 | ||||||
|  |           } | ||||||
|         }, |         }, | ||||||
|         "forceScanDuringVoice": "disabled", |  | ||||||
|         "legacyBSSRate": "enabled", |         "legacyBSSRate": "enabled", | ||||||
|         "beaconInterval": 100, |  | ||||||
|         "deauthAttackDetection": null |         "deauthAttackDetection": null | ||||||
|       }, |       }, | ||||||
|       "is5GHzU": { |       "is5GHzU": { | ||||||
| @@ -208,39 +166,24 @@ | |||||||
|         "radioType": "is5GHzU", |         "radioType": "is5GHzU", | ||||||
|         "radioAdminState": "enabled", |         "radioAdminState": "enabled", | ||||||
|         "fragmentationThresholdBytes": 2346, |         "fragmentationThresholdBytes": 2346, | ||||||
|         "rtsCtsThreshold": 65535, |  | ||||||
|         "autoChannelSelection": "disabled", |  | ||||||
|         "radioMode": "modeAC", |  | ||||||
|         "mimoMode": "twoByTwo", |  | ||||||
|         "wmmState": "enabled", |  | ||||||
|         "uapsdState": "enabled", |         "uapsdState": "enabled", | ||||||
|         "maxNumClients": 100, |  | ||||||
|         "stationIsolation": "disabled", |         "stationIsolation": "disabled", | ||||||
|         "multicastRate": "auto", |         "managementRate": { | ||||||
|         "managementRate": "auto", |           "model_type": "SourceSelectionManagement", | ||||||
|         "activeScanSettings": { |           "source": "auto", | ||||||
|           "model_type": "ActiveScanSettings", |           "value": "auto" | ||||||
|           "enabled": true, |  | ||||||
|           "scanFrequencySeconds": 10, |  | ||||||
|           "scanDurationMillis": 65 |  | ||||||
|         }, |  | ||||||
|         "channelHopSettings": { |  | ||||||
|           "model_type": "ChannelHopSettings", |  | ||||||
|           "noiseFloorThresholdInDB": -75, |  | ||||||
|           "noiseFloorThresholdTimeInSeconds": 180, |  | ||||||
|           "nonWifiThresholdInPercentage": 50, |  | ||||||
|           "nonWifiThresholdTimeInSeconds": 180, |  | ||||||
|           "obssHopMode": "NON_WIFI" |  | ||||||
|         }, |         }, | ||||||
|         "bestApSettings": { |         "bestApSettings": { | ||||||
|           "model_type": "RadioBestApSettings", |         "model_type": "SourceSelectionSteering", | ||||||
|           "mlComputed": true, |           "source": "auto", | ||||||
|           "dropInSnrPercentage": 30, |           "value": { | ||||||
|           "minLoadFactor": 40 | 	          "model_type": "RadioBestApSettings", | ||||||
|  | 	          "mlComputed": true, | ||||||
|  | 	          "dropInSnrPercentage": 30, | ||||||
|  | 	          "minLoadFactor": 40 | ||||||
|  |           } | ||||||
|         }, |         }, | ||||||
|         "forceScanDuringVoice": "disabled", |  | ||||||
|         "legacyBSSRate": "enabled", |         "legacyBSSRate": "enabled", | ||||||
|         "beaconInterval": 100, |  | ||||||
|         "deauthAttackDetection": null |         "deauthAttackDetection": null | ||||||
|       }, |       }, | ||||||
|       "is5GHzL": { |       "is5GHzL": { | ||||||
| @@ -248,39 +191,24 @@ | |||||||
|         "radioType": "is5GHzL", |         "radioType": "is5GHzL", | ||||||
|         "radioAdminState": "enabled", |         "radioAdminState": "enabled", | ||||||
|         "fragmentationThresholdBytes": 2346, |         "fragmentationThresholdBytes": 2346, | ||||||
|         "rtsCtsThreshold": 65535, |  | ||||||
|         "autoChannelSelection": "disabled", |  | ||||||
|         "radioMode": "modeAC", |  | ||||||
|         "mimoMode": "twoByTwo", |  | ||||||
|         "wmmState": "enabled", |  | ||||||
|         "uapsdState": "enabled", |         "uapsdState": "enabled", | ||||||
|         "maxNumClients": 100, |  | ||||||
|         "stationIsolation": "disabled", |         "stationIsolation": "disabled", | ||||||
|         "multicastRate": "auto", |         "managementRate": { | ||||||
|         "managementRate": "auto", |           "model_type": "SourceSelectionManagement", | ||||||
|         "activeScanSettings": { |           "source": "auto", | ||||||
|           "model_type": "ActiveScanSettings", |           "value": "auto" | ||||||
|           "enabled": true, |  | ||||||
|           "scanFrequencySeconds": 10, |  | ||||||
|           "scanDurationMillis": 65 |  | ||||||
|         }, |  | ||||||
|         "channelHopSettings": { |  | ||||||
|           "model_type": "ChannelHopSettings", |  | ||||||
|           "noiseFloorThresholdInDB": -75, |  | ||||||
|           "noiseFloorThresholdTimeInSeconds": 180, |  | ||||||
|           "nonWifiThresholdInPercentage": 50, |  | ||||||
|           "nonWifiThresholdTimeInSeconds": 180, |  | ||||||
|           "obssHopMode": "NON_WIFI" |  | ||||||
|         }, |         }, | ||||||
|         "bestApSettings": { |         "bestApSettings": { | ||||||
|           "model_type": "RadioBestApSettings", |         "model_type": "SourceSelectionSteering", | ||||||
|           "mlComputed": true, |           "source": "auto", | ||||||
|           "dropInSnrPercentage": 30, |           "value": { | ||||||
|           "minLoadFactor": 40 | 	          "model_type": "RadioBestApSettings", | ||||||
|  | 	          "mlComputed": true, | ||||||
|  | 	          "dropInSnrPercentage": 30, | ||||||
|  | 	          "minLoadFactor": 40 | ||||||
|  |           } | ||||||
|         }, |         }, | ||||||
|         "forceScanDuringVoice": "disabled", |  | ||||||
|         "legacyBSSRate": "enabled", |         "legacyBSSRate": "enabled", | ||||||
|         "beaconInterval": 100, |  | ||||||
|         "deauthAttackDetection": null |         "deauthAttackDetection": null | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| @@ -290,4 +218,4 @@ | |||||||
|   "serial": "21P10C68818122", |   "serial": "21P10C68818122", | ||||||
|   "createdTimestamp": 1591653239821, |   "createdTimestamp": 1591653239821, | ||||||
|   "lastModifiedTimestamp": 1591653241398 |   "lastModifiedTimestamp": 1591653241398 | ||||||
| } | } | ||||||
|   | |||||||
| @@ -10,55 +10,48 @@ | |||||||
|     "countryCode" : "ca", |     "countryCode" : "ca", | ||||||
|     "maintenanceWindow" : null, |     "maintenanceWindow" : null, | ||||||
|     "rrmEnabled" : true, |     "rrmEnabled" : true, | ||||||
|     "dailyRebalancingDetails" : { |     "dailyActivityDetails" : { | ||||||
|       "SUNDAY" : { |       "SUNDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "MONDAY" : { |       "MONDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "TUESDAY" : { |       "TUESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "WEDNESDAY" : { |       "WEDNESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "THURSDAY" : { |       "THURSDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "FRIDAY" : { |       "FRIDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "SATURDAY" : { |       "SATURDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "model_type": "Profile", |     "model_type": "Profile", | ||||||
|     "id": 17, |     "id": 12, | ||||||
|     "customerId": 2, |     "customerId": 2, | ||||||
|     "profileType": "equipment_ap", |     "profileType": "equipment_ap", | ||||||
|     "name": "ApProfile-3-radios", |     "name": "ApProfile-3-radios", | ||||||
| @@ -20,6 +20,11 @@ | |||||||
|         "syntheticClientEnabled": true, |         "syntheticClientEnabled": true, | ||||||
|         "ledControlEnabled": true, |         "ledControlEnabled": true, | ||||||
|         "equipmentDiscovery": false, |         "equipmentDiscovery": false, | ||||||
|  |         "greTunnelName": null, | ||||||
|  |         "greParentIfName": null, | ||||||
|  |         "greLocalInetAddr": null, | ||||||
|  |         "greRemoteInetAddr": null, | ||||||
|  |         "greRemoteMacAddr": null, | ||||||
|         "radioMap": { |         "radioMap": { | ||||||
|             "is2dot4GHz": { |             "is2dot4GHz": { | ||||||
|                 "model_type": "RadioProfileConfiguration", |                 "model_type": "RadioProfileConfiguration", | ||||||
| @@ -39,12 +44,13 @@ | |||||||
|         }, |         }, | ||||||
|         "profileType": "equipment_ap" |         "profileType": "equipment_ap" | ||||||
|     }, |     }, | ||||||
|     "createdTimestamp": 1602182806348, |     "createdTimestamp": 1606778369934, | ||||||
|     "lastModifiedTimestamp": 1602182806348, |     "lastModifiedTimestamp": 1606778443413, | ||||||
|     "childProfileIds": [ |     "childProfileIds": [ | ||||||
|         2, |         16, | ||||||
|         5, |         5, | ||||||
|  |         10, | ||||||
|         11, |         11, | ||||||
|         13 |         15 | ||||||
|     ] |     ] | ||||||
| } | } | ||||||
| @@ -1,72 +1,71 @@ | |||||||
| [ | [ | ||||||
| { | 	{ | ||||||
|     "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|     "id": 10, | 		"id": 24, | ||||||
|     "customerId": 2, | 		"customerId": 2, | ||||||
|     "profileType": "hotspot_2pt0", | 		"profileType": "passpoint", | ||||||
|     "name": "TipWlan-Hotspot20-Config", | 		"name": "TipWlan-Passpoint-Config", | ||||||
|     "details": { | 		"details": { | ||||||
|         "model_type": "Hotspot2Profile", | 			"model_type": "PasspointProfile", | ||||||
|         "enableInterworkingAndHs20": true, | 			"enableInterworkingAndHs20": true, | ||||||
|         "hessid": null, | 			"hessid": null, | ||||||
|         "accessNetworkType": "free_public_network", | 			"passpointAccessNetworkType": "free_public_network", | ||||||
|         "networkAuthenticationType": "acceptance_of_terms_and_conditions", | 			"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||||
|         "additionalStepsRequiredForAccess": 0, | 			"additionalStepsRequiredForAccess": 0, | ||||||
|         "deauthRequestTimeout": 0, | 			"deauthRequestTimeout": 0, | ||||||
|         "operatingClass": 0, | 			"operatingClass": 0, | ||||||
|         "termsAndConditionsFile": { | 			"termsAndConditionsFile": { | ||||||
|             "model_type": "ManagedFileInfo", | 				"model_type": "ManagedFileInfo", | ||||||
|             "md5checksum": null, | 				"md5checksum": null, | ||||||
|             "lastModifiedTimestamp": null, | 				"lastModifiedTimestamp": null, | ||||||
|             "apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | 				"apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | ||||||
|             "fileCategory": "ExternalPolicyConfiguration", | 				"fileCategory": "ExternalPolicyConfiguration", | ||||||
|             "fileType": "TEXT", | 				"fileType": "TEXT", | ||||||
|             "altSlot": false | 				"altSlot": false | ||||||
|         }, | 			}, | ||||||
|         "whitelistDomain": null, | 			"whitelistDomain": null, | ||||||
|         "emergencyServicesReachable": true, | 			"emergencyServicesReachable": true, | ||||||
|         "unauthenticatedEmergencyServiceAccessible": false, | 			"unauthenticatedEmergencyServiceAccessible": false, | ||||||
|         "internetConnectivity": true, | 			"internetConnectivity": true, | ||||||
|         "connectionCapabilitySet": [ | 			"connectionCapabilitySet": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "ConnectionCapability", | 					"model_type": "PasspointConnectionCapability", | ||||||
|                 "connectionCapabilitiesPortNumber": 8888, | 					"connectionCapabilitiesPortNumber": 8888, | ||||||
|                 "connectionCapabilitiesIpProtocol": "TCP", | 					"connectionCapabilitiesStatus": "open", | ||||||
|                 "connectionCapabilitiesStatus": "open" | 					"connectionCapabilitiesIpProtocol": "TCP" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "ipAddressTypeAvailability": "public_IPv4_address_available", | 			"ipAddressTypeAvailability": "public_IPv4_address_available", | ||||||
|         "qosMapSetConfiguration": null, | 			"qosMapSetConfiguration": null, | ||||||
|         "apGeospatialLocation": null, | 			"apGeospatialLocation": null, | ||||||
|         "apCivicLocation": null, | 			"apCivicLocation": null, | ||||||
|         "apPublicLocationIdUri": null, | 			"apPublicLocationIdUri": null, | ||||||
|         "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | 			"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | ||||||
|         "anqpDomainId": 1234, | 			"anqpDomainId": 1234, | ||||||
|         "disableDownstreamGroupAddressedForwarding": false, | 			"disableDownstreamGroupAddressedForwarding": false, | ||||||
|         "enable2pt4GHz": true, | 			"enable2pt4GHz": true, | ||||||
|         "enable5GHz": true, | 			"enable5GHz": true, | ||||||
|         "associatedAccessSsidNames": [ | 			"associatedAccessSsidProfileIds": [ | ||||||
|             "TipWlan-cloud-hotspot-access" | 				15 | ||||||
|         ], | 			], | ||||||
|         "osuSsidName": "TipWlan-cloud-3-radios", | 			"osuSsidProfileId": 16, | ||||||
|         "operatorProfileName": "TipWlan-Hotspot20-Operator", | 			"passpointOperatorProfileId": 17, | ||||||
|         "venueProfileName": "TipWlan-Hotspot20-Venue", | 			"passpointVenueProfileId": 18, | ||||||
|         "idProviderProfileNames": [ | 			"passpointOsuProviderProfileIds": [ | ||||||
|             "TipWlan-Hotspot20-OSU-Provider-2", | 				19, | ||||||
|             "TipWlan-Hotspot20-OSU-Provider" | 				20 | ||||||
|         ], | 			], | ||||||
|         "profileType": "hotspot_2pt0", | 			"accessNetworkType": "free_public_network", | ||||||
|         "associatedSsids": [ | 			"networkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||||
|             "TipWlan-cloud-hotspot-access" | 			"profileType": "passpoint" | ||||||
|         ] | 		}, | ||||||
|     }, | 		"createdTimestamp": 1606778370807, | ||||||
|     "createdTimestamp": 1602182806040, | 		"lastModifiedTimestamp": 1606778370807, | ||||||
|     "lastModifiedTimestamp": 1602182806040, | 		"childProfileIds": [ | ||||||
|     "childProfileIds": [ | 			17, | ||||||
|         6, | 			18, | ||||||
|         7, | 			19, | ||||||
|         8, | 			20 | ||||||
|         9 | 		] | ||||||
|     ] | 	} | ||||||
| } | ] | ||||||
| ] |  | ||||||
|   | |||||||
| @@ -1,256 +1,270 @@ | |||||||
| [ | [ | ||||||
| { | 	{ | ||||||
|     "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|     "id": 8, | 		"id": 19, | ||||||
|     "customerId": 2, | 		"customerId": 2, | ||||||
|     "profileType": "id_provider", | 		"profileType": "passpoint_osu_id_provider", | ||||||
|     "name": "TipWlan-Hotspot20-OSU-Provider", | 		"name": "TipWlan-Passpoint-OSU-Provider", | ||||||
|     "details": { | 		"details": { | ||||||
|         "model_type": "Hotspot20IdProviderProfile", | 			"model_type": "PasspointOsuProviderProfile", | ||||||
|         "domainName": "rogers.com", | 			"domainName": "rogers.com", | ||||||
|         "mccMncList": [ | 			"mccMncList": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "MccMnc", | 					"model_type": "PasspointMccMnc", | ||||||
|                 "mcc": 302, | 					"mcc": 302, | ||||||
|                 "mnc": 720, | 					"mnc": 720, | ||||||
|                 "iso": "ca", | 					"iso": "ca", | ||||||
|                 "country": "Canada", | 					"country": "Canada", | ||||||
|                 "countryCode": 1, | 					"countryCode": 1, | ||||||
|                 "network": "Rogers AT&T Wireless", | 					"network": "Rogers AT&T Wireless", | ||||||
|                 "mccMncPairing": "302,720" | 					"mccMncPairing": "302,720" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "naiRealmList": [ | 			"naiRealmList": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "NaiRealmInformation", | 					"model_type": "PasspointNaiRealmInformation", | ||||||
|                 "naiRealms": [ | 					"naiRealms": [ | ||||||
|                     "rogers.com" | 						"rogers.com" | ||||||
|                 ], | 					], | ||||||
|                 "encoding": 0, | 					"encoding": 0, | ||||||
|                 "eapMethods": [ | 					"eapMethods": [ | ||||||
|                     "EAP-TTLS with username/password", | 						"EAP-TTLS with username/password", | ||||||
|                     "EAP-TLS with certificate" | 						"EAP-TLS with certificate" | ||||||
|                 ], | 					], | ||||||
|                 "eapMap": { | 					"eapMap": { | ||||||
|                     "EAP-TTLS with username/password": [ | 						"EAP-TTLS with username/password": [ | ||||||
|                         "Credential Type:username/password", | 							"Credential Type:username/password", | ||||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||||
|                     ], | 						], | ||||||
|                     "EAP-TLS with certificate": [ | 						"EAP-TLS with certificate": [ | ||||||
|                         "Credential Type:Certificate" | 							"Credential Type:Certificate" | ||||||
|                     ] | 						] | ||||||
|                 } | 					} | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "osuIconList": [ | 			"osuIconList": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "OsuIcon", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "iconWidth": 32, | 					"iconWidth": 32, | ||||||
|                 "iconHeight": 32, | 					"iconHeight": 32, | ||||||
|                 "languageCode": "eng", | 					"languageCode": "eng", | ||||||
|                 "iconLocale": "en_CA", | 					"iconLocale": "en_CA", | ||||||
|                 "iconName": "icon32eng", | 					"iconName": "icon32eng", | ||||||
|                 "filePath": "/tmp/icon32eng.png", | 					"filePath": "/tmp/icon32eng.png", | ||||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "OsuIcon", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "iconWidth": 32, | 					"iconWidth": 32, | ||||||
|                 "iconHeight": 32, | 					"iconHeight": 32, | ||||||
|                 "languageCode": "fra", | 					"languageCode": "fra", | ||||||
|                 "iconLocale": "fr_CA", | 					"iconLocale": "fr_CA", | ||||||
|                 "iconName": "icon32fra", | 					"iconName": "icon32fra", | ||||||
|                 "filePath": "/tmp/icon32fra.png", | 					"filePath": "/tmp/icon32fra.png", | ||||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "OsuIcon", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "iconWidth": 32, | 					"iconWidth": 32, | ||||||
|                 "iconHeight": 32, | 					"iconHeight": 32, | ||||||
|                 "languageCode": "eng", | 					"languageCode": "eng", | ||||||
|                 "iconLocale": "en_US", | 					"iconLocale": "en_US", | ||||||
|                 "iconName": "icon32usa", | 					"iconName": "icon32usa", | ||||||
|                 "filePath": "/tmp/icon32usa.png", | 					"filePath": "/tmp/icon32usa.png", | ||||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "osuServerUri": "https://example.com/osu/rogers/", | 			"osuServerUri": "https://example.com/osu/rogers", | ||||||
|         "osuFriendlyName": [ | 			"osuFriendlyName": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "en_CA", | 					"locale": "en_CA", | ||||||
|                 "dupleIso3Language": "eng", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleName": "Example provider rogers", | 					"dupleName": "Example provider rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "eng:Example provider rogers" | 					"asDuple": "eng:Example provider rogers" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "fr_CA", | 					"locale": "fr_CA", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleIso3Language": "fra", | ||||||
|                 "dupleName": "Exemple de fournisseur rogers", | 					"dupleName": "Exemple de fournisseur rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "fra:Exemple de fournisseur rogers" | 					"asDuple": "fra:Exemple de fournisseur rogers" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "osuNaiStandalone": "anonymous@rogers.com", | 			"osuNaiStandalone": "anonymous@rogers.com", | ||||||
|         "osuNaiShared": "anonymous@rogers.com", | 			"osuNaiShared": "anonymous@rogers.com", | ||||||
|         "osuMethodList": [ | 			"osuMethodList": [ | ||||||
|             1, | 				1, | ||||||
|             0 | 				0 | ||||||
|         ], | 			], | ||||||
|         "osuServiceDescription": [ | 			"osuServiceDescription": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "en_CA", | 					"locale": "en_CA", | ||||||
|                 "dupleIso3Language": "eng", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleName": "Example services rogers", | 					"dupleName": "Example services rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "eng:Example services rogers" | 					"asDuple": "eng:Example services rogers" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "fr_CA", | 					"locale": "fr_CA", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleIso3Language": "fra", | ||||||
|                 "dupleName": "Exemples de services rogers", | 					"dupleName": "Exemples de services rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "fra:Exemples de services rogers" | 					"asDuple": "fra:Exemples de services rogers" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "profileType": "id_provider" | 			"roamingOi": [ | ||||||
|     }, | 				1, | ||||||
|     "createdTimestamp": 1602182805654, | 				2, | ||||||
|     "lastModifiedTimestamp": 1602182805654, | 				3, | ||||||
|     "childProfileIds": [] | 				4 | ||||||
| }, | 			], | ||||||
| { | 			"profileType": "passpoint_osu_id_provider" | ||||||
|     "model_type": "Profile", | 		}, | ||||||
|     "id": 9, | 		"createdTimestamp": 1606778370345, | ||||||
|     "customerId": 2, | 		"lastModifiedTimestamp": 1606778370345, | ||||||
|     "profileType": "id_provider", | 		"childProfileIds": [ | ||||||
|     "name": "TipWlan-Hotspot20-OSU-Provider-2", | 		] | ||||||
|     "details": { | 	}, | ||||||
|         "model_type": "Hotspot20IdProviderProfile", | 	{ | ||||||
|         "domainName": "telus.com", | 		"model_type": "Profile", | ||||||
|         "mccMncList": [ | 		"id": 20, | ||||||
|             { | 		"customerId": 2, | ||||||
|                 "model_type": "MccMnc", | 		"profileType": "passpoint_osu_id_provider", | ||||||
|                 "mcc": 302, | 		"name": "TipWlan-Passpoint-OSU-Provider-2", | ||||||
|                 "mnc": 220, | 		"details": { | ||||||
|                 "iso": "ca", | 			"model_type": "PasspointOsuProviderProfile", | ||||||
|                 "country": "Canada", | 			"domainName": "telus.com", | ||||||
|                 "countryCode": 1, | 			"mccMncList": [ | ||||||
|                 "network": "Telus Mobility", | 				{ | ||||||
|                 "mccMncPairing": "302,220" | 					"model_type": "PasspointMccMnc", | ||||||
|             } | 					"mcc": 302, | ||||||
|         ], | 					"mnc": 220, | ||||||
|         "naiRealmList": [ | 					"iso": "ca", | ||||||
|             { | 					"country": "Canada", | ||||||
|                 "model_type": "NaiRealmInformation", | 					"countryCode": 1, | ||||||
|                 "naiRealms": [ | 					"network": "Telus Mobility", | ||||||
|                     "telus.com" | 					"mccMncPairing": "302,220" | ||||||
|                 ], | 				} | ||||||
|                 "encoding": 0, | 			], | ||||||
|                 "eapMethods": [ | 			"naiRealmList": [ | ||||||
|                     "EAP-TTLS with username/password", | 				{ | ||||||
|                     "EAP-TLS with certificate" | 					"model_type": "PasspointNaiRealmInformation", | ||||||
|                 ], | 					"naiRealms": [ | ||||||
|                 "eapMap": { | 						"telus.com" | ||||||
|                     "EAP-TTLS with username/password": [ | 					], | ||||||
|                         "Credential Type:username/password", | 					"encoding": 0, | ||||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | 					"eapMethods": [ | ||||||
|                     ], | 						"EAP-TTLS with username/password", | ||||||
|                     "EAP-TLS with certificate": [ | 						"EAP-TLS with certificate" | ||||||
|                         "Credential Type:Certificate" | 					], | ||||||
|                     ] | 					"eapMap": { | ||||||
|                 } | 						"EAP-TTLS with username/password": [ | ||||||
|             } | 							"Credential Type:username/password", | ||||||
|         ], | 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||||
|         "osuIconList": [ | 						], | ||||||
|             { | 						"EAP-TLS with certificate": [ | ||||||
|                 "model_type": "OsuIcon", | 							"Credential Type:Certificate" | ||||||
|                 "iconWidth": 32, | 						] | ||||||
|                 "iconHeight": 32, | 					} | ||||||
|                 "languageCode": "eng", | 				} | ||||||
|                 "iconLocale": "en_CA", | 			], | ||||||
|                 "iconName": "icon32eng", | 			"osuIconList": [ | ||||||
|                 "filePath": "/tmp/icon32eng.png", | 				{ | ||||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | 					"iconWidth": 32, | ||||||
|             }, | 					"iconHeight": 32, | ||||||
|             { | 					"languageCode": "eng", | ||||||
|                 "model_type": "OsuIcon", | 					"iconLocale": "en_CA", | ||||||
|                 "iconWidth": 32, | 					"iconName": "icon32eng", | ||||||
|                 "iconHeight": 32, | 					"filePath": "/tmp/icon32eng.png", | ||||||
|                 "languageCode": "fra", | 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||||
|                 "iconLocale": "fr_CA", | 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||||
|                 "iconName": "icon32fra", | 				}, | ||||||
|                 "filePath": "/tmp/icon32fra.png", | 				{ | ||||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | 					"iconWidth": 32, | ||||||
|             }, | 					"iconHeight": 32, | ||||||
|             { | 					"languageCode": "fra", | ||||||
|                 "model_type": "OsuIcon", | 					"iconLocale": "fr_CA", | ||||||
|                 "iconWidth": 32, | 					"iconName": "icon32fra", | ||||||
|                 "iconHeight": 32, | 					"filePath": "/tmp/icon32fra.png", | ||||||
|                 "languageCode": "eng", | 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||||
|                 "iconLocale": "en_US", | 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||||
|                 "iconName": "icon32usa", | 				}, | ||||||
|                 "filePath": "/tmp/icon32usa.png", | 				{ | ||||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | 					"iconWidth": 32, | ||||||
|             } | 					"iconHeight": 32, | ||||||
|         ], | 					"languageCode": "eng", | ||||||
|         "osuServerUri": "https://example.com/osu/telus/", | 					"iconLocale": "en_US", | ||||||
|         "osuFriendlyName": [ | 					"iconName": "icon32usa", | ||||||
|             { | 					"filePath": "/tmp/icon32usa.png", | ||||||
|                 "model_type": "Hotspot20Duple", | 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||||
|                 "locale": "en_CA", | 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||||
|                 "dupleIso3Language": "eng", | 				} | ||||||
|                 "dupleName": "Example provider telus", | 			], | ||||||
|                 "defaultDupleSeparator": ":", | 			"osuServerUri": "https://example.com/osu/telus", | ||||||
|                 "asDuple": "eng:Example provider telus" | 			"osuFriendlyName": [ | ||||||
|             }, | 				{ | ||||||
|             { | 					"model_type": "PasspointDuple", | ||||||
|                 "model_type": "Hotspot20Duple", | 					"locale": "en_CA", | ||||||
|                 "locale": "fr_CA", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleName": "Example provider telus", | ||||||
|                 "dupleName": "Exemple de fournisseur telus", | 					"defaultDupleSeparator": ":", | ||||||
|                 "defaultDupleSeparator": ":", | 					"asDuple": "eng:Example provider telus" | ||||||
|                 "asDuple": "fra:Exemple de fournisseur telus" | 				}, | ||||||
|             } | 				{ | ||||||
|         ], | 					"model_type": "PasspointDuple", | ||||||
|         "osuNaiStandalone": "anonymous@telus.com", | 					"locale": "fr_CA", | ||||||
|         "osuNaiShared": "anonymous@telus.com", | 					"dupleIso3Language": "fra", | ||||||
|         "osuMethodList": [ | 					"dupleName": "Exemple de fournisseur telus", | ||||||
|             1, | 					"defaultDupleSeparator": ":", | ||||||
|             0 | 					"asDuple": "fra:Exemple de fournisseur telus" | ||||||
|         ], | 				} | ||||||
|         "osuServiceDescription": [ | 			], | ||||||
|             { | 			"osuNaiStandalone": "anonymous@telus.com", | ||||||
|                 "model_type": "Hotspot20Duple", | 			"osuNaiShared": "anonymous@telus.com", | ||||||
|                 "locale": "en_CA", | 			"osuMethodList": [ | ||||||
|                 "dupleIso3Language": "eng", | 				1, | ||||||
|                 "dupleName": "Example services telus", | 				0 | ||||||
|                 "defaultDupleSeparator": ":", | 			], | ||||||
|                 "asDuple": "eng:Example services telus" | 			"osuServiceDescription": [ | ||||||
|             }, | 				{ | ||||||
|             { | 					"model_type": "PasspointDuple", | ||||||
|                 "model_type": "Hotspot20Duple", | 					"locale": "en_CA", | ||||||
|                 "locale": "fr_CA", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleName": "Example services telus", | ||||||
|                 "dupleName": "Exemples de services telus", | 					"defaultDupleSeparator": ":", | ||||||
|                 "defaultDupleSeparator": ":", | 					"asDuple": "eng:Example services telus" | ||||||
|                 "asDuple": "fra:Exemples de services telus" | 				}, | ||||||
|             } | 				{ | ||||||
|         ], | 					"model_type": "PasspointDuple", | ||||||
|         "profileType": "id_provider" | 					"locale": "fr_CA", | ||||||
|     }, | 					"dupleIso3Language": "fra", | ||||||
|     "createdTimestamp": 1602182805660, | 					"dupleName": "Exemples de services telus", | ||||||
|     "lastModifiedTimestamp": 1602182805660, | 					"defaultDupleSeparator": ":", | ||||||
|     "childProfileIds": [] | 					"asDuple": "fra:Exemples de services telus" | ||||||
| } | 				} | ||||||
|     ] | 			], | ||||||
|  | 			"roamingOi": [ | ||||||
|  | 				1, | ||||||
|  | 				2, | ||||||
|  | 				3, | ||||||
|  | 				4 | ||||||
|  | 			], | ||||||
|  | 			"profileType": "passpoint_osu_id_provider" | ||||||
|  | 		}, | ||||||
|  | 		"createdTimestamp": 1606778370351, | ||||||
|  | 		"lastModifiedTimestamp": 1606778370351, | ||||||
|  | 		"childProfileIds": [ | ||||||
|  | 		] | ||||||
|  | 	} | ||||||
|  | ] | ||||||
|   | |||||||
| @@ -1,298 +1,299 @@ | |||||||
| [ | [ | ||||||
|  { | 	{ | ||||||
|         "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|         "id": 2, | 		"id": 10, | ||||||
|         "customerId": 2, | 		"customerId": 2, | ||||||
|         "profileType": "metrics", | 		"profileType": "service_metrics_collection_config", | ||||||
|         "name": "Metrics-Profile-3-radios", | 		"name": "Metrics-Profile-3-Radios", | ||||||
|         "details": { | 		"details": { | ||||||
|             "model_type": "ServiceMetricsCollectionConfigProfile", | 			"model_type": "ServiceMetricsCollectionConfigProfile", | ||||||
|             "radioTypes": [ | 			"radioTypes": [ | ||||||
|                 "is5GHzU", | 				"is5GHzL", | ||||||
|                 "is5GHzL", | 				"is2dot4GHz", | ||||||
|                 "is2dot4GHz" | 				"is5GHzU" | ||||||
|             ], | 			], | ||||||
|             "serviceMetricDataTypes": [ | 			"serviceMetricDataTypes": [ | ||||||
|                 "ApNode", | 				"ApNode", | ||||||
|                 "ApSsid", | 				"ApSsid", | ||||||
|                 "Client", | 				"Client", | ||||||
|                 "Channel", | 				"Channel", | ||||||
|                 "Neighbour" | 				"Neighbour" | ||||||
|             ], | 			], | ||||||
|             "metricConfigParameterMap": { | 			"metricConfigParameterMap": { | ||||||
|                 "ApNode": [ | 				"ApNode": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "ApSsid": [ | 				"ApSsid": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is2dot4GHz", | 						"radioType": "is5GHzU", | ||||||
|                         "serviceMetricDataType": "ApSsid" | 						"serviceMetricDataType": "ApSsid" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzL", | 						"radioType": "is5GHzL", | ||||||
|                         "serviceMetricDataType": "ApSsid" | 						"serviceMetricDataType": "ApSsid" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzU", | 						"radioType": "is2dot4GHz", | ||||||
|                         "serviceMetricDataType": "ApSsid" | 						"serviceMetricDataType": "ApSsid" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "Client": [ | 				"Client": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is2dot4GHz", | 						"radioType": "is5GHzU", | ||||||
|                         "serviceMetricDataType": "Client" | 						"serviceMetricDataType": "Client" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzL", | 						"radioType": "is5GHzL", | ||||||
|                         "serviceMetricDataType": "Client" | 						"serviceMetricDataType": "Client" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzU", | 						"radioType": "is2dot4GHz", | ||||||
|                         "serviceMetricDataType": "Client" | 						"serviceMetricDataType": "Client" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "Channel": [ | 				"Channel": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "Neighbour": [ | 				"Neighbour": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     } | 					} | ||||||
|                 ] | 				] | ||||||
|             }, | 			}, | ||||||
|             "profileType": "metrics" | 			"profileType": "service_metrics_collection_config" | ||||||
|         }, | 		}, | ||||||
|         "createdTimestamp": 1602113058699, | 		"createdTimestamp": 1606778369931, | ||||||
|         "lastModifiedTimestamp": 1602113058699, | 		"lastModifiedTimestamp": 1606778369931, | ||||||
|         "childProfileIds": [] | 		"childProfileIds": [ | ||||||
|     } | 		] | ||||||
| ] | 	} | ||||||
|  | ] | ||||||
|   | |||||||
| @@ -1,37 +1,37 @@ | |||||||
| [ | [ | ||||||
| { | 	{ | ||||||
|         "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|         "id": 6, | 		"id": 17, | ||||||
|         "customerId": 2, | 		"customerId": 2, | ||||||
|         "profileType": "operator", | 		"profileType": "passpoint_operator", | ||||||
|         "name": "TipWlan-Hotspot20-Operator", | 		"name": "TipWlan-Passpoint-Operator", | ||||||
|         "details": { | 		"details": { | ||||||
|             "model_type": "OperatorProfile", | 			"model_type": "PasspointOperatorProfile", | ||||||
|             "domainName": "telecominfraproject.atlassian.net", | 			"serverOnlyAuthenticatedL2EncryptionNetwork": false, | ||||||
|             "serverOnlyAuthenticatedL2EncryptionNetwork": false, | 			"x509CertificateLocation": "/etc/ca.pem", | ||||||
|             "x509CertificateLocation": "/etc/ca.pem", | 			"operatorFriendlyName": [ | ||||||
|             "operatorFriendlyName": [ | 				{ | ||||||
|                 { | 					"model_type": "PasspointDuple", | ||||||
|                     "model_type": "Hotspot20Duple", | 					"locale": "en_CA", | ||||||
|                     "locale": "en_CA", | 					"dupleIso3Language": "eng", | ||||||
|                     "dupleIso3Language": "eng", | 					"dupleName": "Default friendly passpoint_operator name", | ||||||
|                     "dupleName": "Default friendly operator name", | 					"defaultDupleSeparator": ":", | ||||||
|                     "defaultDupleSeparator": ":", | 					"asDuple": "eng:Default friendly passpoint_operator name" | ||||||
|                     "asDuple": "eng:Default friendly operator name" | 				}, | ||||||
|                 }, | 				{ | ||||||
|                 { | 					"model_type": "PasspointDuple", | ||||||
|                     "model_type": "Hotspot20Duple", | 					"locale": "fr_CA", | ||||||
|                     "locale": "fr_CA", | 					"dupleIso3Language": "fra", | ||||||
|                     "dupleIso3Language": "fra", | 					"dupleName": "Nom de l'opérateur convivial par défaut", | ||||||
|                     "dupleName": "Nom de l'opérateur convivial par défaut", | 					"defaultDupleSeparator": ":", | ||||||
|                     "defaultDupleSeparator": ":", | 					"asDuple": "fra:Nom de l'opérateur convivial par défaut" | ||||||
|                     "asDuple": "fra:Nom de l'opérateur convivial par défaut" | 				} | ||||||
|                 } | 			], | ||||||
|             ], | 			"profileType": "passpoint_operator" | ||||||
|             "profileType": "operator" | 		}, | ||||||
|         }, | 		"createdTimestamp": 1606778369945, | ||||||
|         "createdTimestamp": 1602113058719, | 		"lastModifiedTimestamp": 1606778369945, | ||||||
|         "lastModifiedTimestamp": 1602113058719, | 		"childProfileIds": [ | ||||||
|         "childProfileIds": [] | 		] | ||||||
|     } | 	} | ||||||
| ] | ] | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "model_type": "Profile", |     "model_type": "Profile", | ||||||
|     "id": 13, |     "id": 11, | ||||||
|     "customerId": 2, |     "customerId": 2, | ||||||
|     "profileType": "rf", |     "profileType": "rf", | ||||||
|     "name": "TipWlan-rf", |     "name": "TipWlan-rf", | ||||||
| @@ -9,6 +9,8 @@ | |||||||
|         "rfConfigMap": { |         "rfConfigMap": { | ||||||
|             "is5GHz": { |             "is5GHz": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is5GHz", | ||||||
|  |                 "radioMode": "modeAC", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -16,7 +18,6 @@ | |||||||
|                 "channelBandwidth": "is80MHz", |                 "channelBandwidth": "is80MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -24,33 +25,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -60,6 +40,13 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
| @@ -69,6 +56,8 @@ | |||||||
|             }, |             }, | ||||||
|             "is2dot4GHz": { |             "is2dot4GHz": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is2dot4GHz", | ||||||
|  |                 "radioMode": "modeN", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -76,7 +65,6 @@ | |||||||
|                 "channelBandwidth": "is20MHz", |                 "channelBandwidth": "is20MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -84,33 +72,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -120,6 +87,13 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
| @@ -129,6 +103,8 @@ | |||||||
|             }, |             }, | ||||||
|             "is5GHzU": { |             "is5GHzU": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is5GHzU", | ||||||
|  |                 "radioMode": "modeAC", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -136,7 +112,6 @@ | |||||||
|                 "channelBandwidth": "is80MHz", |                 "channelBandwidth": "is80MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -144,33 +119,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -180,6 +134,13 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
| @@ -189,6 +150,8 @@ | |||||||
|             }, |             }, | ||||||
|             "is5GHzL": { |             "is5GHzL": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is5GHzL", | ||||||
|  |                 "radioMode": "modeAC", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -196,7 +159,6 @@ | |||||||
|                 "channelBandwidth": "is80MHz", |                 "channelBandwidth": "is80MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -204,33 +166,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -240,6 +181,13 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
| @@ -250,7 +198,7 @@ | |||||||
|         }, |         }, | ||||||
|         "profileType": "rf" |         "profileType": "rf" | ||||||
|     }, |     }, | ||||||
|     "createdTimestamp": 1602182806063, |     "createdTimestamp": 1606778369933, | ||||||
|     "lastModifiedTimestamp": 1602182806063, |     "lastModifiedTimestamp": 1606778369933, | ||||||
|     "childProfileIds": [] |     "childProfileIds": [] | ||||||
| } | } | ||||||
| @@ -4,72 +4,6 @@ | |||||||
| 		"id": 5, | 		"id": 5, | ||||||
| 		"customerId": 2, | 		"customerId": 2, | ||||||
| 		"profileType": "ssid", | 		"profileType": "ssid", | ||||||
| 		"name": "TipWlan-cloud-hotspot-access", |  | ||||||
| 		"details": { |  | ||||||
| 			"model_type": "SsidConfiguration", |  | ||||||
| 			"ssid": "TipWlan-cloud-hotspot-access", |  | ||||||
| 			"appliedRadios": [ |  | ||||||
| 				"is5GHzU", |  | ||||||
| 				"is5GHzL", |  | ||||||
| 				"is2dot4GHz" |  | ||||||
| 			], |  | ||||||
| 			"ssidAdminState": "enabled", |  | ||||||
| 			"secureMode": "wpa2PSK", |  | ||||||
| 			"vlanId": 1, |  | ||||||
| 			"keyStr": "testing123", |  | ||||||
| 			"broadcastSsid": "enabled", |  | ||||||
| 			"keyRefresh": 0, |  | ||||||
| 			"noLocalSubnets": false, |  | ||||||
| 			"radiusServiceName": null, |  | ||||||
| 			"captivePortalId": null, |  | ||||||
| 			"bandwidthLimitDown": 0, |  | ||||||
| 			"bandwidthLimitUp": 0, |  | ||||||
| 			"clientBandwidthLimitDown": 0, |  | ||||||
| 			"clientBandwidthLimitUp": 0, |  | ||||||
| 			"videoTrafficOnly": false, |  | ||||||
| 			"radioBasedConfigs": { |  | ||||||
| 				"is5GHz": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				}, |  | ||||||
| 				"is2dot4GHz": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				}, |  | ||||||
| 				"is5GHzU": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				}, |  | ||||||
| 				"is5GHzL": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				} |  | ||||||
| 			}, |  | ||||||
| 			"bonjourGatewayProfileId": null, |  | ||||||
| 			"enable80211w": null, |  | ||||||
| 			"wepConfig": null, |  | ||||||
| 			"forwardMode": null, |  | ||||||
| 			"profileType": "ssid" |  | ||||||
| 		}, |  | ||||||
| 		"createdTimestamp": 1602113058718, |  | ||||||
| 		"lastModifiedTimestamp": 1602113059547, |  | ||||||
| 		"childProfileIds": [ |  | ||||||
| 			10 |  | ||||||
| 		] |  | ||||||
| 	}, |  | ||||||
| 	{ |  | ||||||
| 		"model_type": "Profile", |  | ||||||
| 		"id": 11, |  | ||||||
| 		"customerId": 2, |  | ||||||
| 		"profileType": "ssid", |  | ||||||
| 		"name": "TipWlan-cloud-3-radios", | 		"name": "TipWlan-cloud-3-radios", | ||||||
| 		"details": { | 		"details": { | ||||||
| 			"model_type": "SsidConfiguration", | 			"model_type": "SsidConfiguration", | ||||||
| @@ -80,13 +14,15 @@ | |||||||
| 				"is5GHzU" | 				"is5GHzU" | ||||||
| 			], | 			], | ||||||
| 			"ssidAdminState": "enabled", | 			"ssidAdminState": "enabled", | ||||||
| 			"secureMode": "open", | 			"secureMode": "wpa2OnlyPSK", | ||||||
| 			"vlanId": 1, | 			"vlanId": 1, | ||||||
| 			"keyStr": null, | 			"keyStr": "openwifi", | ||||||
| 			"broadcastSsid": "enabled", | 			"broadcastSsid": "enabled", | ||||||
| 			"keyRefresh": 0, | 			"keyRefresh": 0, | ||||||
| 			"noLocalSubnets": false, | 			"noLocalSubnets": false, | ||||||
| 			"radiusServiceName": null, | 			"radiusServiceName": null, | ||||||
|  | 			"radiusAccountingServiceName": null, | ||||||
|  | 			"radiusAcountingServiceInterval": null, | ||||||
| 			"captivePortalId": null, | 			"captivePortalId": null, | ||||||
| 			"bandwidthLimitDown": 0, | 			"bandwidthLimitDown": 0, | ||||||
| 			"bandwidthLimitUp": 0, | 			"bandwidthLimitUp": 0, | ||||||
| @@ -94,7 +30,7 @@ | |||||||
| 			"clientBandwidthLimitUp": 0, | 			"clientBandwidthLimitUp": 0, | ||||||
| 			"videoTrafficOnly": false, | 			"videoTrafficOnly": false, | ||||||
| 			"radioBasedConfigs": { | 			"radioBasedConfigs": { | ||||||
| 				"is5GHz": { | 				"is5GHzL": { | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
| 					"enable80211r": null, | 					"enable80211r": null, | ||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| @@ -106,17 +42,83 @@ | |||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| 					"enable80211v": null | 					"enable80211v": null | ||||||
| 				}, | 				}, | ||||||
| 				"is5GHzU": { | 				"is5GHz": { | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
| 					"enable80211r": null, | 					"enable80211r": null, | ||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| 					"enable80211v": null | 					"enable80211v": null | ||||||
| 				}, | 				}, | ||||||
|  | 				"is5GHzU": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				} | ||||||
|  | 			}, | ||||||
|  | 			"bonjourGatewayProfileId": null, | ||||||
|  | 			"enable80211w": null, | ||||||
|  | 			"wepConfig": null, | ||||||
|  | 			"forwardMode": "BRIDGE", | ||||||
|  | 			"profileType": "ssid" | ||||||
|  | 		}, | ||||||
|  | 		"createdTimestamp": 1606778369598, | ||||||
|  | 		"lastModifiedTimestamp": 1606778369598, | ||||||
|  | 		"childProfileIds": [ | ||||||
|  | 		] | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		"model_type": "Profile", | ||||||
|  | 		"id": 15, | ||||||
|  | 		"customerId": 2, | ||||||
|  | 		"profileType": "ssid", | ||||||
|  | 		"name": "TipWlan-cloud-passpoint-access", | ||||||
|  | 		"details": { | ||||||
|  | 			"model_type": "SsidConfiguration", | ||||||
|  | 			"ssid": "TipWlan-cloud-passpoint-access", | ||||||
|  | 			"appliedRadios": [ | ||||||
|  | 				"is5GHzL", | ||||||
|  | 				"is5GHzU" | ||||||
|  | 			], | ||||||
|  | 			"ssidAdminState": "enabled", | ||||||
|  | 			"secureMode": "wpa2PSK", | ||||||
|  | 			"vlanId": 1, | ||||||
|  | 			"keyStr": "testing123", | ||||||
|  | 			"broadcastSsid": "enabled", | ||||||
|  | 			"keyRefresh": 0, | ||||||
|  | 			"noLocalSubnets": false, | ||||||
|  | 			"radiusServiceName": null, | ||||||
|  | 			"radiusAccountingServiceName": null, | ||||||
|  | 			"radiusAcountingServiceInterval": null, | ||||||
|  | 			"captivePortalId": null, | ||||||
|  | 			"bandwidthLimitDown": 0, | ||||||
|  | 			"bandwidthLimitUp": 0, | ||||||
|  | 			"clientBandwidthLimitDown": 0, | ||||||
|  | 			"clientBandwidthLimitUp": 0, | ||||||
|  | 			"videoTrafficOnly": false, | ||||||
|  | 			"radioBasedConfigs": { | ||||||
| 				"is5GHzL": { | 				"is5GHzL": { | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
| 					"enable80211r": null, | 					"enable80211r": null, | ||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| 					"enable80211v": null | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is2dot4GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHzU": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
| 				} | 				} | ||||||
| 			}, | 			}, | ||||||
| 			"bonjourGatewayProfileId": null, | 			"bonjourGatewayProfileId": null, | ||||||
| @@ -125,10 +127,77 @@ | |||||||
| 			"forwardMode": null, | 			"forwardMode": null, | ||||||
| 			"profileType": "ssid" | 			"profileType": "ssid" | ||||||
| 		}, | 		}, | ||||||
| 		"createdTimestamp": 1602183994766, | 		"createdTimestamp": 1606778369943, | ||||||
| 		"lastModifiedTimestamp": 1602183994766, | 		"lastModifiedTimestamp": 1606778370811, | ||||||
| 		"childProfileIds": [ | 		"childProfileIds": [ | ||||||
| 			10 | 			24 | ||||||
|  | 		] | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		"model_type": "Profile", | ||||||
|  | 		"id": 16, | ||||||
|  | 		"customerId": 2, | ||||||
|  | 		"profileType": "ssid", | ||||||
|  | 		"name": "TipWlan-cloud-passpoint-osu", | ||||||
|  | 		"details": { | ||||||
|  | 			"model_type": "SsidConfiguration", | ||||||
|  | 			"ssid": "TipWlan-cloud-passpoint-osu", | ||||||
|  | 			"appliedRadios": [ | ||||||
|  | 				"is2dot4GHz" | ||||||
|  | 			], | ||||||
|  | 			"ssidAdminState": "enabled", | ||||||
|  | 			"secureMode": "open", | ||||||
|  | 			"vlanId": 1, | ||||||
|  | 			"keyStr": null, | ||||||
|  | 			"broadcastSsid": "enabled", | ||||||
|  | 			"keyRefresh": 0, | ||||||
|  | 			"noLocalSubnets": false, | ||||||
|  | 			"radiusServiceName": null, | ||||||
|  | 			"radiusAccountingServiceName": null, | ||||||
|  | 			"radiusAcountingServiceInterval": null, | ||||||
|  | 			"captivePortalId": null, | ||||||
|  | 			"bandwidthLimitDown": 0, | ||||||
|  | 			"bandwidthLimitUp": 0, | ||||||
|  | 			"clientBandwidthLimitDown": 0, | ||||||
|  | 			"clientBandwidthLimitUp": 0, | ||||||
|  | 			"videoTrafficOnly": false, | ||||||
|  | 			"radioBasedConfigs": { | ||||||
|  | 				"is5GHzL": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is2dot4GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHzU": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				} | ||||||
|  | 			}, | ||||||
|  | 			"bonjourGatewayProfileId": null, | ||||||
|  | 			"enable80211w": null, | ||||||
|  | 			"wepConfig": null, | ||||||
|  | 			"forwardMode": null, | ||||||
|  | 			"profileType": "ssid" | ||||||
|  | 		}, | ||||||
|  | 		"createdTimestamp": 1606778369944, | ||||||
|  | 		"lastModifiedTimestamp": 1606778370352, | ||||||
|  | 		"childProfileIds": [ | ||||||
|  | 			19, | ||||||
|  | 			20 | ||||||
| 		] | 		] | ||||||
| 	} | 	} | ||||||
| ] | ] | ||||||
|   | |||||||
| @@ -1,42 +1,43 @@ | |||||||
| [ | [ | ||||||
|     { | 	{ | ||||||
|         "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|         "id": 7, | 		"id": 18, | ||||||
|         "customerId": 2, | 		"customerId": 2, | ||||||
|         "profileType": "venue", | 		"profileType": "passpoint_venue", | ||||||
|         "name": "TipWlan-Hotspot20-Venue", | 		"name": "TipWlan-Passpoint-Venue", | ||||||
|         "details": { | 		"details": { | ||||||
|             "model_type": "VenueProfile", | 			"model_type": "PasspointVenueProfile", | ||||||
|             "venueNameSet": [ | 			"venueNameSet": [ | ||||||
|                 { | 				{ | ||||||
|                     "model_type": "VenueName", | 					"model_type": "PasspointVenueName", | ||||||
|                     "locale": "fr_CA", | 					"locale": "fr_CA", | ||||||
|                     "dupleIso3Language": "fra", | 					"dupleIso3Language": "fra", | ||||||
|                     "dupleName": "Exemple de lieu", | 					"dupleName": "Exemple de lieu", | ||||||
|                     "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                     "venueUrl": "http://www.example.com/info-fra", | 					"venueUrl": "http://www.example.com/info-fra", | ||||||
|                     "asDuple": "fra:Exemple de lieu" | 					"asDuple": "fra:Exemple de lieu" | ||||||
|                 }, | 				}, | ||||||
|                 { | 				{ | ||||||
|                     "model_type": "VenueName", | 					"model_type": "PasspointVenueName", | ||||||
|                     "locale": "en_CA", | 					"locale": "en_CA", | ||||||
|                     "dupleIso3Language": "eng", | 					"dupleIso3Language": "eng", | ||||||
|                     "dupleName": "Example venue", | 					"dupleName": "Example passpoint_venue", | ||||||
|                     "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                     "venueUrl": "http://www.example.com/info-eng", | 					"venueUrl": "http://www.example.com/info-eng", | ||||||
|                     "asDuple": "eng:Example venue" | 					"asDuple": "eng:Example passpoint_venue" | ||||||
|                 } | 				} | ||||||
|             ], | 			], | ||||||
|             "venueTypeAssignment": { | 			"venueTypeAssignment": { | ||||||
|                 "model_type": "VenueTypeAssignment", | 				"model_type": "PasspointVenueTypeAssignment", | ||||||
|                 "venueDescription": "Research and Development Facility", | 				"venueDescription": "Research and Development Facility", | ||||||
|                 "venueGroupId": 2, | 				"venueGroupId": 2, | ||||||
|                 "venueTypeId": 8 | 				"venueTypeId": 8 | ||||||
|             }, | 			}, | ||||||
|             "profileType": "venue" | 			"profileType": "passpoint_venue" | ||||||
|         }, | 		}, | ||||||
|         "createdTimestamp": 1602113058725, | 		"createdTimestamp": 1606778369950, | ||||||
|         "lastModifiedTimestamp": 1602113058725, | 		"lastModifiedTimestamp": 1606778369950, | ||||||
|         "childProfileIds": [] | 		"childProfileIds": [ | ||||||
|     } | 		] | ||||||
| ] | 	} | ||||||
|  | ] | ||||||
|   | |||||||
| @@ -20,10 +20,10 @@ | |||||||
|  |  | ||||||
| 			<modules> | 			<modules> | ||||||
| 				<module>../opensync-ext-interface</module> | 				<module>../opensync-ext-interface</module> | ||||||
| 				<module>../opensync-ext-static</module> |  | ||||||
| 				<module>../opensync-ext-cloud</module> |  | ||||||
| 				<module>../opensync-gateway</module> | 				<module>../opensync-gateway</module> | ||||||
|  | 				<module>../opensync-ext-static</module> | ||||||
| 				<module>../opensync-gateway-static-process</module> | 				<module>../opensync-gateway-static-process</module> | ||||||
|  | 				<module>../opensync-ext-cloud</module> | ||||||
| 				<module>../opensync-gateway-cloud-process</module> | 				<module>../opensync-gateway-cloud-process</module> | ||||||
| 			</modules> | 			</modules> | ||||||
| 		</profile> | 		</profile> | ||||||
|   | |||||||
| @@ -20,6 +20,11 @@ SSC_SERVER_HOST="${SSC_SERVER}" | |||||||
| ALL_IN_ONE_HOST="${INTEGRATED_SERVER}" | ALL_IN_ONE_HOST="${INTEGRATED_SERVER}" | ||||||
| FILE_STORE_DIRECTORY="${FILE_STORE_DIRECTORY_INTERNAL:=/tmp/filestore}" | FILE_STORE_DIRECTORY="${FILE_STORE_DIRECTORY_INTERNAL:=/tmp/filestore}" | ||||||
| FILE_STORE_EXTERNAL_URL="${FILE_STORE_URL}" | 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=" " | ||||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.managerAddr=$OVSDB_MANAGER_HOST" | 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=" " | ||||||
| MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.internal=$MQTT_BROKER_HOST_INTERNAL" | 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.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" | MQTT_PROPS+=" -Dtip.wlan.mqttBroker.listenPort=1883" | ||||||
|  |  | ||||||
| LOGBACK_CONFIG_FILE="${LOGBACK_CONFIG_FILE:=/app/opensync/logback.xml}" | 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/ |  | ||||||
| @@ -7,6 +7,7 @@ | |||||||
|         <listEntry value="1"/> |         <listEntry value="1"/> | ||||||
|     </listAttribute> |     </listAttribute> | ||||||
|     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/> |     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/> | ||||||
|  |     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES" value="true"/> | ||||||
|     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/> |     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/> | ||||||
|     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> |     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> | ||||||
|     <listAttribute key="org.eclipse.jdt.launching.CLASSPATH"> |     <listAttribute key="org.eclipse.jdt.launching.CLASSPATH"> | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ | |||||||
| 				<artifactId>docker-maven-plugin</artifactId> | 				<artifactId>docker-maven-plugin</artifactId> | ||||||
| 				<version>${docker.fabric.version}</version> | 				<version>${docker.fabric.version}</version> | ||||||
| 				<configuration> | 				<configuration> | ||||||
| 					<verbose>true</verbose> | 					<verbose>false</verbose> | ||||||
| 					<apiVersion>1.23</apiVersion> | 					<apiVersion>1.23</apiVersion> | ||||||
| 					<images> | 					<images> | ||||||
| 						<image> | 						<image> | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|   "model_type": "Equipment", |   "model_type": "Equipment", | ||||||
|   "id": 51, |   "id": 51, | ||||||
|   "customerId": 2, |   "customerId": 2, | ||||||
|   "profileId": 5, |   "profileId": 12, | ||||||
|   "locationId": 8, |   "locationId": 8, | ||||||
|   "equipmentType": "AP", |   "equipmentType": "AP", | ||||||
|   "inventoryId": "Test_Client_21P10C68818122", |   "inventoryId": "Test_Client_21P10C68818122", | ||||||
| @@ -41,23 +41,23 @@ | |||||||
|         "bannedChannels": [], |         "bannedChannels": [], | ||||||
|         "allowedChannels": [], |         "allowedChannels": [], | ||||||
|         "rxCellSizeDb": { |         "rxCellSizeDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "probeResponseThresholdDb": { |         "probeResponseThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "clientDisconnectThresholdDb": { |         "clientDisconnectThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "eirpTxPower": { |         "eirpTxPower": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": false, |         	 "source": "auto", | ||||||
|           "value": 32 |           "value": 32 | ||||||
|         }, |         }, | ||||||
|         "perimeterDetectionEnabled": true, |         "perimeterDetectionEnabled": true, | ||||||
| @@ -75,23 +75,23 @@ | |||||||
|         "bannedChannels": [], |         "bannedChannels": [], | ||||||
|         "allowedChannels": [], |         "allowedChannels": [], | ||||||
|         "rxCellSizeDb": { |         "rxCellSizeDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "probeResponseThresholdDb": { |         "probeResponseThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "clientDisconnectThresholdDb": { |         "clientDisconnectThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "eirpTxPower": { |         "eirpTxPower": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": false, |         	 "source": "auto", | ||||||
|           "value": 32 |           "value": 32 | ||||||
|         }, |         }, | ||||||
|         "perimeterDetectionEnabled": true, |         "perimeterDetectionEnabled": true, | ||||||
| @@ -109,23 +109,23 @@ | |||||||
|         "bannedChannels": [], |         "bannedChannels": [], | ||||||
|         "allowedChannels": [], |         "allowedChannels": [], | ||||||
|         "rxCellSizeDb": { |         "rxCellSizeDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "probeResponseThresholdDb": { |         "probeResponseThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "clientDisconnectThresholdDb": { |         "clientDisconnectThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "eirpTxPower": { |         "eirpTxPower": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": false, |         	 "source": "auto", | ||||||
|           "value": 32 |           "value": 32 | ||||||
|         }, |         }, | ||||||
|         "perimeterDetectionEnabled": true, |         "perimeterDetectionEnabled": true, | ||||||
| @@ -141,16 +141,22 @@ | |||||||
|         "radioType": "is2dot4GHz", |         "radioType": "is2dot4GHz", | ||||||
|         "radioAdminState": "enabled", |         "radioAdminState": "enabled", | ||||||
|         "fragmentationThresholdBytes": 2346, |         "fragmentationThresholdBytes": 2346, | ||||||
|         "radioMode": "modeN", |  | ||||||
|         "wmmState": "enabled", |  | ||||||
|         "uapsdState": "enabled", |         "uapsdState": "enabled", | ||||||
|         "stationIsolation": "disabled", |         "stationIsolation": "disabled", | ||||||
|         "managementRate": "auto", |         "managementRate": { | ||||||
|  |           "model_type": "SourceSelectionManagement", | ||||||
|  |           "source": "auto", | ||||||
|  |           "value": "auto" | ||||||
|  |         }, | ||||||
|         "bestApSettings": { |         "bestApSettings": { | ||||||
|           "model_type": "RadioBestApSettings", |         "model_type": "SourceSelectionSteering", | ||||||
|           "mlComputed": true, |           "source": "auto", | ||||||
|           "dropInSnrPercentage": 20, |           "value": { | ||||||
|           "minLoadFactor": 50 | 	          "model_type": "RadioBestApSettings", | ||||||
|  | 	          "mlComputed": true, | ||||||
|  | 	          "dropInSnrPercentage": 30, | ||||||
|  | 	          "minLoadFactor": 40 | ||||||
|  |           } | ||||||
|         }, |         }, | ||||||
|         "legacyBSSRate": "enabled", |         "legacyBSSRate": "enabled", | ||||||
|         "deauthAttackDetection": null |         "deauthAttackDetection": null | ||||||
| @@ -160,16 +166,22 @@ | |||||||
|         "radioType": "is5GHzU", |         "radioType": "is5GHzU", | ||||||
|         "radioAdminState": "enabled", |         "radioAdminState": "enabled", | ||||||
|         "fragmentationThresholdBytes": 2346, |         "fragmentationThresholdBytes": 2346, | ||||||
|         "radioMode": "modeAC", |  | ||||||
|         "wmmState": "enabled", |  | ||||||
|         "uapsdState": "enabled", |         "uapsdState": "enabled", | ||||||
|         "stationIsolation": "disabled", |         "stationIsolation": "disabled", | ||||||
|         "managementRate": "auto", |         "managementRate": { | ||||||
|  |           "model_type": "SourceSelectionManagement", | ||||||
|  |           "source": "auto", | ||||||
|  |           "value": "auto" | ||||||
|  |         }, | ||||||
|         "bestApSettings": { |         "bestApSettings": { | ||||||
|           "model_type": "RadioBestApSettings", |         "model_type": "SourceSelectionSteering", | ||||||
|           "mlComputed": true, |           "source": "auto", | ||||||
|           "dropInSnrPercentage": 30, |           "value": { | ||||||
|           "minLoadFactor": 40 | 	          "model_type": "RadioBestApSettings", | ||||||
|  | 	          "mlComputed": true, | ||||||
|  | 	          "dropInSnrPercentage": 30, | ||||||
|  | 	          "minLoadFactor": 40 | ||||||
|  |           } | ||||||
|         }, |         }, | ||||||
|         "legacyBSSRate": "enabled", |         "legacyBSSRate": "enabled", | ||||||
|         "deauthAttackDetection": null |         "deauthAttackDetection": null | ||||||
| @@ -179,16 +191,22 @@ | |||||||
|         "radioType": "is5GHzL", |         "radioType": "is5GHzL", | ||||||
|         "radioAdminState": "enabled", |         "radioAdminState": "enabled", | ||||||
|         "fragmentationThresholdBytes": 2346, |         "fragmentationThresholdBytes": 2346, | ||||||
|         "radioMode": "modeAC", |  | ||||||
|         "wmmState": "enabled", |  | ||||||
|         "uapsdState": "enabled", |         "uapsdState": "enabled", | ||||||
|         "stationIsolation": "disabled", |         "stationIsolation": "disabled", | ||||||
|         "managementRate": "auto", |         "managementRate": { | ||||||
|  |           "model_type": "SourceSelectionManagement", | ||||||
|  |           "source": "auto", | ||||||
|  |           "value": "auto" | ||||||
|  |         }, | ||||||
|         "bestApSettings": { |         "bestApSettings": { | ||||||
|           "model_type": "RadioBestApSettings", |         "model_type": "SourceSelectionSteering", | ||||||
|           "mlComputed": true, |           "source": "auto", | ||||||
|           "dropInSnrPercentage": 30, |           "value": { | ||||||
|           "minLoadFactor": 40 | 	          "model_type": "RadioBestApSettings", | ||||||
|  | 	          "mlComputed": true, | ||||||
|  | 	          "dropInSnrPercentage": 30, | ||||||
|  | 	          "minLoadFactor": 40 | ||||||
|  |           } | ||||||
|         }, |         }, | ||||||
|         "legacyBSSRate": "enabled", |         "legacyBSSRate": "enabled", | ||||||
|         "deauthAttackDetection": null |         "deauthAttackDetection": null | ||||||
| @@ -200,4 +218,4 @@ | |||||||
|   "serial": "21P10C68818122", |   "serial": "21P10C68818122", | ||||||
|   "createdTimestamp": 1591653239821, |   "createdTimestamp": 1591653239821, | ||||||
|   "lastModifiedTimestamp": 1591653241398 |   "lastModifiedTimestamp": 1591653241398 | ||||||
| } | } | ||||||
|   | |||||||
| @@ -10,55 +10,48 @@ | |||||||
|     "countryCode" : "ca", |     "countryCode" : "ca", | ||||||
|     "maintenanceWindow" : null, |     "maintenanceWindow" : null, | ||||||
|     "rrmEnabled" : true, |     "rrmEnabled" : true, | ||||||
|     "dailyRebalancingDetails" : { |     "dailyActivityDetails" : { | ||||||
|       "SUNDAY" : { |       "SUNDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "MONDAY" : { |       "MONDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "TUESDAY" : { |       "TUESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "WEDNESDAY" : { |       "WEDNESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "THURSDAY" : { |       "THURSDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "FRIDAY" : { |       "FRIDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "SATURDAY" : { |       "SATURDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -10,55 +10,48 @@ | |||||||
|     "countryCode" : "usa", |     "countryCode" : "usa", | ||||||
|     "maintenanceWindow" : null, |     "maintenanceWindow" : null, | ||||||
|     "rrmEnabled" : true, |     "rrmEnabled" : true, | ||||||
|     "dailyRebalancingDetails" : { |     "dailyActivityDetails" : { | ||||||
|       "SUNDAY" : { |       "SUNDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "MONDAY" : { |       "MONDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "TUESDAY" : { |       "TUESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "WEDNESDAY" : { |       "WEDNESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "THURSDAY" : { |       "THURSDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "FRIDAY" : { |       "FRIDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "SATURDAY" : { |       "SATURDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "model_type": "Profile", |     "model_type": "Profile", | ||||||
|     "id": 17, |     "id": 12, | ||||||
|     "customerId": 2, |     "customerId": 2, | ||||||
|     "profileType": "equipment_ap", |     "profileType": "equipment_ap", | ||||||
|     "name": "ApProfile-3-radios", |     "name": "ApProfile-3-radios", | ||||||
| @@ -20,6 +20,11 @@ | |||||||
|         "syntheticClientEnabled": true, |         "syntheticClientEnabled": true, | ||||||
|         "ledControlEnabled": true, |         "ledControlEnabled": true, | ||||||
|         "equipmentDiscovery": false, |         "equipmentDiscovery": false, | ||||||
|  |         "greTunnelName": null, | ||||||
|  |         "greParentIfName": null, | ||||||
|  |         "greLocalInetAddr": null, | ||||||
|  |         "greRemoteInetAddr": null, | ||||||
|  |         "greRemoteMacAddr": null, | ||||||
|         "radioMap": { |         "radioMap": { | ||||||
|             "is2dot4GHz": { |             "is2dot4GHz": { | ||||||
|                 "model_type": "RadioProfileConfiguration", |                 "model_type": "RadioProfileConfiguration", | ||||||
| @@ -39,12 +44,13 @@ | |||||||
|         }, |         }, | ||||||
|         "profileType": "equipment_ap" |         "profileType": "equipment_ap" | ||||||
|     }, |     }, | ||||||
|     "createdTimestamp": 1602182806348, |     "createdTimestamp": 1606778369934, | ||||||
|     "lastModifiedTimestamp": 1602182806348, |     "lastModifiedTimestamp": 1606778443413, | ||||||
|     "childProfileIds": [ |     "childProfileIds": [ | ||||||
|         2, |         16, | ||||||
|         5, |         5, | ||||||
|  |         10, | ||||||
|         11, |         11, | ||||||
|         13 |         15 | ||||||
|     ] |     ] | ||||||
| } | } | ||||||
| @@ -1,72 +1,71 @@ | |||||||
| [ | [ | ||||||
| { | 	{ | ||||||
|     "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|     "id": 10, | 		"id": 24, | ||||||
|     "customerId": 2, | 		"customerId": 2, | ||||||
|     "profileType": "hotspot_2pt0", | 		"profileType": "passpoint", | ||||||
|     "name": "TipWlan-Hotspot20-Config", | 		"name": "TipWlan-Passpoint-Config", | ||||||
|     "details": { | 		"details": { | ||||||
|         "model_type": "Hotspot2Profile", | 			"model_type": "PasspointProfile", | ||||||
|         "enableInterworkingAndHs20": true, | 			"enableInterworkingAndHs20": true, | ||||||
|         "hessid": null, | 			"hessid": null, | ||||||
|         "accessNetworkType": "free_public_network", | 			"passpointAccessNetworkType": "free_public_network", | ||||||
|         "networkAuthenticationType": "acceptance_of_terms_and_conditions", | 			"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||||
|         "additionalStepsRequiredForAccess": 0, | 			"additionalStepsRequiredForAccess": 0, | ||||||
|         "deauthRequestTimeout": 0, | 			"deauthRequestTimeout": 0, | ||||||
|         "operatingClass": 0, | 			"operatingClass": 0, | ||||||
|         "termsAndConditionsFile": { | 			"termsAndConditionsFile": { | ||||||
|             "model_type": "ManagedFileInfo", | 				"model_type": "ManagedFileInfo", | ||||||
|             "md5checksum": null, | 				"md5checksum": null, | ||||||
|             "lastModifiedTimestamp": null, | 				"lastModifiedTimestamp": null, | ||||||
|             "apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | 				"apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | ||||||
|             "fileCategory": "ExternalPolicyConfiguration", | 				"fileCategory": "ExternalPolicyConfiguration", | ||||||
|             "fileType": "TEXT", | 				"fileType": "TEXT", | ||||||
|             "altSlot": false | 				"altSlot": false | ||||||
|         }, | 			}, | ||||||
|         "whitelistDomain": null, | 			"whitelistDomain": null, | ||||||
|         "emergencyServicesReachable": true, | 			"emergencyServicesReachable": true, | ||||||
|         "unauthenticatedEmergencyServiceAccessible": false, | 			"unauthenticatedEmergencyServiceAccessible": false, | ||||||
|         "internetConnectivity": true, | 			"internetConnectivity": true, | ||||||
|         "connectionCapabilitySet": [ | 			"connectionCapabilitySet": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "ConnectionCapability", | 					"model_type": "PasspointConnectionCapability", | ||||||
|                 "connectionCapabilitiesPortNumber": 8888, | 					"connectionCapabilitiesPortNumber": 8888, | ||||||
|                 "connectionCapabilitiesIpProtocol": "TCP", | 					"connectionCapabilitiesStatus": "open", | ||||||
|                 "connectionCapabilitiesStatus": "open" | 					"connectionCapabilitiesIpProtocol": "TCP" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "ipAddressTypeAvailability": "public_IPv4_address_available", | 			"ipAddressTypeAvailability": "public_IPv4_address_available", | ||||||
|         "qosMapSetConfiguration": null, | 			"qosMapSetConfiguration": null, | ||||||
|         "apGeospatialLocation": null, | 			"apGeospatialLocation": null, | ||||||
|         "apCivicLocation": null, | 			"apCivicLocation": null, | ||||||
|         "apPublicLocationIdUri": null, | 			"apPublicLocationIdUri": null, | ||||||
|         "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | 			"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | ||||||
|         "anqpDomainId": 1234, | 			"anqpDomainId": 1234, | ||||||
|         "disableDownstreamGroupAddressedForwarding": false, | 			"disableDownstreamGroupAddressedForwarding": false, | ||||||
|         "enable2pt4GHz": true, | 			"enable2pt4GHz": true, | ||||||
|         "enable5GHz": true, | 			"enable5GHz": true, | ||||||
|         "associatedAccessSsidNames": [ | 			"associatedAccessSsidProfileIds": [ | ||||||
|             "TipWlan-cloud-hotspot-access" | 				15 | ||||||
|         ], | 			], | ||||||
|         "osuSsidName": "TipWlan-cloud-3-radios", | 			"osuSsidProfileId": 16, | ||||||
|         "operatorProfileName": "TipWlan-Hotspot20-Operator", | 			"passpointOperatorProfileId": 17, | ||||||
|         "venueProfileName": "TipWlan-Hotspot20-Venue", | 			"passpointVenueProfileId": 18, | ||||||
|         "idProviderProfileNames": [ | 			"passpointOsuProviderProfileIds": [ | ||||||
|             "TipWlan-Hotspot20-OSU-Provider-2", | 				19, | ||||||
|             "TipWlan-Hotspot20-OSU-Provider" | 				20 | ||||||
|         ], | 			], | ||||||
|         "profileType": "hotspot_2pt0", | 			"accessNetworkType": "free_public_network", | ||||||
|         "associatedSsids": [ | 			"networkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||||
|             "TipWlan-cloud-hotspot-access" | 			"profileType": "passpoint" | ||||||
|         ] | 		}, | ||||||
|     }, | 		"createdTimestamp": 1606778370807, | ||||||
|     "createdTimestamp": 1602182806040, | 		"lastModifiedTimestamp": 1606778370807, | ||||||
|     "lastModifiedTimestamp": 1602182806040, | 		"childProfileIds": [ | ||||||
|     "childProfileIds": [ | 			17, | ||||||
|         6, | 			18, | ||||||
|         7, | 			19, | ||||||
|         8, | 			20 | ||||||
|         9 | 		] | ||||||
|     ] | 	} | ||||||
| } | ] | ||||||
| ] |  | ||||||
|   | |||||||
| @@ -1,256 +1,270 @@ | |||||||
| [ | [ | ||||||
| { | 	{ | ||||||
|     "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|     "id": 8, | 		"id": 19, | ||||||
|     "customerId": 2, | 		"customerId": 2, | ||||||
|     "profileType": "id_provider", | 		"profileType": "passpoint_osu_id_provider", | ||||||
|     "name": "TipWlan-Hotspot20-OSU-Provider", | 		"name": "TipWlan-Passpoint-OSU-Provider", | ||||||
|     "details": { | 		"details": { | ||||||
|         "model_type": "Hotspot20IdProviderProfile", | 			"model_type": "PasspointOsuProviderProfile", | ||||||
|         "domainName": "rogers.com", | 			"domainName": "rogers.com", | ||||||
|         "mccMncList": [ | 			"mccMncList": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "MccMnc", | 					"model_type": "PasspointMccMnc", | ||||||
|                 "mcc": 302, | 					"mcc": 302, | ||||||
|                 "mnc": 720, | 					"mnc": 720, | ||||||
|                 "iso": "ca", | 					"iso": "ca", | ||||||
|                 "country": "Canada", | 					"country": "Canada", | ||||||
|                 "countryCode": 1, | 					"countryCode": 1, | ||||||
|                 "network": "Rogers AT&T Wireless", | 					"network": "Rogers AT&T Wireless", | ||||||
|                 "mccMncPairing": "302,720" | 					"mccMncPairing": "302,720" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "naiRealmList": [ | 			"naiRealmList": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "NaiRealmInformation", | 					"model_type": "PasspointNaiRealmInformation", | ||||||
|                 "naiRealms": [ | 					"naiRealms": [ | ||||||
|                     "rogers.com" | 						"rogers.com" | ||||||
|                 ], | 					], | ||||||
|                 "encoding": 0, | 					"encoding": 0, | ||||||
|                 "eapMethods": [ | 					"eapMethods": [ | ||||||
|                     "EAP-TTLS with username/password", | 						"EAP-TTLS with username/password", | ||||||
|                     "EAP-TLS with certificate" | 						"EAP-TLS with certificate" | ||||||
|                 ], | 					], | ||||||
|                 "eapMap": { | 					"eapMap": { | ||||||
|                     "EAP-TTLS with username/password": [ | 						"EAP-TTLS with username/password": [ | ||||||
|                         "Credential Type:username/password", | 							"Credential Type:username/password", | ||||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||||
|                     ], | 						], | ||||||
|                     "EAP-TLS with certificate": [ | 						"EAP-TLS with certificate": [ | ||||||
|                         "Credential Type:Certificate" | 							"Credential Type:Certificate" | ||||||
|                     ] | 						] | ||||||
|                 } | 					} | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "osuIconList": [ | 			"osuIconList": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "OsuIcon", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "iconWidth": 32, | 					"iconWidth": 32, | ||||||
|                 "iconHeight": 32, | 					"iconHeight": 32, | ||||||
|                 "languageCode": "eng", | 					"languageCode": "eng", | ||||||
|                 "iconLocale": "en_CA", | 					"iconLocale": "en_CA", | ||||||
|                 "iconName": "icon32eng", | 					"iconName": "icon32eng", | ||||||
|                 "filePath": "/tmp/icon32eng.png", | 					"filePath": "/tmp/icon32eng.png", | ||||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "OsuIcon", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "iconWidth": 32, | 					"iconWidth": 32, | ||||||
|                 "iconHeight": 32, | 					"iconHeight": 32, | ||||||
|                 "languageCode": "fra", | 					"languageCode": "fra", | ||||||
|                 "iconLocale": "fr_CA", | 					"iconLocale": "fr_CA", | ||||||
|                 "iconName": "icon32fra", | 					"iconName": "icon32fra", | ||||||
|                 "filePath": "/tmp/icon32fra.png", | 					"filePath": "/tmp/icon32fra.png", | ||||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "OsuIcon", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "iconWidth": 32, | 					"iconWidth": 32, | ||||||
|                 "iconHeight": 32, | 					"iconHeight": 32, | ||||||
|                 "languageCode": "eng", | 					"languageCode": "eng", | ||||||
|                 "iconLocale": "en_US", | 					"iconLocale": "en_US", | ||||||
|                 "iconName": "icon32usa", | 					"iconName": "icon32usa", | ||||||
|                 "filePath": "/tmp/icon32usa.png", | 					"filePath": "/tmp/icon32usa.png", | ||||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "osuServerUri": "https://example.com/osu/rogers/", | 			"osuServerUri": "https://example.com/osu/rogers", | ||||||
|         "osuFriendlyName": [ | 			"osuFriendlyName": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "en_CA", | 					"locale": "en_CA", | ||||||
|                 "dupleIso3Language": "eng", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleName": "Example provider rogers", | 					"dupleName": "Example provider rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "eng:Example provider rogers" | 					"asDuple": "eng:Example provider rogers" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "fr_CA", | 					"locale": "fr_CA", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleIso3Language": "fra", | ||||||
|                 "dupleName": "Exemple de fournisseur rogers", | 					"dupleName": "Exemple de fournisseur rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "fra:Exemple de fournisseur rogers" | 					"asDuple": "fra:Exemple de fournisseur rogers" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "osuNaiStandalone": "anonymous@rogers.com", | 			"osuNaiStandalone": "anonymous@rogers.com", | ||||||
|         "osuNaiShared": "anonymous@rogers.com", | 			"osuNaiShared": "anonymous@rogers.com", | ||||||
|         "osuMethodList": [ | 			"osuMethodList": [ | ||||||
|             1, | 				1, | ||||||
|             0 | 				0 | ||||||
|         ], | 			], | ||||||
|         "osuServiceDescription": [ | 			"osuServiceDescription": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "en_CA", | 					"locale": "en_CA", | ||||||
|                 "dupleIso3Language": "eng", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleName": "Example services rogers", | 					"dupleName": "Example services rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "eng:Example services rogers" | 					"asDuple": "eng:Example services rogers" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "fr_CA", | 					"locale": "fr_CA", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleIso3Language": "fra", | ||||||
|                 "dupleName": "Exemples de services rogers", | 					"dupleName": "Exemples de services rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "fra:Exemples de services rogers" | 					"asDuple": "fra:Exemples de services rogers" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "profileType": "id_provider" | 			"roamingOi": [ | ||||||
|     }, | 				1, | ||||||
|     "createdTimestamp": 1602182805654, | 				2, | ||||||
|     "lastModifiedTimestamp": 1602182805654, | 				3, | ||||||
|     "childProfileIds": [] | 				4 | ||||||
| }, | 			], | ||||||
| { | 			"profileType": "passpoint_osu_id_provider" | ||||||
|     "model_type": "Profile", | 		}, | ||||||
|     "id": 9, | 		"createdTimestamp": 1606778370345, | ||||||
|     "customerId": 2, | 		"lastModifiedTimestamp": 1606778370345, | ||||||
|     "profileType": "id_provider", | 		"childProfileIds": [ | ||||||
|     "name": "TipWlan-Hotspot20-OSU-Provider-2", | 		] | ||||||
|     "details": { | 	}, | ||||||
|         "model_type": "Hotspot20IdProviderProfile", | 	{ | ||||||
|         "domainName": "telus.com", | 		"model_type": "Profile", | ||||||
|         "mccMncList": [ | 		"id": 20, | ||||||
|             { | 		"customerId": 2, | ||||||
|                 "model_type": "MccMnc", | 		"profileType": "passpoint_osu_id_provider", | ||||||
|                 "mcc": 302, | 		"name": "TipWlan-Passpoint-OSU-Provider-2", | ||||||
|                 "mnc": 220, | 		"details": { | ||||||
|                 "iso": "ca", | 			"model_type": "PasspointOsuProviderProfile", | ||||||
|                 "country": "Canada", | 			"domainName": "telus.com", | ||||||
|                 "countryCode": 1, | 			"mccMncList": [ | ||||||
|                 "network": "Telus Mobility", | 				{ | ||||||
|                 "mccMncPairing": "302,220" | 					"model_type": "PasspointMccMnc", | ||||||
|             } | 					"mcc": 302, | ||||||
|         ], | 					"mnc": 220, | ||||||
|         "naiRealmList": [ | 					"iso": "ca", | ||||||
|             { | 					"country": "Canada", | ||||||
|                 "model_type": "NaiRealmInformation", | 					"countryCode": 1, | ||||||
|                 "naiRealms": [ | 					"network": "Telus Mobility", | ||||||
|                     "telus.com" | 					"mccMncPairing": "302,220" | ||||||
|                 ], | 				} | ||||||
|                 "encoding": 0, | 			], | ||||||
|                 "eapMethods": [ | 			"naiRealmList": [ | ||||||
|                     "EAP-TTLS with username/password", | 				{ | ||||||
|                     "EAP-TLS with certificate" | 					"model_type": "PasspointNaiRealmInformation", | ||||||
|                 ], | 					"naiRealms": [ | ||||||
|                 "eapMap": { | 						"telus.com" | ||||||
|                     "EAP-TTLS with username/password": [ | 					], | ||||||
|                         "Credential Type:username/password", | 					"encoding": 0, | ||||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | 					"eapMethods": [ | ||||||
|                     ], | 						"EAP-TTLS with username/password", | ||||||
|                     "EAP-TLS with certificate": [ | 						"EAP-TLS with certificate" | ||||||
|                         "Credential Type:Certificate" | 					], | ||||||
|                     ] | 					"eapMap": { | ||||||
|                 } | 						"EAP-TTLS with username/password": [ | ||||||
|             } | 							"Credential Type:username/password", | ||||||
|         ], | 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||||
|         "osuIconList": [ | 						], | ||||||
|             { | 						"EAP-TLS with certificate": [ | ||||||
|                 "model_type": "OsuIcon", | 							"Credential Type:Certificate" | ||||||
|                 "iconWidth": 32, | 						] | ||||||
|                 "iconHeight": 32, | 					} | ||||||
|                 "languageCode": "eng", | 				} | ||||||
|                 "iconLocale": "en_CA", | 			], | ||||||
|                 "iconName": "icon32eng", | 			"osuIconList": [ | ||||||
|                 "filePath": "/tmp/icon32eng.png", | 				{ | ||||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | 					"iconWidth": 32, | ||||||
|             }, | 					"iconHeight": 32, | ||||||
|             { | 					"languageCode": "eng", | ||||||
|                 "model_type": "OsuIcon", | 					"iconLocale": "en_CA", | ||||||
|                 "iconWidth": 32, | 					"iconName": "icon32eng", | ||||||
|                 "iconHeight": 32, | 					"filePath": "/tmp/icon32eng.png", | ||||||
|                 "languageCode": "fra", | 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||||
|                 "iconLocale": "fr_CA", | 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||||
|                 "iconName": "icon32fra", | 				}, | ||||||
|                 "filePath": "/tmp/icon32fra.png", | 				{ | ||||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | 					"iconWidth": 32, | ||||||
|             }, | 					"iconHeight": 32, | ||||||
|             { | 					"languageCode": "fra", | ||||||
|                 "model_type": "OsuIcon", | 					"iconLocale": "fr_CA", | ||||||
|                 "iconWidth": 32, | 					"iconName": "icon32fra", | ||||||
|                 "iconHeight": 32, | 					"filePath": "/tmp/icon32fra.png", | ||||||
|                 "languageCode": "eng", | 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||||
|                 "iconLocale": "en_US", | 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||||
|                 "iconName": "icon32usa", | 				}, | ||||||
|                 "filePath": "/tmp/icon32usa.png", | 				{ | ||||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | 					"iconWidth": 32, | ||||||
|             } | 					"iconHeight": 32, | ||||||
|         ], | 					"languageCode": "eng", | ||||||
|         "osuServerUri": "https://example.com/osu/telus/", | 					"iconLocale": "en_US", | ||||||
|         "osuFriendlyName": [ | 					"iconName": "icon32usa", | ||||||
|             { | 					"filePath": "/tmp/icon32usa.png", | ||||||
|                 "model_type": "Hotspot20Duple", | 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||||
|                 "locale": "en_CA", | 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||||
|                 "dupleIso3Language": "eng", | 				} | ||||||
|                 "dupleName": "Example provider telus", | 			], | ||||||
|                 "defaultDupleSeparator": ":", | 			"osuServerUri": "https://example.com/osu/telus", | ||||||
|                 "asDuple": "eng:Example provider telus" | 			"osuFriendlyName": [ | ||||||
|             }, | 				{ | ||||||
|             { | 					"model_type": "PasspointDuple", | ||||||
|                 "model_type": "Hotspot20Duple", | 					"locale": "en_CA", | ||||||
|                 "locale": "fr_CA", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleName": "Example provider telus", | ||||||
|                 "dupleName": "Exemple de fournisseur telus", | 					"defaultDupleSeparator": ":", | ||||||
|                 "defaultDupleSeparator": ":", | 					"asDuple": "eng:Example provider telus" | ||||||
|                 "asDuple": "fra:Exemple de fournisseur telus" | 				}, | ||||||
|             } | 				{ | ||||||
|         ], | 					"model_type": "PasspointDuple", | ||||||
|         "osuNaiStandalone": "anonymous@telus.com", | 					"locale": "fr_CA", | ||||||
|         "osuNaiShared": "anonymous@telus.com", | 					"dupleIso3Language": "fra", | ||||||
|         "osuMethodList": [ | 					"dupleName": "Exemple de fournisseur telus", | ||||||
|             1, | 					"defaultDupleSeparator": ":", | ||||||
|             0 | 					"asDuple": "fra:Exemple de fournisseur telus" | ||||||
|         ], | 				} | ||||||
|         "osuServiceDescription": [ | 			], | ||||||
|             { | 			"osuNaiStandalone": "anonymous@telus.com", | ||||||
|                 "model_type": "Hotspot20Duple", | 			"osuNaiShared": "anonymous@telus.com", | ||||||
|                 "locale": "en_CA", | 			"osuMethodList": [ | ||||||
|                 "dupleIso3Language": "eng", | 				1, | ||||||
|                 "dupleName": "Example services telus", | 				0 | ||||||
|                 "defaultDupleSeparator": ":", | 			], | ||||||
|                 "asDuple": "eng:Example services telus" | 			"osuServiceDescription": [ | ||||||
|             }, | 				{ | ||||||
|             { | 					"model_type": "PasspointDuple", | ||||||
|                 "model_type": "Hotspot20Duple", | 					"locale": "en_CA", | ||||||
|                 "locale": "fr_CA", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleName": "Example services telus", | ||||||
|                 "dupleName": "Exemples de services telus", | 					"defaultDupleSeparator": ":", | ||||||
|                 "defaultDupleSeparator": ":", | 					"asDuple": "eng:Example services telus" | ||||||
|                 "asDuple": "fra:Exemples de services telus" | 				}, | ||||||
|             } | 				{ | ||||||
|         ], | 					"model_type": "PasspointDuple", | ||||||
|         "profileType": "id_provider" | 					"locale": "fr_CA", | ||||||
|     }, | 					"dupleIso3Language": "fra", | ||||||
|     "createdTimestamp": 1602182805660, | 					"dupleName": "Exemples de services telus", | ||||||
|     "lastModifiedTimestamp": 1602182805660, | 					"defaultDupleSeparator": ":", | ||||||
|     "childProfileIds": [] | 					"asDuple": "fra:Exemples de services telus" | ||||||
| } | 				} | ||||||
|     ] | 			], | ||||||
|  | 			"roamingOi": [ | ||||||
|  | 				1, | ||||||
|  | 				2, | ||||||
|  | 				3, | ||||||
|  | 				4 | ||||||
|  | 			], | ||||||
|  | 			"profileType": "passpoint_osu_id_provider" | ||||||
|  | 		}, | ||||||
|  | 		"createdTimestamp": 1606778370351, | ||||||
|  | 		"lastModifiedTimestamp": 1606778370351, | ||||||
|  | 		"childProfileIds": [ | ||||||
|  | 		] | ||||||
|  | 	} | ||||||
|  | ] | ||||||
|   | |||||||
| @@ -1,298 +1,299 @@ | |||||||
| [ | [ | ||||||
|  { | 	{ | ||||||
|         "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|         "id": 2, | 		"id": 10, | ||||||
|         "customerId": 2, | 		"customerId": 2, | ||||||
|         "profileType": "metrics", | 		"profileType": "service_metrics_collection_config", | ||||||
|         "name": "Metrics-Profile-3-radios", | 		"name": "Metrics-Profile-3-Radios", | ||||||
|         "details": { | 		"details": { | ||||||
|             "model_type": "ServiceMetricsCollectionConfigProfile", | 			"model_type": "ServiceMetricsCollectionConfigProfile", | ||||||
|             "radioTypes": [ | 			"radioTypes": [ | ||||||
|                 "is5GHzU", | 				"is5GHzL", | ||||||
|                 "is5GHzL", | 				"is2dot4GHz", | ||||||
|                 "is2dot4GHz" | 				"is5GHzU" | ||||||
|             ], | 			], | ||||||
|             "serviceMetricDataTypes": [ | 			"serviceMetricDataTypes": [ | ||||||
|                 "ApNode", | 				"ApNode", | ||||||
|                 "ApSsid", | 				"ApSsid", | ||||||
|                 "Client", | 				"Client", | ||||||
|                 "Channel", | 				"Channel", | ||||||
|                 "Neighbour" | 				"Neighbour" | ||||||
|             ], | 			], | ||||||
|             "metricConfigParameterMap": { | 			"metricConfigParameterMap": { | ||||||
|                 "ApNode": [ | 				"ApNode": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "ApSsid": [ | 				"ApSsid": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is2dot4GHz", | 						"radioType": "is5GHzU", | ||||||
|                         "serviceMetricDataType": "ApSsid" | 						"serviceMetricDataType": "ApSsid" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzL", | 						"radioType": "is5GHzL", | ||||||
|                         "serviceMetricDataType": "ApSsid" | 						"serviceMetricDataType": "ApSsid" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzU", | 						"radioType": "is2dot4GHz", | ||||||
|                         "serviceMetricDataType": "ApSsid" | 						"serviceMetricDataType": "ApSsid" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "Client": [ | 				"Client": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is2dot4GHz", | 						"radioType": "is5GHzU", | ||||||
|                         "serviceMetricDataType": "Client" | 						"serviceMetricDataType": "Client" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzL", | 						"radioType": "is5GHzL", | ||||||
|                         "serviceMetricDataType": "Client" | 						"serviceMetricDataType": "Client" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzU", | 						"radioType": "is2dot4GHz", | ||||||
|                         "serviceMetricDataType": "Client" | 						"serviceMetricDataType": "Client" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "Channel": [ | 				"Channel": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "Neighbour": [ | 				"Neighbour": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     } | 					} | ||||||
|                 ] | 				] | ||||||
|             }, | 			}, | ||||||
|             "profileType": "metrics" | 			"profileType": "service_metrics_collection_config" | ||||||
|         }, | 		}, | ||||||
|         "createdTimestamp": 1602113058699, | 		"createdTimestamp": 1606778369931, | ||||||
|         "lastModifiedTimestamp": 1602113058699, | 		"lastModifiedTimestamp": 1606778369931, | ||||||
|         "childProfileIds": [] | 		"childProfileIds": [ | ||||||
|     } | 		] | ||||||
| ] | 	} | ||||||
|  | ] | ||||||
|   | |||||||
| @@ -1,37 +1,37 @@ | |||||||
| [ | [ | ||||||
| { | 	{ | ||||||
|         "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|         "id": 6, | 		"id": 17, | ||||||
|         "customerId": 2, | 		"customerId": 2, | ||||||
|         "profileType": "operator", | 		"profileType": "passpoint_operator", | ||||||
|         "name": "TipWlan-Hotspot20-Operator", | 		"name": "TipWlan-Passpoint-Operator", | ||||||
|         "details": { | 		"details": { | ||||||
|             "model_type": "OperatorProfile", | 			"model_type": "PasspointOperatorProfile", | ||||||
|             "domainName": "telecominfraproject.atlassian.net", | 			"serverOnlyAuthenticatedL2EncryptionNetwork": false, | ||||||
|             "serverOnlyAuthenticatedL2EncryptionNetwork": false, | 			"x509CertificateLocation": "/etc/ca.pem", | ||||||
|             "x509CertificateLocation": "/etc/ca.pem", | 			"operatorFriendlyName": [ | ||||||
|             "operatorFriendlyName": [ | 				{ | ||||||
|                 { | 					"model_type": "PasspointDuple", | ||||||
|                     "model_type": "Hotspot20Duple", | 					"locale": "en_CA", | ||||||
|                     "locale": "en_CA", | 					"dupleIso3Language": "eng", | ||||||
|                     "dupleIso3Language": "eng", | 					"dupleName": "Default friendly passpoint_operator name", | ||||||
|                     "dupleName": "Default friendly operator name", | 					"defaultDupleSeparator": ":", | ||||||
|                     "defaultDupleSeparator": ":", | 					"asDuple": "eng:Default friendly passpoint_operator name" | ||||||
|                     "asDuple": "eng:Default friendly operator name" | 				}, | ||||||
|                 }, | 				{ | ||||||
|                 { | 					"model_type": "PasspointDuple", | ||||||
|                     "model_type": "Hotspot20Duple", | 					"locale": "fr_CA", | ||||||
|                     "locale": "fr_CA", | 					"dupleIso3Language": "fra", | ||||||
|                     "dupleIso3Language": "fra", | 					"dupleName": "Nom de l'opérateur convivial par défaut", | ||||||
|                     "dupleName": "Nom de l'opérateur convivial par défaut", | 					"defaultDupleSeparator": ":", | ||||||
|                     "defaultDupleSeparator": ":", | 					"asDuple": "fra:Nom de l'opérateur convivial par défaut" | ||||||
|                     "asDuple": "fra:Nom de l'opérateur convivial par défaut" | 				} | ||||||
|                 } | 			], | ||||||
|             ], | 			"profileType": "passpoint_operator" | ||||||
|             "profileType": "operator" | 		}, | ||||||
|         }, | 		"createdTimestamp": 1606778369945, | ||||||
|         "createdTimestamp": 1602113058719, | 		"lastModifiedTimestamp": 1606778369945, | ||||||
|         "lastModifiedTimestamp": 1602113058719, | 		"childProfileIds": [ | ||||||
|         "childProfileIds": [] | 		] | ||||||
|     } | 	} | ||||||
| ] | ] | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "model_type": "Profile", |     "model_type": "Profile", | ||||||
|     "id": 13, |     "id": 11, | ||||||
|     "customerId": 2, |     "customerId": 2, | ||||||
|     "profileType": "rf", |     "profileType": "rf", | ||||||
|     "name": "TipWlan-rf", |     "name": "TipWlan-rf", | ||||||
| @@ -9,6 +9,8 @@ | |||||||
|         "rfConfigMap": { |         "rfConfigMap": { | ||||||
|             "is5GHz": { |             "is5GHz": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is5GHz", | ||||||
|  |                 "radioMode": "modeAC", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -16,7 +18,6 @@ | |||||||
|                 "channelBandwidth": "is80MHz", |                 "channelBandwidth": "is80MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -24,33 +25,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -60,16 +40,24 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
|                     "dropInSnrPercentage": 30, |                     "dropInSnrPercentage": 30, | ||||||
|                     "minLoadFactor": 40 |                     "minLoadFactor": 40 | ||||||
|                 }, |                 } | ||||||
|                 "minAutoCellSize": -65 |  | ||||||
|             }, |             }, | ||||||
|             "is2dot4GHz": { |             "is2dot4GHz": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is2dot4GHz", | ||||||
|  |                 "radioMode": "modeN", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -77,7 +65,6 @@ | |||||||
|                 "channelBandwidth": "is20MHz", |                 "channelBandwidth": "is20MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -85,33 +72,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -121,16 +87,24 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
|                     "dropInSnrPercentage": 20, |                     "dropInSnrPercentage": 20, | ||||||
|                     "minLoadFactor": 50 |                     "minLoadFactor": 50 | ||||||
|                 }, |                 } | ||||||
|                 "minAutoCellSize": -65 |  | ||||||
|             }, |             }, | ||||||
|             "is5GHzU": { |             "is5GHzU": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is5GHzU", | ||||||
|  |                 "radioMode": "modeAC", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -138,7 +112,6 @@ | |||||||
|                 "channelBandwidth": "is80MHz", |                 "channelBandwidth": "is80MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -146,33 +119,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -182,16 +134,24 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
|                     "dropInSnrPercentage": 30, |                     "dropInSnrPercentage": 30, | ||||||
|                     "minLoadFactor": 40 |                     "minLoadFactor": 40 | ||||||
|                 }, |                 } | ||||||
|                 "minAutoCellSize": -65 |  | ||||||
|             }, |             }, | ||||||
|             "is5GHzL": { |             "is5GHzL": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is5GHzL", | ||||||
|  |                 "radioMode": "modeAC", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -199,7 +159,6 @@ | |||||||
|                 "channelBandwidth": "is80MHz", |                 "channelBandwidth": "is80MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -207,33 +166,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -243,18 +181,24 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
|                     "dropInSnrPercentage": 30, |                     "dropInSnrPercentage": 30, | ||||||
|                     "minLoadFactor": 40 |                     "minLoadFactor": 40 | ||||||
|                 }, |                 } | ||||||
|                 "minAutoCellSize": -65 |  | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "profileType": "rf" |         "profileType": "rf" | ||||||
|     }, |     }, | ||||||
|     "createdTimestamp": 1602182806063, |     "createdTimestamp": 1606778369933, | ||||||
|     "lastModifiedTimestamp": 1602182806063, |     "lastModifiedTimestamp": 1606778369933, | ||||||
|     "childProfileIds": [] |     "childProfileIds": [] | ||||||
| } | } | ||||||
| @@ -4,72 +4,6 @@ | |||||||
| 		"id": 5, | 		"id": 5, | ||||||
| 		"customerId": 2, | 		"customerId": 2, | ||||||
| 		"profileType": "ssid", | 		"profileType": "ssid", | ||||||
| 		"name": "TipWlan-cloud-hotspot-access", |  | ||||||
| 		"details": { |  | ||||||
| 			"model_type": "SsidConfiguration", |  | ||||||
| 			"ssid": "TipWlan-cloud-hotspot-access", |  | ||||||
| 			"appliedRadios": [ |  | ||||||
| 				"is5GHzU", |  | ||||||
| 				"is5GHzL", |  | ||||||
| 				"is2dot4GHz" |  | ||||||
| 			], |  | ||||||
| 			"ssidAdminState": "enabled", |  | ||||||
| 			"secureMode": "wpa2PSK", |  | ||||||
| 			"vlanId": 1, |  | ||||||
| 			"keyStr": "testing123", |  | ||||||
| 			"broadcastSsid": "enabled", |  | ||||||
| 			"keyRefresh": 0, |  | ||||||
| 			"noLocalSubnets": false, |  | ||||||
| 			"radiusServiceName": null, |  | ||||||
| 			"captivePortalId": null, |  | ||||||
| 			"bandwidthLimitDown": 0, |  | ||||||
| 			"bandwidthLimitUp": 0, |  | ||||||
| 			"clientBandwidthLimitDown": 0, |  | ||||||
| 			"clientBandwidthLimitUp": 0, |  | ||||||
| 			"videoTrafficOnly": false, |  | ||||||
| 			"radioBasedConfigs": { |  | ||||||
| 				"is5GHz": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				}, |  | ||||||
| 				"is2dot4GHz": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				}, |  | ||||||
| 				"is5GHzU": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				}, |  | ||||||
| 				"is5GHzL": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				} |  | ||||||
| 			}, |  | ||||||
| 			"bonjourGatewayProfileId": null, |  | ||||||
| 			"enable80211w": null, |  | ||||||
| 			"wepConfig": null, |  | ||||||
| 			"forwardMode": null, |  | ||||||
| 			"profileType": "ssid" |  | ||||||
| 		}, |  | ||||||
| 		"createdTimestamp": 1602113058718, |  | ||||||
| 		"lastModifiedTimestamp": 1602113059547, |  | ||||||
| 		"childProfileIds": [ |  | ||||||
| 			10 |  | ||||||
| 		] |  | ||||||
| 	}, |  | ||||||
| 	{ |  | ||||||
| 		"model_type": "Profile", |  | ||||||
| 		"id": 11, |  | ||||||
| 		"customerId": 2, |  | ||||||
| 		"profileType": "ssid", |  | ||||||
| 		"name": "TipWlan-cloud-3-radios", | 		"name": "TipWlan-cloud-3-radios", | ||||||
| 		"details": { | 		"details": { | ||||||
| 			"model_type": "SsidConfiguration", | 			"model_type": "SsidConfiguration", | ||||||
| @@ -80,13 +14,15 @@ | |||||||
| 				"is5GHzU" | 				"is5GHzU" | ||||||
| 			], | 			], | ||||||
| 			"ssidAdminState": "enabled", | 			"ssidAdminState": "enabled", | ||||||
| 			"secureMode": "open", | 			"secureMode": "wpa2OnlyPSK", | ||||||
| 			"vlanId": 1, | 			"vlanId": 1, | ||||||
| 			"keyStr": null, | 			"keyStr": "openwifi", | ||||||
| 			"broadcastSsid": "enabled", | 			"broadcastSsid": "enabled", | ||||||
| 			"keyRefresh": 0, | 			"keyRefresh": 0, | ||||||
| 			"noLocalSubnets": false, | 			"noLocalSubnets": false, | ||||||
| 			"radiusServiceName": null, | 			"radiusServiceName": null, | ||||||
|  | 			"radiusAccountingServiceName": null, | ||||||
|  | 			"radiusAcountingServiceInterval": null, | ||||||
| 			"captivePortalId": null, | 			"captivePortalId": null, | ||||||
| 			"bandwidthLimitDown": 0, | 			"bandwidthLimitDown": 0, | ||||||
| 			"bandwidthLimitUp": 0, | 			"bandwidthLimitUp": 0, | ||||||
| @@ -94,7 +30,7 @@ | |||||||
| 			"clientBandwidthLimitUp": 0, | 			"clientBandwidthLimitUp": 0, | ||||||
| 			"videoTrafficOnly": false, | 			"videoTrafficOnly": false, | ||||||
| 			"radioBasedConfigs": { | 			"radioBasedConfigs": { | ||||||
| 				"is5GHz": { | 				"is5GHzL": { | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
| 					"enable80211r": null, | 					"enable80211r": null, | ||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| @@ -106,17 +42,83 @@ | |||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| 					"enable80211v": null | 					"enable80211v": null | ||||||
| 				}, | 				}, | ||||||
| 				"is5GHzU": { | 				"is5GHz": { | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
| 					"enable80211r": null, | 					"enable80211r": null, | ||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| 					"enable80211v": null | 					"enable80211v": null | ||||||
| 				}, | 				}, | ||||||
|  | 				"is5GHzU": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				} | ||||||
|  | 			}, | ||||||
|  | 			"bonjourGatewayProfileId": null, | ||||||
|  | 			"enable80211w": null, | ||||||
|  | 			"wepConfig": null, | ||||||
|  | 			"forwardMode": "BRIDGE", | ||||||
|  | 			"profileType": "ssid" | ||||||
|  | 		}, | ||||||
|  | 		"createdTimestamp": 1606778369598, | ||||||
|  | 		"lastModifiedTimestamp": 1606778369598, | ||||||
|  | 		"childProfileIds": [ | ||||||
|  | 		] | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		"model_type": "Profile", | ||||||
|  | 		"id": 15, | ||||||
|  | 		"customerId": 2, | ||||||
|  | 		"profileType": "ssid", | ||||||
|  | 		"name": "TipWlan-cloud-passpoint-access", | ||||||
|  | 		"details": { | ||||||
|  | 			"model_type": "SsidConfiguration", | ||||||
|  | 			"ssid": "TipWlan-cloud-passpoint-access", | ||||||
|  | 			"appliedRadios": [ | ||||||
|  | 				"is5GHzL", | ||||||
|  | 				"is5GHzU" | ||||||
|  | 			], | ||||||
|  | 			"ssidAdminState": "enabled", | ||||||
|  | 			"secureMode": "wpa2PSK", | ||||||
|  | 			"vlanId": 1, | ||||||
|  | 			"keyStr": "testing123", | ||||||
|  | 			"broadcastSsid": "enabled", | ||||||
|  | 			"keyRefresh": 0, | ||||||
|  | 			"noLocalSubnets": false, | ||||||
|  | 			"radiusServiceName": null, | ||||||
|  | 			"radiusAccountingServiceName": null, | ||||||
|  | 			"radiusAcountingServiceInterval": null, | ||||||
|  | 			"captivePortalId": null, | ||||||
|  | 			"bandwidthLimitDown": 0, | ||||||
|  | 			"bandwidthLimitUp": 0, | ||||||
|  | 			"clientBandwidthLimitDown": 0, | ||||||
|  | 			"clientBandwidthLimitUp": 0, | ||||||
|  | 			"videoTrafficOnly": false, | ||||||
|  | 			"radioBasedConfigs": { | ||||||
| 				"is5GHzL": { | 				"is5GHzL": { | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
| 					"enable80211r": null, | 					"enable80211r": null, | ||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| 					"enable80211v": null | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is2dot4GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHzU": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
| 				} | 				} | ||||||
| 			}, | 			}, | ||||||
| 			"bonjourGatewayProfileId": null, | 			"bonjourGatewayProfileId": null, | ||||||
| @@ -125,10 +127,77 @@ | |||||||
| 			"forwardMode": null, | 			"forwardMode": null, | ||||||
| 			"profileType": "ssid" | 			"profileType": "ssid" | ||||||
| 		}, | 		}, | ||||||
| 		"createdTimestamp": 1602183994766, | 		"createdTimestamp": 1606778369943, | ||||||
| 		"lastModifiedTimestamp": 1602183994766, | 		"lastModifiedTimestamp": 1606778370811, | ||||||
| 		"childProfileIds": [ | 		"childProfileIds": [ | ||||||
| 			10 | 			24 | ||||||
|  | 		] | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		"model_type": "Profile", | ||||||
|  | 		"id": 16, | ||||||
|  | 		"customerId": 2, | ||||||
|  | 		"profileType": "ssid", | ||||||
|  | 		"name": "TipWlan-cloud-passpoint-osu", | ||||||
|  | 		"details": { | ||||||
|  | 			"model_type": "SsidConfiguration", | ||||||
|  | 			"ssid": "TipWlan-cloud-passpoint-osu", | ||||||
|  | 			"appliedRadios": [ | ||||||
|  | 				"is2dot4GHz" | ||||||
|  | 			], | ||||||
|  | 			"ssidAdminState": "enabled", | ||||||
|  | 			"secureMode": "open", | ||||||
|  | 			"vlanId": 1, | ||||||
|  | 			"keyStr": null, | ||||||
|  | 			"broadcastSsid": "enabled", | ||||||
|  | 			"keyRefresh": 0, | ||||||
|  | 			"noLocalSubnets": false, | ||||||
|  | 			"radiusServiceName": null, | ||||||
|  | 			"radiusAccountingServiceName": null, | ||||||
|  | 			"radiusAcountingServiceInterval": null, | ||||||
|  | 			"captivePortalId": null, | ||||||
|  | 			"bandwidthLimitDown": 0, | ||||||
|  | 			"bandwidthLimitUp": 0, | ||||||
|  | 			"clientBandwidthLimitDown": 0, | ||||||
|  | 			"clientBandwidthLimitUp": 0, | ||||||
|  | 			"videoTrafficOnly": false, | ||||||
|  | 			"radioBasedConfigs": { | ||||||
|  | 				"is5GHzL": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is2dot4GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHzU": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				} | ||||||
|  | 			}, | ||||||
|  | 			"bonjourGatewayProfileId": null, | ||||||
|  | 			"enable80211w": null, | ||||||
|  | 			"wepConfig": null, | ||||||
|  | 			"forwardMode": null, | ||||||
|  | 			"profileType": "ssid" | ||||||
|  | 		}, | ||||||
|  | 		"createdTimestamp": 1606778369944, | ||||||
|  | 		"lastModifiedTimestamp": 1606778370352, | ||||||
|  | 		"childProfileIds": [ | ||||||
|  | 			19, | ||||||
|  | 			20 | ||||||
| 		] | 		] | ||||||
| 	} | 	} | ||||||
| ] | ] | ||||||
|   | |||||||
| @@ -1,42 +1,43 @@ | |||||||
| [ | [ | ||||||
|     { | 	{ | ||||||
|         "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|         "id": 7, | 		"id": 18, | ||||||
|         "customerId": 2, | 		"customerId": 2, | ||||||
|         "profileType": "venue", | 		"profileType": "passpoint_venue", | ||||||
|         "name": "TipWlan-Hotspot20-Venue", | 		"name": "TipWlan-Passpoint-Venue", | ||||||
|         "details": { | 		"details": { | ||||||
|             "model_type": "VenueProfile", | 			"model_type": "PasspointVenueProfile", | ||||||
|             "venueNameSet": [ | 			"venueNameSet": [ | ||||||
|                 { | 				{ | ||||||
|                     "model_type": "VenueName", | 					"model_type": "PasspointVenueName", | ||||||
|                     "locale": "fr_CA", | 					"locale": "fr_CA", | ||||||
|                     "dupleIso3Language": "fra", | 					"dupleIso3Language": "fra", | ||||||
|                     "dupleName": "Exemple de lieu", | 					"dupleName": "Exemple de lieu", | ||||||
|                     "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                     "venueUrl": "http://www.example.com/info-fra", | 					"venueUrl": "http://www.example.com/info-fra", | ||||||
|                     "asDuple": "fra:Exemple de lieu" | 					"asDuple": "fra:Exemple de lieu" | ||||||
|                 }, | 				}, | ||||||
|                 { | 				{ | ||||||
|                     "model_type": "VenueName", | 					"model_type": "PasspointVenueName", | ||||||
|                     "locale": "en_CA", | 					"locale": "en_CA", | ||||||
|                     "dupleIso3Language": "eng", | 					"dupleIso3Language": "eng", | ||||||
|                     "dupleName": "Example venue", | 					"dupleName": "Example passpoint_venue", | ||||||
|                     "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                     "venueUrl": "http://www.example.com/info-eng", | 					"venueUrl": "http://www.example.com/info-eng", | ||||||
|                     "asDuple": "eng:Example venue" | 					"asDuple": "eng:Example passpoint_venue" | ||||||
|                 } | 				} | ||||||
|             ], | 			], | ||||||
|             "venueTypeAssignment": { | 			"venueTypeAssignment": { | ||||||
|                 "model_type": "VenueTypeAssignment", | 				"model_type": "PasspointVenueTypeAssignment", | ||||||
|                 "venueDescription": "Research and Development Facility", | 				"venueDescription": "Research and Development Facility", | ||||||
|                 "venueGroupId": 2, | 				"venueGroupId": 2, | ||||||
|                 "venueTypeId": 8 | 				"venueTypeId": 8 | ||||||
|             }, | 			}, | ||||||
|             "profileType": "venue" | 			"profileType": "passpoint_venue" | ||||||
|         }, | 		}, | ||||||
|         "createdTimestamp": 1602113058725, | 		"createdTimestamp": 1606778369950, | ||||||
|         "lastModifiedTimestamp": 1602113058725, | 		"lastModifiedTimestamp": 1606778369950, | ||||||
|         "childProfileIds": [] | 		"childProfileIds": [ | ||||||
|     } | 		] | ||||||
| ] | 	} | ||||||
|  | ] | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|   "model_type": "Equipment", |   "model_type": "Equipment", | ||||||
|   "id": 51, |   "id": 51, | ||||||
|   "customerId": 2, |   "customerId": 2, | ||||||
|   "profileId": 5, |   "profileId": 12, | ||||||
|   "locationId": 8, |   "locationId": 8, | ||||||
|   "equipmentType": "AP", |   "equipmentType": "AP", | ||||||
|   "inventoryId": "Test_Client_21P10C68818122", |   "inventoryId": "Test_Client_21P10C68818122", | ||||||
| @@ -41,23 +41,23 @@ | |||||||
|         "bannedChannels": [], |         "bannedChannels": [], | ||||||
|         "allowedChannels": [], |         "allowedChannels": [], | ||||||
|         "rxCellSizeDb": { |         "rxCellSizeDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "probeResponseThresholdDb": { |         "probeResponseThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "clientDisconnectThresholdDb": { |         "clientDisconnectThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "eirpTxPower": { |         "eirpTxPower": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": false, |         	 "source": "auto", | ||||||
|           "value": 32 |           "value": 32 | ||||||
|         }, |         }, | ||||||
|         "perimeterDetectionEnabled": true, |         "perimeterDetectionEnabled": true, | ||||||
| @@ -75,23 +75,23 @@ | |||||||
|         "bannedChannels": [], |         "bannedChannels": [], | ||||||
|         "allowedChannels": [], |         "allowedChannels": [], | ||||||
|         "rxCellSizeDb": { |         "rxCellSizeDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "probeResponseThresholdDb": { |         "probeResponseThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "clientDisconnectThresholdDb": { |         "clientDisconnectThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "eirpTxPower": { |         "eirpTxPower": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": false, |         	 "source": "auto", | ||||||
|           "value": 32 |           "value": 32 | ||||||
|         }, |         }, | ||||||
|         "perimeterDetectionEnabled": true, |         "perimeterDetectionEnabled": true, | ||||||
| @@ -109,23 +109,23 @@ | |||||||
|         "bannedChannels": [], |         "bannedChannels": [], | ||||||
|         "allowedChannels": [], |         "allowedChannels": [], | ||||||
|         "rxCellSizeDb": { |         "rxCellSizeDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "probeResponseThresholdDb": { |         "probeResponseThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "clientDisconnectThresholdDb": { |         "clientDisconnectThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "eirpTxPower": { |         "eirpTxPower": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": false, |         	 "source": "auto", | ||||||
|           "value": 32 |           "value": 32 | ||||||
|         }, |         }, | ||||||
|         "perimeterDetectionEnabled": true, |         "perimeterDetectionEnabled": true, | ||||||
| @@ -141,16 +141,22 @@ | |||||||
|         "radioType": "is2dot4GHz", |         "radioType": "is2dot4GHz", | ||||||
|         "radioAdminState": "enabled", |         "radioAdminState": "enabled", | ||||||
|         "fragmentationThresholdBytes": 2346, |         "fragmentationThresholdBytes": 2346, | ||||||
|         "radioMode": "modeN", |  | ||||||
|         "wmmState": "enabled", |  | ||||||
|         "uapsdState": "enabled", |         "uapsdState": "enabled", | ||||||
|         "stationIsolation": "disabled", |         "stationIsolation": "disabled", | ||||||
|         "managementRate": "auto", |         "managementRate": { | ||||||
|  |           "model_type": "SourceSelectionManagement", | ||||||
|  |           "source": "auto", | ||||||
|  |           "value": "auto" | ||||||
|  |         }, | ||||||
|         "bestApSettings": { |         "bestApSettings": { | ||||||
|           "model_type": "RadioBestApSettings", |         "model_type": "SourceSelectionSteering", | ||||||
|           "mlComputed": true, |           "source": "auto", | ||||||
|           "dropInSnrPercentage": 20, |           "value": { | ||||||
|           "minLoadFactor": 50 | 	          "model_type": "RadioBestApSettings", | ||||||
|  | 	          "mlComputed": true, | ||||||
|  | 	          "dropInSnrPercentage": 30, | ||||||
|  | 	          "minLoadFactor": 40 | ||||||
|  |           } | ||||||
|         }, |         }, | ||||||
|         "legacyBSSRate": "enabled", |         "legacyBSSRate": "enabled", | ||||||
|         "deauthAttackDetection": null |         "deauthAttackDetection": null | ||||||
| @@ -160,16 +166,22 @@ | |||||||
|         "radioType": "is5GHzU", |         "radioType": "is5GHzU", | ||||||
|         "radioAdminState": "enabled", |         "radioAdminState": "enabled", | ||||||
|         "fragmentationThresholdBytes": 2346, |         "fragmentationThresholdBytes": 2346, | ||||||
|         "radioMode": "modeAC", |  | ||||||
|         "wmmState": "enabled", |  | ||||||
|         "uapsdState": "enabled", |         "uapsdState": "enabled", | ||||||
|         "stationIsolation": "disabled", |         "stationIsolation": "disabled", | ||||||
|         "managementRate": "auto", |         "managementRate": { | ||||||
|  |           "model_type": "SourceSelectionManagement", | ||||||
|  |           "source": "auto", | ||||||
|  |           "value": "auto" | ||||||
|  |         }, | ||||||
|         "bestApSettings": { |         "bestApSettings": { | ||||||
|           "model_type": "RadioBestApSettings", |         "model_type": "SourceSelectionSteering", | ||||||
|           "mlComputed": true, |           "source": "auto", | ||||||
|           "dropInSnrPercentage": 30, |           "value": { | ||||||
|           "minLoadFactor": 40 | 	          "model_type": "RadioBestApSettings", | ||||||
|  | 	          "mlComputed": true, | ||||||
|  | 	          "dropInSnrPercentage": 30, | ||||||
|  | 	          "minLoadFactor": 40 | ||||||
|  |           } | ||||||
|         }, |         }, | ||||||
|         "legacyBSSRate": "enabled", |         "legacyBSSRate": "enabled", | ||||||
|         "deauthAttackDetection": null |         "deauthAttackDetection": null | ||||||
| @@ -179,16 +191,22 @@ | |||||||
|         "radioType": "is5GHzL", |         "radioType": "is5GHzL", | ||||||
|         "radioAdminState": "enabled", |         "radioAdminState": "enabled", | ||||||
|         "fragmentationThresholdBytes": 2346, |         "fragmentationThresholdBytes": 2346, | ||||||
|         "radioMode": "modeAC", |  | ||||||
|         "wmmState": "enabled", |  | ||||||
|         "uapsdState": "enabled", |         "uapsdState": "enabled", | ||||||
|         "stationIsolation": "disabled", |         "stationIsolation": "disabled", | ||||||
|         "managementRate": "auto", |         "managementRate": { | ||||||
|  |           "model_type": "SourceSelectionManagement", | ||||||
|  |           "source": "auto", | ||||||
|  |           "value": "auto" | ||||||
|  |         }, | ||||||
|         "bestApSettings": { |         "bestApSettings": { | ||||||
|           "model_type": "RadioBestApSettings", |         "model_type": "SourceSelectionSteering", | ||||||
|           "mlComputed": true, |           "source": "auto", | ||||||
|           "dropInSnrPercentage": 30, |           "value": { | ||||||
|           "minLoadFactor": 40 | 	          "model_type": "RadioBestApSettings", | ||||||
|  | 	          "mlComputed": true, | ||||||
|  | 	          "dropInSnrPercentage": 30, | ||||||
|  | 	          "minLoadFactor": 40 | ||||||
|  |           } | ||||||
|         }, |         }, | ||||||
|         "legacyBSSRate": "enabled", |         "legacyBSSRate": "enabled", | ||||||
|         "deauthAttackDetection": null |         "deauthAttackDetection": null | ||||||
| @@ -200,4 +218,4 @@ | |||||||
|   "serial": "21P10C68818122", |   "serial": "21P10C68818122", | ||||||
|   "createdTimestamp": 1591653239821, |   "createdTimestamp": 1591653239821, | ||||||
|   "lastModifiedTimestamp": 1591653241398 |   "lastModifiedTimestamp": 1591653241398 | ||||||
| } | } | ||||||
|   | |||||||
| @@ -10,55 +10,48 @@ | |||||||
|     "countryCode" : "ca", |     "countryCode" : "ca", | ||||||
|     "maintenanceWindow" : null, |     "maintenanceWindow" : null, | ||||||
|     "rrmEnabled" : true, |     "rrmEnabled" : true, | ||||||
|     "dailyRebalancingDetails" : { |     "dailyActivityDetails" : { | ||||||
|       "SUNDAY" : { |       "SUNDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "MONDAY" : { |       "MONDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "TUESDAY" : { |       "TUESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "WEDNESDAY" : { |       "WEDNESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "THURSDAY" : { |       "THURSDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "FRIDAY" : { |       "FRIDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "SATURDAY" : { |       "SATURDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -10,55 +10,48 @@ | |||||||
|     "countryCode" : "usa", |     "countryCode" : "usa", | ||||||
|     "maintenanceWindow" : null, |     "maintenanceWindow" : null, | ||||||
|     "rrmEnabled" : true, |     "rrmEnabled" : true, | ||||||
|     "dailyRebalancingDetails" : { |     "dailyActivityDetails" : { | ||||||
|       "SUNDAY" : { |       "SUNDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "MONDAY" : { |       "MONDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "TUESDAY" : { |       "TUESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "WEDNESDAY" : { |       "WEDNESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "THURSDAY" : { |       "THURSDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "FRIDAY" : { |       "FRIDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "SATURDAY" : { |       "SATURDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "model_type": "Profile", |     "model_type": "Profile", | ||||||
|     "id": 17, |     "id": 12, | ||||||
|     "customerId": 2, |     "customerId": 2, | ||||||
|     "profileType": "equipment_ap", |     "profileType": "equipment_ap", | ||||||
|     "name": "ApProfile-3-radios", |     "name": "ApProfile-3-radios", | ||||||
| @@ -20,6 +20,11 @@ | |||||||
|         "syntheticClientEnabled": true, |         "syntheticClientEnabled": true, | ||||||
|         "ledControlEnabled": true, |         "ledControlEnabled": true, | ||||||
|         "equipmentDiscovery": false, |         "equipmentDiscovery": false, | ||||||
|  |         "greTunnelName": null, | ||||||
|  |         "greParentIfName": null, | ||||||
|  |         "greLocalInetAddr": null, | ||||||
|  |         "greRemoteInetAddr": null, | ||||||
|  |         "greRemoteMacAddr": null, | ||||||
|         "radioMap": { |         "radioMap": { | ||||||
|             "is2dot4GHz": { |             "is2dot4GHz": { | ||||||
|                 "model_type": "RadioProfileConfiguration", |                 "model_type": "RadioProfileConfiguration", | ||||||
| @@ -39,12 +44,13 @@ | |||||||
|         }, |         }, | ||||||
|         "profileType": "equipment_ap" |         "profileType": "equipment_ap" | ||||||
|     }, |     }, | ||||||
|     "createdTimestamp": 1602182806348, |     "createdTimestamp": 1606778369934, | ||||||
|     "lastModifiedTimestamp": 1602182806348, |     "lastModifiedTimestamp": 1606778443413, | ||||||
|     "childProfileIds": [ |     "childProfileIds": [ | ||||||
|         2, |         16, | ||||||
|         5, |         5, | ||||||
|  |         10, | ||||||
|         11, |         11, | ||||||
|         13 |         15 | ||||||
|     ] |     ] | ||||||
| } | } | ||||||
| @@ -1,72 +1,71 @@ | |||||||
| [ | [ | ||||||
| { | 	{ | ||||||
|     "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|     "id": 10, | 		"id": 24, | ||||||
|     "customerId": 2, | 		"customerId": 2, | ||||||
|     "profileType": "hotspot_2pt0", | 		"profileType": "passpoint", | ||||||
|     "name": "TipWlan-Hotspot20-Config", | 		"name": "TipWlan-Passpoint-Config", | ||||||
|     "details": { | 		"details": { | ||||||
|         "model_type": "Hotspot2Profile", | 			"model_type": "PasspointProfile", | ||||||
|         "enableInterworkingAndHs20": true, | 			"enableInterworkingAndHs20": true, | ||||||
|         "hessid": null, | 			"hessid": null, | ||||||
|         "accessNetworkType": "free_public_network", | 			"passpointAccessNetworkType": "free_public_network", | ||||||
|         "networkAuthenticationType": "acceptance_of_terms_and_conditions", | 			"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||||
|         "additionalStepsRequiredForAccess": 0, | 			"additionalStepsRequiredForAccess": 0, | ||||||
|         "deauthRequestTimeout": 0, | 			"deauthRequestTimeout": 0, | ||||||
|         "operatingClass": 0, | 			"operatingClass": 0, | ||||||
|         "termsAndConditionsFile": { | 			"termsAndConditionsFile": { | ||||||
|             "model_type": "ManagedFileInfo", | 				"model_type": "ManagedFileInfo", | ||||||
|             "md5checksum": null, | 				"md5checksum": null, | ||||||
|             "lastModifiedTimestamp": null, | 				"lastModifiedTimestamp": null, | ||||||
|             "apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | 				"apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | ||||||
|             "fileCategory": "ExternalPolicyConfiguration", | 				"fileCategory": "ExternalPolicyConfiguration", | ||||||
|             "fileType": "TEXT", | 				"fileType": "TEXT", | ||||||
|             "altSlot": false | 				"altSlot": false | ||||||
|         }, | 			}, | ||||||
|         "whitelistDomain": null, | 			"whitelistDomain": null, | ||||||
|         "emergencyServicesReachable": true, | 			"emergencyServicesReachable": true, | ||||||
|         "unauthenticatedEmergencyServiceAccessible": false, | 			"unauthenticatedEmergencyServiceAccessible": false, | ||||||
|         "internetConnectivity": true, | 			"internetConnectivity": true, | ||||||
|         "connectionCapabilitySet": [ | 			"connectionCapabilitySet": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "ConnectionCapability", | 					"model_type": "PasspointConnectionCapability", | ||||||
|                 "connectionCapabilitiesPortNumber": 8888, | 					"connectionCapabilitiesPortNumber": 8888, | ||||||
|                 "connectionCapabilitiesIpProtocol": "TCP", | 					"connectionCapabilitiesStatus": "open", | ||||||
|                 "connectionCapabilitiesStatus": "open" | 					"connectionCapabilitiesIpProtocol": "TCP" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "ipAddressTypeAvailability": "public_IPv4_address_available", | 			"ipAddressTypeAvailability": "public_IPv4_address_available", | ||||||
|         "qosMapSetConfiguration": null, | 			"qosMapSetConfiguration": null, | ||||||
|         "apGeospatialLocation": null, | 			"apGeospatialLocation": null, | ||||||
|         "apCivicLocation": null, | 			"apCivicLocation": null, | ||||||
|         "apPublicLocationIdUri": null, | 			"apPublicLocationIdUri": null, | ||||||
|         "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | 			"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | ||||||
|         "anqpDomainId": 1234, | 			"anqpDomainId": 1234, | ||||||
|         "disableDownstreamGroupAddressedForwarding": false, | 			"disableDownstreamGroupAddressedForwarding": false, | ||||||
|         "enable2pt4GHz": true, | 			"enable2pt4GHz": true, | ||||||
|         "enable5GHz": true, | 			"enable5GHz": true, | ||||||
|         "associatedAccessSsidNames": [ | 			"associatedAccessSsidProfileIds": [ | ||||||
|             "TipWlan-cloud-hotspot-access" | 				15 | ||||||
|         ], | 			], | ||||||
|         "osuSsidName": "TipWlan-cloud-3-radios", | 			"osuSsidProfileId": 16, | ||||||
|         "operatorProfileName": "TipWlan-Hotspot20-Operator", | 			"passpointOperatorProfileId": 17, | ||||||
|         "venueProfileName": "TipWlan-Hotspot20-Venue", | 			"passpointVenueProfileId": 18, | ||||||
|         "idProviderProfileNames": [ | 			"passpointOsuProviderProfileIds": [ | ||||||
|             "TipWlan-Hotspot20-OSU-Provider-2", | 				19, | ||||||
|             "TipWlan-Hotspot20-OSU-Provider" | 				20 | ||||||
|         ], | 			], | ||||||
|         "profileType": "hotspot_2pt0", | 			"accessNetworkType": "free_public_network", | ||||||
|         "associatedSsids": [ | 			"networkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||||
|             "TipWlan-cloud-hotspot-access" | 			"profileType": "passpoint" | ||||||
|         ] | 		}, | ||||||
|     }, | 		"createdTimestamp": 1606778370807, | ||||||
|     "createdTimestamp": 1602182806040, | 		"lastModifiedTimestamp": 1606778370807, | ||||||
|     "lastModifiedTimestamp": 1602182806040, | 		"childProfileIds": [ | ||||||
|     "childProfileIds": [ | 			17, | ||||||
|         6, | 			18, | ||||||
|         7, | 			19, | ||||||
|         8, | 			20 | ||||||
|         9 | 		] | ||||||
|     ] | 	} | ||||||
| } | ] | ||||||
| ] |  | ||||||
|   | |||||||
| @@ -1,256 +1,270 @@ | |||||||
| [ | [ | ||||||
| { | 	{ | ||||||
|     "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|     "id": 8, | 		"id": 19, | ||||||
|     "customerId": 2, | 		"customerId": 2, | ||||||
|     "profileType": "id_provider", | 		"profileType": "passpoint_osu_id_provider", | ||||||
|     "name": "TipWlan-Hotspot20-OSU-Provider", | 		"name": "TipWlan-Passpoint-OSU-Provider", | ||||||
|     "details": { | 		"details": { | ||||||
|         "model_type": "Hotspot20IdProviderProfile", | 			"model_type": "PasspointOsuProviderProfile", | ||||||
|         "domainName": "rogers.com", | 			"domainName": "rogers.com", | ||||||
|         "mccMncList": [ | 			"mccMncList": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "MccMnc", | 					"model_type": "PasspointMccMnc", | ||||||
|                 "mcc": 302, | 					"mcc": 302, | ||||||
|                 "mnc": 720, | 					"mnc": 720, | ||||||
|                 "iso": "ca", | 					"iso": "ca", | ||||||
|                 "country": "Canada", | 					"country": "Canada", | ||||||
|                 "countryCode": 1, | 					"countryCode": 1, | ||||||
|                 "network": "Rogers AT&T Wireless", | 					"network": "Rogers AT&T Wireless", | ||||||
|                 "mccMncPairing": "302,720" | 					"mccMncPairing": "302,720" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "naiRealmList": [ | 			"naiRealmList": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "NaiRealmInformation", | 					"model_type": "PasspointNaiRealmInformation", | ||||||
|                 "naiRealms": [ | 					"naiRealms": [ | ||||||
|                     "rogers.com" | 						"rogers.com" | ||||||
|                 ], | 					], | ||||||
|                 "encoding": 0, | 					"encoding": 0, | ||||||
|                 "eapMethods": [ | 					"eapMethods": [ | ||||||
|                     "EAP-TTLS with username/password", | 						"EAP-TTLS with username/password", | ||||||
|                     "EAP-TLS with certificate" | 						"EAP-TLS with certificate" | ||||||
|                 ], | 					], | ||||||
|                 "eapMap": { | 					"eapMap": { | ||||||
|                     "EAP-TTLS with username/password": [ | 						"EAP-TTLS with username/password": [ | ||||||
|                         "Credential Type:username/password", | 							"Credential Type:username/password", | ||||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||||
|                     ], | 						], | ||||||
|                     "EAP-TLS with certificate": [ | 						"EAP-TLS with certificate": [ | ||||||
|                         "Credential Type:Certificate" | 							"Credential Type:Certificate" | ||||||
|                     ] | 						] | ||||||
|                 } | 					} | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "osuIconList": [ | 			"osuIconList": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "OsuIcon", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "iconWidth": 32, | 					"iconWidth": 32, | ||||||
|                 "iconHeight": 32, | 					"iconHeight": 32, | ||||||
|                 "languageCode": "eng", | 					"languageCode": "eng", | ||||||
|                 "iconLocale": "en_CA", | 					"iconLocale": "en_CA", | ||||||
|                 "iconName": "icon32eng", | 					"iconName": "icon32eng", | ||||||
|                 "filePath": "/tmp/icon32eng.png", | 					"filePath": "/tmp/icon32eng.png", | ||||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "OsuIcon", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "iconWidth": 32, | 					"iconWidth": 32, | ||||||
|                 "iconHeight": 32, | 					"iconHeight": 32, | ||||||
|                 "languageCode": "fra", | 					"languageCode": "fra", | ||||||
|                 "iconLocale": "fr_CA", | 					"iconLocale": "fr_CA", | ||||||
|                 "iconName": "icon32fra", | 					"iconName": "icon32fra", | ||||||
|                 "filePath": "/tmp/icon32fra.png", | 					"filePath": "/tmp/icon32fra.png", | ||||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "OsuIcon", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "iconWidth": 32, | 					"iconWidth": 32, | ||||||
|                 "iconHeight": 32, | 					"iconHeight": 32, | ||||||
|                 "languageCode": "eng", | 					"languageCode": "eng", | ||||||
|                 "iconLocale": "en_US", | 					"iconLocale": "en_US", | ||||||
|                 "iconName": "icon32usa", | 					"iconName": "icon32usa", | ||||||
|                 "filePath": "/tmp/icon32usa.png", | 					"filePath": "/tmp/icon32usa.png", | ||||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "osuServerUri": "https://example.com/osu/rogers/", | 			"osuServerUri": "https://example.com/osu/rogers", | ||||||
|         "osuFriendlyName": [ | 			"osuFriendlyName": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "en_CA", | 					"locale": "en_CA", | ||||||
|                 "dupleIso3Language": "eng", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleName": "Example provider rogers", | 					"dupleName": "Example provider rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "eng:Example provider rogers" | 					"asDuple": "eng:Example provider rogers" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "fr_CA", | 					"locale": "fr_CA", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleIso3Language": "fra", | ||||||
|                 "dupleName": "Exemple de fournisseur rogers", | 					"dupleName": "Exemple de fournisseur rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "fra:Exemple de fournisseur rogers" | 					"asDuple": "fra:Exemple de fournisseur rogers" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "osuNaiStandalone": "anonymous@rogers.com", | 			"osuNaiStandalone": "anonymous@rogers.com", | ||||||
|         "osuNaiShared": "anonymous@rogers.com", | 			"osuNaiShared": "anonymous@rogers.com", | ||||||
|         "osuMethodList": [ | 			"osuMethodList": [ | ||||||
|             1, | 				1, | ||||||
|             0 | 				0 | ||||||
|         ], | 			], | ||||||
|         "osuServiceDescription": [ | 			"osuServiceDescription": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "en_CA", | 					"locale": "en_CA", | ||||||
|                 "dupleIso3Language": "eng", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleName": "Example services rogers", | 					"dupleName": "Example services rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "eng:Example services rogers" | 					"asDuple": "eng:Example services rogers" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "fr_CA", | 					"locale": "fr_CA", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleIso3Language": "fra", | ||||||
|                 "dupleName": "Exemples de services rogers", | 					"dupleName": "Exemples de services rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "fra:Exemples de services rogers" | 					"asDuple": "fra:Exemples de services rogers" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "profileType": "id_provider" | 			"roamingOi": [ | ||||||
|     }, | 				1, | ||||||
|     "createdTimestamp": 1602182805654, | 				2, | ||||||
|     "lastModifiedTimestamp": 1602182805654, | 				3, | ||||||
|     "childProfileIds": [] | 				4 | ||||||
| }, | 			], | ||||||
| { | 			"profileType": "passpoint_osu_id_provider" | ||||||
|     "model_type": "Profile", | 		}, | ||||||
|     "id": 9, | 		"createdTimestamp": 1606778370345, | ||||||
|     "customerId": 2, | 		"lastModifiedTimestamp": 1606778370345, | ||||||
|     "profileType": "id_provider", | 		"childProfileIds": [ | ||||||
|     "name": "TipWlan-Hotspot20-OSU-Provider-2", | 		] | ||||||
|     "details": { | 	}, | ||||||
|         "model_type": "Hotspot20IdProviderProfile", | 	{ | ||||||
|         "domainName": "telus.com", | 		"model_type": "Profile", | ||||||
|         "mccMncList": [ | 		"id": 20, | ||||||
|             { | 		"customerId": 2, | ||||||
|                 "model_type": "MccMnc", | 		"profileType": "passpoint_osu_id_provider", | ||||||
|                 "mcc": 302, | 		"name": "TipWlan-Passpoint-OSU-Provider-2", | ||||||
|                 "mnc": 220, | 		"details": { | ||||||
|                 "iso": "ca", | 			"model_type": "PasspointOsuProviderProfile", | ||||||
|                 "country": "Canada", | 			"domainName": "telus.com", | ||||||
|                 "countryCode": 1, | 			"mccMncList": [ | ||||||
|                 "network": "Telus Mobility", | 				{ | ||||||
|                 "mccMncPairing": "302,220" | 					"model_type": "PasspointMccMnc", | ||||||
|             } | 					"mcc": 302, | ||||||
|         ], | 					"mnc": 220, | ||||||
|         "naiRealmList": [ | 					"iso": "ca", | ||||||
|             { | 					"country": "Canada", | ||||||
|                 "model_type": "NaiRealmInformation", | 					"countryCode": 1, | ||||||
|                 "naiRealms": [ | 					"network": "Telus Mobility", | ||||||
|                     "telus.com" | 					"mccMncPairing": "302,220" | ||||||
|                 ], | 				} | ||||||
|                 "encoding": 0, | 			], | ||||||
|                 "eapMethods": [ | 			"naiRealmList": [ | ||||||
|                     "EAP-TTLS with username/password", | 				{ | ||||||
|                     "EAP-TLS with certificate" | 					"model_type": "PasspointNaiRealmInformation", | ||||||
|                 ], | 					"naiRealms": [ | ||||||
|                 "eapMap": { | 						"telus.com" | ||||||
|                     "EAP-TTLS with username/password": [ | 					], | ||||||
|                         "Credential Type:username/password", | 					"encoding": 0, | ||||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | 					"eapMethods": [ | ||||||
|                     ], | 						"EAP-TTLS with username/password", | ||||||
|                     "EAP-TLS with certificate": [ | 						"EAP-TLS with certificate" | ||||||
|                         "Credential Type:Certificate" | 					], | ||||||
|                     ] | 					"eapMap": { | ||||||
|                 } | 						"EAP-TTLS with username/password": [ | ||||||
|             } | 							"Credential Type:username/password", | ||||||
|         ], | 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||||
|         "osuIconList": [ | 						], | ||||||
|             { | 						"EAP-TLS with certificate": [ | ||||||
|                 "model_type": "OsuIcon", | 							"Credential Type:Certificate" | ||||||
|                 "iconWidth": 32, | 						] | ||||||
|                 "iconHeight": 32, | 					} | ||||||
|                 "languageCode": "eng", | 				} | ||||||
|                 "iconLocale": "en_CA", | 			], | ||||||
|                 "iconName": "icon32eng", | 			"osuIconList": [ | ||||||
|                 "filePath": "/tmp/icon32eng.png", | 				{ | ||||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | 					"iconWidth": 32, | ||||||
|             }, | 					"iconHeight": 32, | ||||||
|             { | 					"languageCode": "eng", | ||||||
|                 "model_type": "OsuIcon", | 					"iconLocale": "en_CA", | ||||||
|                 "iconWidth": 32, | 					"iconName": "icon32eng", | ||||||
|                 "iconHeight": 32, | 					"filePath": "/tmp/icon32eng.png", | ||||||
|                 "languageCode": "fra", | 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||||
|                 "iconLocale": "fr_CA", | 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||||
|                 "iconName": "icon32fra", | 				}, | ||||||
|                 "filePath": "/tmp/icon32fra.png", | 				{ | ||||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | 					"iconWidth": 32, | ||||||
|             }, | 					"iconHeight": 32, | ||||||
|             { | 					"languageCode": "fra", | ||||||
|                 "model_type": "OsuIcon", | 					"iconLocale": "fr_CA", | ||||||
|                 "iconWidth": 32, | 					"iconName": "icon32fra", | ||||||
|                 "iconHeight": 32, | 					"filePath": "/tmp/icon32fra.png", | ||||||
|                 "languageCode": "eng", | 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||||
|                 "iconLocale": "en_US", | 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||||
|                 "iconName": "icon32usa", | 				}, | ||||||
|                 "filePath": "/tmp/icon32usa.png", | 				{ | ||||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | 					"iconWidth": 32, | ||||||
|             } | 					"iconHeight": 32, | ||||||
|         ], | 					"languageCode": "eng", | ||||||
|         "osuServerUri": "https://example.com/osu/telus/", | 					"iconLocale": "en_US", | ||||||
|         "osuFriendlyName": [ | 					"iconName": "icon32usa", | ||||||
|             { | 					"filePath": "/tmp/icon32usa.png", | ||||||
|                 "model_type": "Hotspot20Duple", | 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||||
|                 "locale": "en_CA", | 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||||
|                 "dupleIso3Language": "eng", | 				} | ||||||
|                 "dupleName": "Example provider telus", | 			], | ||||||
|                 "defaultDupleSeparator": ":", | 			"osuServerUri": "https://example.com/osu/telus", | ||||||
|                 "asDuple": "eng:Example provider telus" | 			"osuFriendlyName": [ | ||||||
|             }, | 				{ | ||||||
|             { | 					"model_type": "PasspointDuple", | ||||||
|                 "model_type": "Hotspot20Duple", | 					"locale": "en_CA", | ||||||
|                 "locale": "fr_CA", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleName": "Example provider telus", | ||||||
|                 "dupleName": "Exemple de fournisseur telus", | 					"defaultDupleSeparator": ":", | ||||||
|                 "defaultDupleSeparator": ":", | 					"asDuple": "eng:Example provider telus" | ||||||
|                 "asDuple": "fra:Exemple de fournisseur telus" | 				}, | ||||||
|             } | 				{ | ||||||
|         ], | 					"model_type": "PasspointDuple", | ||||||
|         "osuNaiStandalone": "anonymous@telus.com", | 					"locale": "fr_CA", | ||||||
|         "osuNaiShared": "anonymous@telus.com", | 					"dupleIso3Language": "fra", | ||||||
|         "osuMethodList": [ | 					"dupleName": "Exemple de fournisseur telus", | ||||||
|             1, | 					"defaultDupleSeparator": ":", | ||||||
|             0 | 					"asDuple": "fra:Exemple de fournisseur telus" | ||||||
|         ], | 				} | ||||||
|         "osuServiceDescription": [ | 			], | ||||||
|             { | 			"osuNaiStandalone": "anonymous@telus.com", | ||||||
|                 "model_type": "Hotspot20Duple", | 			"osuNaiShared": "anonymous@telus.com", | ||||||
|                 "locale": "en_CA", | 			"osuMethodList": [ | ||||||
|                 "dupleIso3Language": "eng", | 				1, | ||||||
|                 "dupleName": "Example services telus", | 				0 | ||||||
|                 "defaultDupleSeparator": ":", | 			], | ||||||
|                 "asDuple": "eng:Example services telus" | 			"osuServiceDescription": [ | ||||||
|             }, | 				{ | ||||||
|             { | 					"model_type": "PasspointDuple", | ||||||
|                 "model_type": "Hotspot20Duple", | 					"locale": "en_CA", | ||||||
|                 "locale": "fr_CA", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleName": "Example services telus", | ||||||
|                 "dupleName": "Exemples de services telus", | 					"defaultDupleSeparator": ":", | ||||||
|                 "defaultDupleSeparator": ":", | 					"asDuple": "eng:Example services telus" | ||||||
|                 "asDuple": "fra:Exemples de services telus" | 				}, | ||||||
|             } | 				{ | ||||||
|         ], | 					"model_type": "PasspointDuple", | ||||||
|         "profileType": "id_provider" | 					"locale": "fr_CA", | ||||||
|     }, | 					"dupleIso3Language": "fra", | ||||||
|     "createdTimestamp": 1602182805660, | 					"dupleName": "Exemples de services telus", | ||||||
|     "lastModifiedTimestamp": 1602182805660, | 					"defaultDupleSeparator": ":", | ||||||
|     "childProfileIds": [] | 					"asDuple": "fra:Exemples de services telus" | ||||||
| } | 				} | ||||||
|     ] | 			], | ||||||
|  | 			"roamingOi": [ | ||||||
|  | 				1, | ||||||
|  | 				2, | ||||||
|  | 				3, | ||||||
|  | 				4 | ||||||
|  | 			], | ||||||
|  | 			"profileType": "passpoint_osu_id_provider" | ||||||
|  | 		}, | ||||||
|  | 		"createdTimestamp": 1606778370351, | ||||||
|  | 		"lastModifiedTimestamp": 1606778370351, | ||||||
|  | 		"childProfileIds": [ | ||||||
|  | 		] | ||||||
|  | 	} | ||||||
|  | ] | ||||||
|   | |||||||
| @@ -1,298 +1,299 @@ | |||||||
| [ | [ | ||||||
|  { | 	{ | ||||||
|         "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|         "id": 2, | 		"id": 10, | ||||||
|         "customerId": 2, | 		"customerId": 2, | ||||||
|         "profileType": "metrics", | 		"profileType": "service_metrics_collection_config", | ||||||
|         "name": "Metrics-Profile-3-radios", | 		"name": "Metrics-Profile-3-Radios", | ||||||
|         "details": { | 		"details": { | ||||||
|             "model_type": "ServiceMetricsCollectionConfigProfile", | 			"model_type": "ServiceMetricsCollectionConfigProfile", | ||||||
|             "radioTypes": [ | 			"radioTypes": [ | ||||||
|                 "is5GHzU", | 				"is5GHzL", | ||||||
|                 "is5GHzL", | 				"is2dot4GHz", | ||||||
|                 "is2dot4GHz" | 				"is5GHzU" | ||||||
|             ], | 			], | ||||||
|             "serviceMetricDataTypes": [ | 			"serviceMetricDataTypes": [ | ||||||
|                 "ApNode", | 				"ApNode", | ||||||
|                 "ApSsid", | 				"ApSsid", | ||||||
|                 "Client", | 				"Client", | ||||||
|                 "Channel", | 				"Channel", | ||||||
|                 "Neighbour" | 				"Neighbour" | ||||||
|             ], | 			], | ||||||
|             "metricConfigParameterMap": { | 			"metricConfigParameterMap": { | ||||||
|                 "ApNode": [ | 				"ApNode": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "ApSsid": [ | 				"ApSsid": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is2dot4GHz", | 						"radioType": "is5GHzU", | ||||||
|                         "serviceMetricDataType": "ApSsid" | 						"serviceMetricDataType": "ApSsid" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzL", | 						"radioType": "is5GHzL", | ||||||
|                         "serviceMetricDataType": "ApSsid" | 						"serviceMetricDataType": "ApSsid" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzU", | 						"radioType": "is2dot4GHz", | ||||||
|                         "serviceMetricDataType": "ApSsid" | 						"serviceMetricDataType": "ApSsid" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "Client": [ | 				"Client": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is2dot4GHz", | 						"radioType": "is5GHzU", | ||||||
|                         "serviceMetricDataType": "Client" | 						"serviceMetricDataType": "Client" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzL", | 						"radioType": "is5GHzL", | ||||||
|                         "serviceMetricDataType": "Client" | 						"serviceMetricDataType": "Client" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzU", | 						"radioType": "is2dot4GHz", | ||||||
|                         "serviceMetricDataType": "Client" | 						"serviceMetricDataType": "Client" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "Channel": [ | 				"Channel": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "Neighbour": [ | 				"Neighbour": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     } | 					} | ||||||
|                 ] | 				] | ||||||
|             }, | 			}, | ||||||
|             "profileType": "metrics" | 			"profileType": "service_metrics_collection_config" | ||||||
|         }, | 		}, | ||||||
|         "createdTimestamp": 1602113058699, | 		"createdTimestamp": 1606778369931, | ||||||
|         "lastModifiedTimestamp": 1602113058699, | 		"lastModifiedTimestamp": 1606778369931, | ||||||
|         "childProfileIds": [] | 		"childProfileIds": [ | ||||||
|     } | 		] | ||||||
| ] | 	} | ||||||
|  | ] | ||||||
|   | |||||||
| @@ -1,37 +1,37 @@ | |||||||
| [ | [ | ||||||
| { | 	{ | ||||||
|         "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|         "id": 6, | 		"id": 17, | ||||||
|         "customerId": 2, | 		"customerId": 2, | ||||||
|         "profileType": "operator", | 		"profileType": "passpoint_operator", | ||||||
|         "name": "TipWlan-Hotspot20-Operator", | 		"name": "TipWlan-Passpoint-Operator", | ||||||
|         "details": { | 		"details": { | ||||||
|             "model_type": "OperatorProfile", | 			"model_type": "PasspointOperatorProfile", | ||||||
|             "domainName": "telecominfraproject.atlassian.net", | 			"serverOnlyAuthenticatedL2EncryptionNetwork": false, | ||||||
|             "serverOnlyAuthenticatedL2EncryptionNetwork": false, | 			"x509CertificateLocation": "/etc/ca.pem", | ||||||
|             "x509CertificateLocation": "/etc/ca.pem", | 			"operatorFriendlyName": [ | ||||||
|             "operatorFriendlyName": [ | 				{ | ||||||
|                 { | 					"model_type": "PasspointDuple", | ||||||
|                     "model_type": "Hotspot20Duple", | 					"locale": "en_CA", | ||||||
|                     "locale": "en_CA", | 					"dupleIso3Language": "eng", | ||||||
|                     "dupleIso3Language": "eng", | 					"dupleName": "Default friendly passpoint_operator name", | ||||||
|                     "dupleName": "Default friendly operator name", | 					"defaultDupleSeparator": ":", | ||||||
|                     "defaultDupleSeparator": ":", | 					"asDuple": "eng:Default friendly passpoint_operator name" | ||||||
|                     "asDuple": "eng:Default friendly operator name" | 				}, | ||||||
|                 }, | 				{ | ||||||
|                 { | 					"model_type": "PasspointDuple", | ||||||
|                     "model_type": "Hotspot20Duple", | 					"locale": "fr_CA", | ||||||
|                     "locale": "fr_CA", | 					"dupleIso3Language": "fra", | ||||||
|                     "dupleIso3Language": "fra", | 					"dupleName": "Nom de l'opérateur convivial par défaut", | ||||||
|                     "dupleName": "Nom de l'opérateur convivial par défaut", | 					"defaultDupleSeparator": ":", | ||||||
|                     "defaultDupleSeparator": ":", | 					"asDuple": "fra:Nom de l'opérateur convivial par défaut" | ||||||
|                     "asDuple": "fra:Nom de l'opérateur convivial par défaut" | 				} | ||||||
|                 } | 			], | ||||||
|             ], | 			"profileType": "passpoint_operator" | ||||||
|             "profileType": "operator" | 		}, | ||||||
|         }, | 		"createdTimestamp": 1606778369945, | ||||||
|         "createdTimestamp": 1602113058719, | 		"lastModifiedTimestamp": 1606778369945, | ||||||
|         "lastModifiedTimestamp": 1602113058719, | 		"childProfileIds": [ | ||||||
|         "childProfileIds": [] | 		] | ||||||
|     } | 	} | ||||||
| ] | ] | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "model_type": "Profile", |     "model_type": "Profile", | ||||||
|     "id": 13, |     "id": 11, | ||||||
|     "customerId": 2, |     "customerId": 2, | ||||||
|     "profileType": "rf", |     "profileType": "rf", | ||||||
|     "name": "TipWlan-rf", |     "name": "TipWlan-rf", | ||||||
| @@ -9,6 +9,8 @@ | |||||||
|         "rfConfigMap": { |         "rfConfigMap": { | ||||||
|             "is5GHz": { |             "is5GHz": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is5GHz", | ||||||
|  |                 "radioMode": "modeAC", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -16,7 +18,6 @@ | |||||||
|                 "channelBandwidth": "is80MHz", |                 "channelBandwidth": "is80MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -24,33 +25,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -60,16 +40,24 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
|                     "dropInSnrPercentage": 30, |                     "dropInSnrPercentage": 30, | ||||||
|                     "minLoadFactor": 40 |                     "minLoadFactor": 40 | ||||||
|                 }, |                 } | ||||||
|                 "minAutoCellSize": -65 |  | ||||||
|             }, |             }, | ||||||
|             "is2dot4GHz": { |             "is2dot4GHz": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is2dot4GHz", | ||||||
|  |                 "radioMode": "modeN", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -77,7 +65,6 @@ | |||||||
|                 "channelBandwidth": "is20MHz", |                 "channelBandwidth": "is20MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -85,33 +72,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -121,16 +87,24 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
|                     "dropInSnrPercentage": 20, |                     "dropInSnrPercentage": 20, | ||||||
|                     "minLoadFactor": 50 |                     "minLoadFactor": 50 | ||||||
|                 }, |                 } | ||||||
|                 "minAutoCellSize": -65 |  | ||||||
|             }, |             }, | ||||||
|             "is5GHzU": { |             "is5GHzU": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is5GHzU", | ||||||
|  |                 "radioMode": "modeAC", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -138,7 +112,6 @@ | |||||||
|                 "channelBandwidth": "is80MHz", |                 "channelBandwidth": "is80MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -146,33 +119,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -182,16 +134,24 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
|                     "dropInSnrPercentage": 30, |                     "dropInSnrPercentage": 30, | ||||||
|                     "minLoadFactor": 40 |                     "minLoadFactor": 40 | ||||||
|                 }, |                 } | ||||||
|                 "minAutoCellSize": -65 |  | ||||||
|             }, |             }, | ||||||
|             "is5GHzL": { |             "is5GHzL": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is5GHzL", | ||||||
|  |                 "radioMode": "modeAC", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -199,7 +159,6 @@ | |||||||
|                 "channelBandwidth": "is80MHz", |                 "channelBandwidth": "is80MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -207,33 +166,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -243,18 +181,24 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
|                     "dropInSnrPercentage": 30, |                     "dropInSnrPercentage": 30, | ||||||
|                     "minLoadFactor": 40 |                     "minLoadFactor": 40 | ||||||
|                 }, |                 } | ||||||
|                 "minAutoCellSize": -65 |  | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "profileType": "rf" |         "profileType": "rf" | ||||||
|     }, |     }, | ||||||
|     "createdTimestamp": 1602182806063, |     "createdTimestamp": 1606778369933, | ||||||
|     "lastModifiedTimestamp": 1602182806063, |     "lastModifiedTimestamp": 1606778369933, | ||||||
|     "childProfileIds": [] |     "childProfileIds": [] | ||||||
| } | } | ||||||
| @@ -4,72 +4,6 @@ | |||||||
| 		"id": 5, | 		"id": 5, | ||||||
| 		"customerId": 2, | 		"customerId": 2, | ||||||
| 		"profileType": "ssid", | 		"profileType": "ssid", | ||||||
| 		"name": "TipWlan-cloud-hotspot-access", |  | ||||||
| 		"details": { |  | ||||||
| 			"model_type": "SsidConfiguration", |  | ||||||
| 			"ssid": "TipWlan-cloud-hotspot-access", |  | ||||||
| 			"appliedRadios": [ |  | ||||||
| 				"is5GHzU", |  | ||||||
| 				"is5GHzL", |  | ||||||
| 				"is2dot4GHz" |  | ||||||
| 			], |  | ||||||
| 			"ssidAdminState": "enabled", |  | ||||||
| 			"secureMode": "wpa2PSK", |  | ||||||
| 			"vlanId": 1, |  | ||||||
| 			"keyStr": "testing123", |  | ||||||
| 			"broadcastSsid": "enabled", |  | ||||||
| 			"keyRefresh": 0, |  | ||||||
| 			"noLocalSubnets": false, |  | ||||||
| 			"radiusServiceName": null, |  | ||||||
| 			"captivePortalId": null, |  | ||||||
| 			"bandwidthLimitDown": 0, |  | ||||||
| 			"bandwidthLimitUp": 0, |  | ||||||
| 			"clientBandwidthLimitDown": 0, |  | ||||||
| 			"clientBandwidthLimitUp": 0, |  | ||||||
| 			"videoTrafficOnly": false, |  | ||||||
| 			"radioBasedConfigs": { |  | ||||||
| 				"is5GHz": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				}, |  | ||||||
| 				"is2dot4GHz": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				}, |  | ||||||
| 				"is5GHzU": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				}, |  | ||||||
| 				"is5GHzL": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				} |  | ||||||
| 			}, |  | ||||||
| 			"bonjourGatewayProfileId": null, |  | ||||||
| 			"enable80211w": null, |  | ||||||
| 			"wepConfig": null, |  | ||||||
| 			"forwardMode": null, |  | ||||||
| 			"profileType": "ssid" |  | ||||||
| 		}, |  | ||||||
| 		"createdTimestamp": 1602113058718, |  | ||||||
| 		"lastModifiedTimestamp": 1602113059547, |  | ||||||
| 		"childProfileIds": [ |  | ||||||
| 			10 |  | ||||||
| 		] |  | ||||||
| 	}, |  | ||||||
| 	{ |  | ||||||
| 		"model_type": "Profile", |  | ||||||
| 		"id": 11, |  | ||||||
| 		"customerId": 2, |  | ||||||
| 		"profileType": "ssid", |  | ||||||
| 		"name": "TipWlan-cloud-3-radios", | 		"name": "TipWlan-cloud-3-radios", | ||||||
| 		"details": { | 		"details": { | ||||||
| 			"model_type": "SsidConfiguration", | 			"model_type": "SsidConfiguration", | ||||||
| @@ -80,13 +14,15 @@ | |||||||
| 				"is5GHzU" | 				"is5GHzU" | ||||||
| 			], | 			], | ||||||
| 			"ssidAdminState": "enabled", | 			"ssidAdminState": "enabled", | ||||||
| 			"secureMode": "open", | 			"secureMode": "wpa2OnlyPSK", | ||||||
| 			"vlanId": 1, | 			"vlanId": 1, | ||||||
| 			"keyStr": null, | 			"keyStr": "openwifi", | ||||||
| 			"broadcastSsid": "enabled", | 			"broadcastSsid": "enabled", | ||||||
| 			"keyRefresh": 0, | 			"keyRefresh": 0, | ||||||
| 			"noLocalSubnets": false, | 			"noLocalSubnets": false, | ||||||
| 			"radiusServiceName": null, | 			"radiusServiceName": null, | ||||||
|  | 			"radiusAccountingServiceName": null, | ||||||
|  | 			"radiusAcountingServiceInterval": null, | ||||||
| 			"captivePortalId": null, | 			"captivePortalId": null, | ||||||
| 			"bandwidthLimitDown": 0, | 			"bandwidthLimitDown": 0, | ||||||
| 			"bandwidthLimitUp": 0, | 			"bandwidthLimitUp": 0, | ||||||
| @@ -94,7 +30,7 @@ | |||||||
| 			"clientBandwidthLimitUp": 0, | 			"clientBandwidthLimitUp": 0, | ||||||
| 			"videoTrafficOnly": false, | 			"videoTrafficOnly": false, | ||||||
| 			"radioBasedConfigs": { | 			"radioBasedConfigs": { | ||||||
| 				"is5GHz": { | 				"is5GHzL": { | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
| 					"enable80211r": null, | 					"enable80211r": null, | ||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| @@ -106,17 +42,83 @@ | |||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| 					"enable80211v": null | 					"enable80211v": null | ||||||
| 				}, | 				}, | ||||||
| 				"is5GHzU": { | 				"is5GHz": { | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
| 					"enable80211r": null, | 					"enable80211r": null, | ||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| 					"enable80211v": null | 					"enable80211v": null | ||||||
| 				}, | 				}, | ||||||
|  | 				"is5GHzU": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				} | ||||||
|  | 			}, | ||||||
|  | 			"bonjourGatewayProfileId": null, | ||||||
|  | 			"enable80211w": null, | ||||||
|  | 			"wepConfig": null, | ||||||
|  | 			"forwardMode": "BRIDGE", | ||||||
|  | 			"profileType": "ssid" | ||||||
|  | 		}, | ||||||
|  | 		"createdTimestamp": 1606778369598, | ||||||
|  | 		"lastModifiedTimestamp": 1606778369598, | ||||||
|  | 		"childProfileIds": [ | ||||||
|  | 		] | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		"model_type": "Profile", | ||||||
|  | 		"id": 15, | ||||||
|  | 		"customerId": 2, | ||||||
|  | 		"profileType": "ssid", | ||||||
|  | 		"name": "TipWlan-cloud-passpoint-access", | ||||||
|  | 		"details": { | ||||||
|  | 			"model_type": "SsidConfiguration", | ||||||
|  | 			"ssid": "TipWlan-cloud-passpoint-access", | ||||||
|  | 			"appliedRadios": [ | ||||||
|  | 				"is5GHzL", | ||||||
|  | 				"is5GHzU" | ||||||
|  | 			], | ||||||
|  | 			"ssidAdminState": "enabled", | ||||||
|  | 			"secureMode": "wpa2PSK", | ||||||
|  | 			"vlanId": 1, | ||||||
|  | 			"keyStr": "testing123", | ||||||
|  | 			"broadcastSsid": "enabled", | ||||||
|  | 			"keyRefresh": 0, | ||||||
|  | 			"noLocalSubnets": false, | ||||||
|  | 			"radiusServiceName": null, | ||||||
|  | 			"radiusAccountingServiceName": null, | ||||||
|  | 			"radiusAcountingServiceInterval": null, | ||||||
|  | 			"captivePortalId": null, | ||||||
|  | 			"bandwidthLimitDown": 0, | ||||||
|  | 			"bandwidthLimitUp": 0, | ||||||
|  | 			"clientBandwidthLimitDown": 0, | ||||||
|  | 			"clientBandwidthLimitUp": 0, | ||||||
|  | 			"videoTrafficOnly": false, | ||||||
|  | 			"radioBasedConfigs": { | ||||||
| 				"is5GHzL": { | 				"is5GHzL": { | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
| 					"enable80211r": null, | 					"enable80211r": null, | ||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| 					"enable80211v": null | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is2dot4GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHzU": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
| 				} | 				} | ||||||
| 			}, | 			}, | ||||||
| 			"bonjourGatewayProfileId": null, | 			"bonjourGatewayProfileId": null, | ||||||
| @@ -125,10 +127,77 @@ | |||||||
| 			"forwardMode": null, | 			"forwardMode": null, | ||||||
| 			"profileType": "ssid" | 			"profileType": "ssid" | ||||||
| 		}, | 		}, | ||||||
| 		"createdTimestamp": 1602183994766, | 		"createdTimestamp": 1606778369943, | ||||||
| 		"lastModifiedTimestamp": 1602183994766, | 		"lastModifiedTimestamp": 1606778370811, | ||||||
| 		"childProfileIds": [ | 		"childProfileIds": [ | ||||||
| 			10 | 			24 | ||||||
|  | 		] | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		"model_type": "Profile", | ||||||
|  | 		"id": 16, | ||||||
|  | 		"customerId": 2, | ||||||
|  | 		"profileType": "ssid", | ||||||
|  | 		"name": "TipWlan-cloud-passpoint-osu", | ||||||
|  | 		"details": { | ||||||
|  | 			"model_type": "SsidConfiguration", | ||||||
|  | 			"ssid": "TipWlan-cloud-passpoint-osu", | ||||||
|  | 			"appliedRadios": [ | ||||||
|  | 				"is2dot4GHz" | ||||||
|  | 			], | ||||||
|  | 			"ssidAdminState": "enabled", | ||||||
|  | 			"secureMode": "open", | ||||||
|  | 			"vlanId": 1, | ||||||
|  | 			"keyStr": null, | ||||||
|  | 			"broadcastSsid": "enabled", | ||||||
|  | 			"keyRefresh": 0, | ||||||
|  | 			"noLocalSubnets": false, | ||||||
|  | 			"radiusServiceName": null, | ||||||
|  | 			"radiusAccountingServiceName": null, | ||||||
|  | 			"radiusAcountingServiceInterval": null, | ||||||
|  | 			"captivePortalId": null, | ||||||
|  | 			"bandwidthLimitDown": 0, | ||||||
|  | 			"bandwidthLimitUp": 0, | ||||||
|  | 			"clientBandwidthLimitDown": 0, | ||||||
|  | 			"clientBandwidthLimitUp": 0, | ||||||
|  | 			"videoTrafficOnly": false, | ||||||
|  | 			"radioBasedConfigs": { | ||||||
|  | 				"is5GHzL": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is2dot4GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHzU": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				} | ||||||
|  | 			}, | ||||||
|  | 			"bonjourGatewayProfileId": null, | ||||||
|  | 			"enable80211w": null, | ||||||
|  | 			"wepConfig": null, | ||||||
|  | 			"forwardMode": null, | ||||||
|  | 			"profileType": "ssid" | ||||||
|  | 		}, | ||||||
|  | 		"createdTimestamp": 1606778369944, | ||||||
|  | 		"lastModifiedTimestamp": 1606778370352, | ||||||
|  | 		"childProfileIds": [ | ||||||
|  | 			19, | ||||||
|  | 			20 | ||||||
| 		] | 		] | ||||||
| 	} | 	} | ||||||
| ] | ] | ||||||
|   | |||||||
| @@ -1,42 +1,43 @@ | |||||||
| [ | [ | ||||||
|     { | 	{ | ||||||
|         "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|         "id": 7, | 		"id": 18, | ||||||
|         "customerId": 2, | 		"customerId": 2, | ||||||
|         "profileType": "venue", | 		"profileType": "passpoint_venue", | ||||||
|         "name": "TipWlan-Hotspot20-Venue", | 		"name": "TipWlan-Passpoint-Venue", | ||||||
|         "details": { | 		"details": { | ||||||
|             "model_type": "VenueProfile", | 			"model_type": "PasspointVenueProfile", | ||||||
|             "venueNameSet": [ | 			"venueNameSet": [ | ||||||
|                 { | 				{ | ||||||
|                     "model_type": "VenueName", | 					"model_type": "PasspointVenueName", | ||||||
|                     "locale": "fr_CA", | 					"locale": "fr_CA", | ||||||
|                     "dupleIso3Language": "fra", | 					"dupleIso3Language": "fra", | ||||||
|                     "dupleName": "Exemple de lieu", | 					"dupleName": "Exemple de lieu", | ||||||
|                     "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                     "venueUrl": "http://www.example.com/info-fra", | 					"venueUrl": "http://www.example.com/info-fra", | ||||||
|                     "asDuple": "fra:Exemple de lieu" | 					"asDuple": "fra:Exemple de lieu" | ||||||
|                 }, | 				}, | ||||||
|                 { | 				{ | ||||||
|                     "model_type": "VenueName", | 					"model_type": "PasspointVenueName", | ||||||
|                     "locale": "en_CA", | 					"locale": "en_CA", | ||||||
|                     "dupleIso3Language": "eng", | 					"dupleIso3Language": "eng", | ||||||
|                     "dupleName": "Example venue", | 					"dupleName": "Example passpoint_venue", | ||||||
|                     "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                     "venueUrl": "http://www.example.com/info-eng", | 					"venueUrl": "http://www.example.com/info-eng", | ||||||
|                     "asDuple": "eng:Example venue" | 					"asDuple": "eng:Example passpoint_venue" | ||||||
|                 } | 				} | ||||||
|             ], | 			], | ||||||
|             "venueTypeAssignment": { | 			"venueTypeAssignment": { | ||||||
|                 "model_type": "VenueTypeAssignment", | 				"model_type": "PasspointVenueTypeAssignment", | ||||||
|                 "venueDescription": "Research and Development Facility", | 				"venueDescription": "Research and Development Facility", | ||||||
|                 "venueGroupId": 2, | 				"venueGroupId": 2, | ||||||
|                 "venueTypeId": 8 | 				"venueTypeId": 8 | ||||||
|             }, | 			}, | ||||||
|             "profileType": "venue" | 			"profileType": "passpoint_venue" | ||||||
|         }, | 		}, | ||||||
|         "createdTimestamp": 1602113058725, | 		"createdTimestamp": 1606778369950, | ||||||
|         "lastModifiedTimestamp": 1602113058725, | 		"lastModifiedTimestamp": 1606778369950, | ||||||
|         "childProfileIds": [] | 		"childProfileIds": [ | ||||||
|     } | 		] | ||||||
| ] | 	} | ||||||
|  | ] | ||||||
|   | |||||||
| @@ -15,11 +15,6 @@ | |||||||
| 	</properties> | 	</properties> | ||||||
|  |  | ||||||
| 	<dependencies> | 	<dependencies> | ||||||
| 		<dependency> |  | ||||||
| 			<groupId>com.telecominfraproject.wlan</groupId> |  | ||||||
| 			<artifactId>opensync-gateway</artifactId> |  | ||||||
| 			<version>${tip-wlan-cloud.release.version}</version> |  | ||||||
| 		</dependency> |  | ||||||
| 		<dependency> | 		<dependency> | ||||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | 			<groupId>com.telecominfraproject.wlan</groupId> | ||||||
| 			<artifactId>opensync-ext-static</artifactId> | 			<artifactId>opensync-ext-static</artifactId> | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|   "model_type": "Equipment", |   "model_type": "Equipment", | ||||||
|   "id": 51, |   "id": 51, | ||||||
|   "customerId": 2, |   "customerId": 2, | ||||||
|   "profileId": 5, |   "profileId": 12, | ||||||
|   "locationId": 8, |   "locationId": 8, | ||||||
|   "equipmentType": "AP", |   "equipmentType": "AP", | ||||||
|   "inventoryId": "Test_Client_21P10C68818122", |   "inventoryId": "Test_Client_21P10C68818122", | ||||||
| @@ -41,23 +41,23 @@ | |||||||
|         "bannedChannels": [], |         "bannedChannels": [], | ||||||
|         "allowedChannels": [], |         "allowedChannels": [], | ||||||
|         "rxCellSizeDb": { |         "rxCellSizeDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "probeResponseThresholdDb": { |         "probeResponseThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "clientDisconnectThresholdDb": { |         "clientDisconnectThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "eirpTxPower": { |         "eirpTxPower": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": false, |         	 "source": "auto", | ||||||
|           "value": 32 |           "value": 32 | ||||||
|         }, |         }, | ||||||
|         "perimeterDetectionEnabled": true, |         "perimeterDetectionEnabled": true, | ||||||
| @@ -75,23 +75,23 @@ | |||||||
|         "bannedChannels": [], |         "bannedChannels": [], | ||||||
|         "allowedChannels": [], |         "allowedChannels": [], | ||||||
|         "rxCellSizeDb": { |         "rxCellSizeDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "probeResponseThresholdDb": { |         "probeResponseThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "clientDisconnectThresholdDb": { |         "clientDisconnectThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "eirpTxPower": { |         "eirpTxPower": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": false, |         	 "source": "auto", | ||||||
|           "value": 32 |           "value": 32 | ||||||
|         }, |         }, | ||||||
|         "perimeterDetectionEnabled": true, |         "perimeterDetectionEnabled": true, | ||||||
| @@ -109,23 +109,23 @@ | |||||||
|         "bannedChannels": [], |         "bannedChannels": [], | ||||||
|         "allowedChannels": [], |         "allowedChannels": [], | ||||||
|         "rxCellSizeDb": { |         "rxCellSizeDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "probeResponseThresholdDb": { |         "probeResponseThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "clientDisconnectThresholdDb": { |         "clientDisconnectThresholdDb": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": true, |         	 "source": "auto", | ||||||
|           "value": -90 |           "value": -90 | ||||||
|         }, |         }, | ||||||
|         "eirpTxPower": { |         "eirpTxPower": { | ||||||
|           "model_type": "AutoOrManualValue", |           "model_type": "SourceSelectionValue", | ||||||
|           "auto": false, |         	 "source": "auto", | ||||||
|           "value": 32 |           "value": 32 | ||||||
|         }, |         }, | ||||||
|         "perimeterDetectionEnabled": true, |         "perimeterDetectionEnabled": true, | ||||||
| @@ -141,16 +141,22 @@ | |||||||
|         "radioType": "is2dot4GHz", |         "radioType": "is2dot4GHz", | ||||||
|         "radioAdminState": "enabled", |         "radioAdminState": "enabled", | ||||||
|         "fragmentationThresholdBytes": 2346, |         "fragmentationThresholdBytes": 2346, | ||||||
|         "radioMode": "modeN", |  | ||||||
|         "wmmState": "enabled", |  | ||||||
|         "uapsdState": "enabled", |         "uapsdState": "enabled", | ||||||
|         "stationIsolation": "disabled", |         "stationIsolation": "disabled", | ||||||
|         "managementRate": "auto", |         "managementRate": { | ||||||
|  |           "model_type": "SourceSelectionManagement", | ||||||
|  |           "source": "auto", | ||||||
|  |           "value": "auto" | ||||||
|  |         }, | ||||||
|         "bestApSettings": { |         "bestApSettings": { | ||||||
|           "model_type": "RadioBestApSettings", |         "model_type": "SourceSelectionSteering", | ||||||
|           "mlComputed": true, |           "source": "auto", | ||||||
|           "dropInSnrPercentage": 20, |           "value": { | ||||||
|           "minLoadFactor": 50 | 	          "model_type": "RadioBestApSettings", | ||||||
|  | 	          "mlComputed": true, | ||||||
|  | 	          "dropInSnrPercentage": 30, | ||||||
|  | 	          "minLoadFactor": 40 | ||||||
|  |           } | ||||||
|         }, |         }, | ||||||
|         "legacyBSSRate": "enabled", |         "legacyBSSRate": "enabled", | ||||||
|         "deauthAttackDetection": null |         "deauthAttackDetection": null | ||||||
| @@ -160,16 +166,22 @@ | |||||||
|         "radioType": "is5GHzU", |         "radioType": "is5GHzU", | ||||||
|         "radioAdminState": "enabled", |         "radioAdminState": "enabled", | ||||||
|         "fragmentationThresholdBytes": 2346, |         "fragmentationThresholdBytes": 2346, | ||||||
|         "radioMode": "modeAC", |  | ||||||
|         "wmmState": "enabled", |  | ||||||
|         "uapsdState": "enabled", |         "uapsdState": "enabled", | ||||||
|         "stationIsolation": "disabled", |         "stationIsolation": "disabled", | ||||||
|         "managementRate": "auto", |         "managementRate": { | ||||||
|  |           "model_type": "SourceSelectionManagement", | ||||||
|  |           "source": "auto", | ||||||
|  |           "value": "auto" | ||||||
|  |         }, | ||||||
|         "bestApSettings": { |         "bestApSettings": { | ||||||
|           "model_type": "RadioBestApSettings", |         "model_type": "SourceSelectionSteering", | ||||||
|           "mlComputed": true, |           "source": "auto", | ||||||
|           "dropInSnrPercentage": 30, |           "value": { | ||||||
|           "minLoadFactor": 40 | 	          "model_type": "RadioBestApSettings", | ||||||
|  | 	          "mlComputed": true, | ||||||
|  | 	          "dropInSnrPercentage": 30, | ||||||
|  | 	          "minLoadFactor": 40 | ||||||
|  |           } | ||||||
|         }, |         }, | ||||||
|         "legacyBSSRate": "enabled", |         "legacyBSSRate": "enabled", | ||||||
|         "deauthAttackDetection": null |         "deauthAttackDetection": null | ||||||
| @@ -179,16 +191,22 @@ | |||||||
|         "radioType": "is5GHzL", |         "radioType": "is5GHzL", | ||||||
|         "radioAdminState": "enabled", |         "radioAdminState": "enabled", | ||||||
|         "fragmentationThresholdBytes": 2346, |         "fragmentationThresholdBytes": 2346, | ||||||
|         "radioMode": "modeAC", |  | ||||||
|         "wmmState": "enabled", |  | ||||||
|         "uapsdState": "enabled", |         "uapsdState": "enabled", | ||||||
|         "stationIsolation": "disabled", |         "stationIsolation": "disabled", | ||||||
|         "managementRate": "auto", |         "managementRate": { | ||||||
|  |           "model_type": "SourceSelectionManagement", | ||||||
|  |           "source": "auto", | ||||||
|  |           "value": "auto" | ||||||
|  |         }, | ||||||
|         "bestApSettings": { |         "bestApSettings": { | ||||||
|           "model_type": "RadioBestApSettings", |         "model_type": "SourceSelectionSteering", | ||||||
|           "mlComputed": true, |           "source": "auto", | ||||||
|           "dropInSnrPercentage": 30, |           "value": { | ||||||
|           "minLoadFactor": 40 | 	          "model_type": "RadioBestApSettings", | ||||||
|  | 	          "mlComputed": true, | ||||||
|  | 	          "dropInSnrPercentage": 30, | ||||||
|  | 	          "minLoadFactor": 40 | ||||||
|  |           } | ||||||
|         }, |         }, | ||||||
|         "legacyBSSRate": "enabled", |         "legacyBSSRate": "enabled", | ||||||
|         "deauthAttackDetection": null |         "deauthAttackDetection": null | ||||||
| @@ -200,4 +218,4 @@ | |||||||
|   "serial": "21P10C68818122", |   "serial": "21P10C68818122", | ||||||
|   "createdTimestamp": 1591653239821, |   "createdTimestamp": 1591653239821, | ||||||
|   "lastModifiedTimestamp": 1591653241398 |   "lastModifiedTimestamp": 1591653241398 | ||||||
| } | } | ||||||
|   | |||||||
| @@ -10,55 +10,48 @@ | |||||||
|     "countryCode" : "ca", |     "countryCode" : "ca", | ||||||
|     "maintenanceWindow" : null, |     "maintenanceWindow" : null, | ||||||
|     "rrmEnabled" : true, |     "rrmEnabled" : true, | ||||||
|     "dailyRebalancingDetails" : { |     "dailyActivityDetails" : { | ||||||
|       "SUNDAY" : { |       "SUNDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "MONDAY" : { |       "MONDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "TUESDAY" : { |       "TUESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "WEDNESDAY" : { |       "WEDNESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "THURSDAY" : { |       "THURSDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "FRIDAY" : { |       "FRIDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "SATURDAY" : { |       "SATURDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -10,55 +10,48 @@ | |||||||
|     "countryCode" : "usa", |     "countryCode" : "usa", | ||||||
|     "maintenanceWindow" : null, |     "maintenanceWindow" : null, | ||||||
|     "rrmEnabled" : true, |     "rrmEnabled" : true, | ||||||
|     "dailyRebalancingDetails" : { |     "dailyActivityDetails" : { | ||||||
|       "SUNDAY" : { |       "SUNDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "MONDAY" : { |       "MONDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "TUESDAY" : { |       "TUESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "WEDNESDAY" : { |       "WEDNESDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "THURSDAY" : { |       "THURSDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "FRIDAY" : { |       "FRIDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       }, |       }, | ||||||
|       "SATURDAY" : { |       "SATURDAY" : { | ||||||
|         "model_type" : "LocationActivityDetails", |         "model_type" : "LocationActivityDetails", | ||||||
|         "busyTime" : "13:30", |         "busyTime" : "13:30", | ||||||
|         "quietTime" : "3:30", |         "quietTime" : "3:30", | ||||||
|         "timezone" : "US/Eastern", |         "timezone" : "US/Eastern" | ||||||
|         "lastBusySnapshot" : 0 |  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "model_type": "Profile", |     "model_type": "Profile", | ||||||
|     "id": 17, |     "id": 12, | ||||||
|     "customerId": 2, |     "customerId": 2, | ||||||
|     "profileType": "equipment_ap", |     "profileType": "equipment_ap", | ||||||
|     "name": "ApProfile-3-radios", |     "name": "ApProfile-3-radios", | ||||||
| @@ -20,6 +20,11 @@ | |||||||
|         "syntheticClientEnabled": true, |         "syntheticClientEnabled": true, | ||||||
|         "ledControlEnabled": true, |         "ledControlEnabled": true, | ||||||
|         "equipmentDiscovery": false, |         "equipmentDiscovery": false, | ||||||
|  |         "greTunnelName": null, | ||||||
|  |         "greParentIfName": null, | ||||||
|  |         "greLocalInetAddr": null, | ||||||
|  |         "greRemoteInetAddr": null, | ||||||
|  |         "greRemoteMacAddr": null, | ||||||
|         "radioMap": { |         "radioMap": { | ||||||
|             "is2dot4GHz": { |             "is2dot4GHz": { | ||||||
|                 "model_type": "RadioProfileConfiguration", |                 "model_type": "RadioProfileConfiguration", | ||||||
| @@ -39,12 +44,13 @@ | |||||||
|         }, |         }, | ||||||
|         "profileType": "equipment_ap" |         "profileType": "equipment_ap" | ||||||
|     }, |     }, | ||||||
|     "createdTimestamp": 1602182806348, |     "createdTimestamp": 1606778369934, | ||||||
|     "lastModifiedTimestamp": 1602182806348, |     "lastModifiedTimestamp": 1606778443413, | ||||||
|     "childProfileIds": [ |     "childProfileIds": [ | ||||||
|         2, |         16, | ||||||
|         5, |         5, | ||||||
|  |         10, | ||||||
|         11, |         11, | ||||||
|         13 |         15 | ||||||
|     ] |     ] | ||||||
| } | } | ||||||
| @@ -1,72 +1,71 @@ | |||||||
| [ | [ | ||||||
| { | 	{ | ||||||
|     "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|     "id": 10, | 		"id": 24, | ||||||
|     "customerId": 2, | 		"customerId": 2, | ||||||
|     "profileType": "hotspot_2pt0", | 		"profileType": "passpoint", | ||||||
|     "name": "TipWlan-Hotspot20-Config", | 		"name": "TipWlan-Passpoint-Config", | ||||||
|     "details": { | 		"details": { | ||||||
|         "model_type": "Hotspot2Profile", | 			"model_type": "PasspointProfile", | ||||||
|         "enableInterworkingAndHs20": true, | 			"enableInterworkingAndHs20": true, | ||||||
|         "hessid": null, | 			"hessid": null, | ||||||
|         "accessNetworkType": "free_public_network", | 			"passpointAccessNetworkType": "free_public_network", | ||||||
|         "networkAuthenticationType": "acceptance_of_terms_and_conditions", | 			"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||||
|         "additionalStepsRequiredForAccess": 0, | 			"additionalStepsRequiredForAccess": 0, | ||||||
|         "deauthRequestTimeout": 0, | 			"deauthRequestTimeout": 0, | ||||||
|         "operatingClass": 0, | 			"operatingClass": 0, | ||||||
|         "termsAndConditionsFile": { | 			"termsAndConditionsFile": { | ||||||
|             "model_type": "ManagedFileInfo", | 				"model_type": "ManagedFileInfo", | ||||||
|             "md5checksum": null, | 				"md5checksum": null, | ||||||
|             "lastModifiedTimestamp": null, | 				"lastModifiedTimestamp": null, | ||||||
|             "apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | 				"apExportUrl": "https://localhost:9091/filestore/termsAndConditions", | ||||||
|             "fileCategory": "ExternalPolicyConfiguration", | 				"fileCategory": "ExternalPolicyConfiguration", | ||||||
|             "fileType": "TEXT", | 				"fileType": "TEXT", | ||||||
|             "altSlot": false | 				"altSlot": false | ||||||
|         }, | 			}, | ||||||
|         "whitelistDomain": null, | 			"whitelistDomain": null, | ||||||
|         "emergencyServicesReachable": true, | 			"emergencyServicesReachable": true, | ||||||
|         "unauthenticatedEmergencyServiceAccessible": false, | 			"unauthenticatedEmergencyServiceAccessible": false, | ||||||
|         "internetConnectivity": true, | 			"internetConnectivity": true, | ||||||
|         "connectionCapabilitySet": [ | 			"connectionCapabilitySet": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "ConnectionCapability", | 					"model_type": "PasspointConnectionCapability", | ||||||
|                 "connectionCapabilitiesPortNumber": 8888, | 					"connectionCapabilitiesPortNumber": 8888, | ||||||
|                 "connectionCapabilitiesIpProtocol": "TCP", | 					"connectionCapabilitiesStatus": "open", | ||||||
|                 "connectionCapabilitiesStatus": "open" | 					"connectionCapabilitiesIpProtocol": "TCP" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "ipAddressTypeAvailability": "public_IPv4_address_available", | 			"ipAddressTypeAvailability": "public_IPv4_address_available", | ||||||
|         "qosMapSetConfiguration": null, | 			"qosMapSetConfiguration": null, | ||||||
|         "apGeospatialLocation": null, | 			"apGeospatialLocation": null, | ||||||
|         "apCivicLocation": null, | 			"apCivicLocation": null, | ||||||
|         "apPublicLocationIdUri": null, | 			"apPublicLocationIdUri": null, | ||||||
|         "gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | 			"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest", | ||||||
|         "anqpDomainId": 1234, | 			"anqpDomainId": 1234, | ||||||
|         "disableDownstreamGroupAddressedForwarding": false, | 			"disableDownstreamGroupAddressedForwarding": false, | ||||||
|         "enable2pt4GHz": true, | 			"enable2pt4GHz": true, | ||||||
|         "enable5GHz": true, | 			"enable5GHz": true, | ||||||
|         "associatedAccessSsidNames": [ | 			"associatedAccessSsidProfileIds": [ | ||||||
|             "TipWlan-cloud-hotspot-access" | 				15 | ||||||
|         ], | 			], | ||||||
|         "osuSsidName": "TipWlan-cloud-3-radios", | 			"osuSsidProfileId": 16, | ||||||
|         "operatorProfileName": "TipWlan-Hotspot20-Operator", | 			"passpointOperatorProfileId": 17, | ||||||
|         "venueProfileName": "TipWlan-Hotspot20-Venue", | 			"passpointVenueProfileId": 18, | ||||||
|         "idProviderProfileNames": [ | 			"passpointOsuProviderProfileIds": [ | ||||||
|             "TipWlan-Hotspot20-OSU-Provider-2", | 				19, | ||||||
|             "TipWlan-Hotspot20-OSU-Provider" | 				20 | ||||||
|         ], | 			], | ||||||
|         "profileType": "hotspot_2pt0", | 			"accessNetworkType": "free_public_network", | ||||||
|         "associatedSsids": [ | 			"networkAuthenticationType": "acceptance_of_terms_and_conditions", | ||||||
|             "TipWlan-cloud-hotspot-access" | 			"profileType": "passpoint" | ||||||
|         ] | 		}, | ||||||
|     }, | 		"createdTimestamp": 1606778370807, | ||||||
|     "createdTimestamp": 1602182806040, | 		"lastModifiedTimestamp": 1606778370807, | ||||||
|     "lastModifiedTimestamp": 1602182806040, | 		"childProfileIds": [ | ||||||
|     "childProfileIds": [ | 			17, | ||||||
|         6, | 			18, | ||||||
|         7, | 			19, | ||||||
|         8, | 			20 | ||||||
|         9 | 		] | ||||||
|     ] | 	} | ||||||
| } | ] | ||||||
| ] |  | ||||||
|   | |||||||
| @@ -1,256 +1,270 @@ | |||||||
| [ | [ | ||||||
| { | 	{ | ||||||
|     "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|     "id": 8, | 		"id": 19, | ||||||
|     "customerId": 2, | 		"customerId": 2, | ||||||
|     "profileType": "id_provider", | 		"profileType": "passpoint_osu_id_provider", | ||||||
|     "name": "TipWlan-Hotspot20-OSU-Provider", | 		"name": "TipWlan-Passpoint-OSU-Provider", | ||||||
|     "details": { | 		"details": { | ||||||
|         "model_type": "Hotspot20IdProviderProfile", | 			"model_type": "PasspointOsuProviderProfile", | ||||||
|         "domainName": "rogers.com", | 			"domainName": "rogers.com", | ||||||
|         "mccMncList": [ | 			"mccMncList": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "MccMnc", | 					"model_type": "PasspointMccMnc", | ||||||
|                 "mcc": 302, | 					"mcc": 302, | ||||||
|                 "mnc": 720, | 					"mnc": 720, | ||||||
|                 "iso": "ca", | 					"iso": "ca", | ||||||
|                 "country": "Canada", | 					"country": "Canada", | ||||||
|                 "countryCode": 1, | 					"countryCode": 1, | ||||||
|                 "network": "Rogers AT&T Wireless", | 					"network": "Rogers AT&T Wireless", | ||||||
|                 "mccMncPairing": "302,720" | 					"mccMncPairing": "302,720" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "naiRealmList": [ | 			"naiRealmList": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "NaiRealmInformation", | 					"model_type": "PasspointNaiRealmInformation", | ||||||
|                 "naiRealms": [ | 					"naiRealms": [ | ||||||
|                     "rogers.com" | 						"rogers.com" | ||||||
|                 ], | 					], | ||||||
|                 "encoding": 0, | 					"encoding": 0, | ||||||
|                 "eapMethods": [ | 					"eapMethods": [ | ||||||
|                     "EAP-TTLS with username/password", | 						"EAP-TTLS with username/password", | ||||||
|                     "EAP-TLS with certificate" | 						"EAP-TLS with certificate" | ||||||
|                 ], | 					], | ||||||
|                 "eapMap": { | 					"eapMap": { | ||||||
|                     "EAP-TTLS with username/password": [ | 						"EAP-TTLS with username/password": [ | ||||||
|                         "Credential Type:username/password", | 							"Credential Type:username/password", | ||||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||||
|                     ], | 						], | ||||||
|                     "EAP-TLS with certificate": [ | 						"EAP-TLS with certificate": [ | ||||||
|                         "Credential Type:Certificate" | 							"Credential Type:Certificate" | ||||||
|                     ] | 						] | ||||||
|                 } | 					} | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "osuIconList": [ | 			"osuIconList": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "OsuIcon", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "iconWidth": 32, | 					"iconWidth": 32, | ||||||
|                 "iconHeight": 32, | 					"iconHeight": 32, | ||||||
|                 "languageCode": "eng", | 					"languageCode": "eng", | ||||||
|                 "iconLocale": "en_CA", | 					"iconLocale": "en_CA", | ||||||
|                 "iconName": "icon32eng", | 					"iconName": "icon32eng", | ||||||
|                 "filePath": "/tmp/icon32eng.png", | 					"filePath": "/tmp/icon32eng.png", | ||||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "OsuIcon", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "iconWidth": 32, | 					"iconWidth": 32, | ||||||
|                 "iconHeight": 32, | 					"iconHeight": 32, | ||||||
|                 "languageCode": "fra", | 					"languageCode": "fra", | ||||||
|                 "iconLocale": "fr_CA", | 					"iconLocale": "fr_CA", | ||||||
|                 "iconName": "icon32fra", | 					"iconName": "icon32fra", | ||||||
|                 "filePath": "/tmp/icon32fra.png", | 					"filePath": "/tmp/icon32fra.png", | ||||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "OsuIcon", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "iconWidth": 32, | 					"iconWidth": 32, | ||||||
|                 "iconHeight": 32, | 					"iconHeight": 32, | ||||||
|                 "languageCode": "eng", | 					"languageCode": "eng", | ||||||
|                 "iconLocale": "en_US", | 					"iconLocale": "en_US", | ||||||
|                 "iconName": "icon32usa", | 					"iconName": "icon32usa", | ||||||
|                 "filePath": "/tmp/icon32usa.png", | 					"filePath": "/tmp/icon32usa.png", | ||||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "osuServerUri": "https://example.com/osu/rogers/", | 			"osuServerUri": "https://example.com/osu/rogers", | ||||||
|         "osuFriendlyName": [ | 			"osuFriendlyName": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "en_CA", | 					"locale": "en_CA", | ||||||
|                 "dupleIso3Language": "eng", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleName": "Example provider rogers", | 					"dupleName": "Example provider rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "eng:Example provider rogers" | 					"asDuple": "eng:Example provider rogers" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "fr_CA", | 					"locale": "fr_CA", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleIso3Language": "fra", | ||||||
|                 "dupleName": "Exemple de fournisseur rogers", | 					"dupleName": "Exemple de fournisseur rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "fra:Exemple de fournisseur rogers" | 					"asDuple": "fra:Exemple de fournisseur rogers" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "osuNaiStandalone": "anonymous@rogers.com", | 			"osuNaiStandalone": "anonymous@rogers.com", | ||||||
|         "osuNaiShared": "anonymous@rogers.com", | 			"osuNaiShared": "anonymous@rogers.com", | ||||||
|         "osuMethodList": [ | 			"osuMethodList": [ | ||||||
|             1, | 				1, | ||||||
|             0 | 				0 | ||||||
|         ], | 			], | ||||||
|         "osuServiceDescription": [ | 			"osuServiceDescription": [ | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "en_CA", | 					"locale": "en_CA", | ||||||
|                 "dupleIso3Language": "eng", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleName": "Example services rogers", | 					"dupleName": "Example services rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "eng:Example services rogers" | 					"asDuple": "eng:Example services rogers" | ||||||
|             }, | 				}, | ||||||
|             { | 				{ | ||||||
|                 "model_type": "Hotspot20Duple", | 					"model_type": "PasspointDuple", | ||||||
|                 "locale": "fr_CA", | 					"locale": "fr_CA", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleIso3Language": "fra", | ||||||
|                 "dupleName": "Exemples de services rogers", | 					"dupleName": "Exemples de services rogers", | ||||||
|                 "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                 "asDuple": "fra:Exemples de services rogers" | 					"asDuple": "fra:Exemples de services rogers" | ||||||
|             } | 				} | ||||||
|         ], | 			], | ||||||
|         "profileType": "id_provider" | 			"roamingOi": [ | ||||||
|     }, | 				1, | ||||||
|     "createdTimestamp": 1602182805654, | 				2, | ||||||
|     "lastModifiedTimestamp": 1602182805654, | 				3, | ||||||
|     "childProfileIds": [] | 				4 | ||||||
| }, | 			], | ||||||
| { | 			"profileType": "passpoint_osu_id_provider" | ||||||
|     "model_type": "Profile", | 		}, | ||||||
|     "id": 9, | 		"createdTimestamp": 1606778370345, | ||||||
|     "customerId": 2, | 		"lastModifiedTimestamp": 1606778370345, | ||||||
|     "profileType": "id_provider", | 		"childProfileIds": [ | ||||||
|     "name": "TipWlan-Hotspot20-OSU-Provider-2", | 		] | ||||||
|     "details": { | 	}, | ||||||
|         "model_type": "Hotspot20IdProviderProfile", | 	{ | ||||||
|         "domainName": "telus.com", | 		"model_type": "Profile", | ||||||
|         "mccMncList": [ | 		"id": 20, | ||||||
|             { | 		"customerId": 2, | ||||||
|                 "model_type": "MccMnc", | 		"profileType": "passpoint_osu_id_provider", | ||||||
|                 "mcc": 302, | 		"name": "TipWlan-Passpoint-OSU-Provider-2", | ||||||
|                 "mnc": 220, | 		"details": { | ||||||
|                 "iso": "ca", | 			"model_type": "PasspointOsuProviderProfile", | ||||||
|                 "country": "Canada", | 			"domainName": "telus.com", | ||||||
|                 "countryCode": 1, | 			"mccMncList": [ | ||||||
|                 "network": "Telus Mobility", | 				{ | ||||||
|                 "mccMncPairing": "302,220" | 					"model_type": "PasspointMccMnc", | ||||||
|             } | 					"mcc": 302, | ||||||
|         ], | 					"mnc": 220, | ||||||
|         "naiRealmList": [ | 					"iso": "ca", | ||||||
|             { | 					"country": "Canada", | ||||||
|                 "model_type": "NaiRealmInformation", | 					"countryCode": 1, | ||||||
|                 "naiRealms": [ | 					"network": "Telus Mobility", | ||||||
|                     "telus.com" | 					"mccMncPairing": "302,220" | ||||||
|                 ], | 				} | ||||||
|                 "encoding": 0, | 			], | ||||||
|                 "eapMethods": [ | 			"naiRealmList": [ | ||||||
|                     "EAP-TTLS with username/password", | 				{ | ||||||
|                     "EAP-TLS with certificate" | 					"model_type": "PasspointNaiRealmInformation", | ||||||
|                 ], | 					"naiRealms": [ | ||||||
|                 "eapMap": { | 						"telus.com" | ||||||
|                     "EAP-TTLS with username/password": [ | 					], | ||||||
|                         "Credential Type:username/password", | 					"encoding": 0, | ||||||
|                         "Non-EAP Inner Authentication Type:MSCHAPV2" | 					"eapMethods": [ | ||||||
|                     ], | 						"EAP-TTLS with username/password", | ||||||
|                     "EAP-TLS with certificate": [ | 						"EAP-TLS with certificate" | ||||||
|                         "Credential Type:Certificate" | 					], | ||||||
|                     ] | 					"eapMap": { | ||||||
|                 } | 						"EAP-TTLS with username/password": [ | ||||||
|             } | 							"Credential Type:username/password", | ||||||
|         ], | 							"Non-EAP Inner Authentication Type:MSCHAPV2" | ||||||
|         "osuIconList": [ | 						], | ||||||
|             { | 						"EAP-TLS with certificate": [ | ||||||
|                 "model_type": "OsuIcon", | 							"Credential Type:Certificate" | ||||||
|                 "iconWidth": 32, | 						] | ||||||
|                 "iconHeight": 32, | 					} | ||||||
|                 "languageCode": "eng", | 				} | ||||||
|                 "iconLocale": "en_CA", | 			], | ||||||
|                 "iconName": "icon32eng", | 			"osuIconList": [ | ||||||
|                 "filePath": "/tmp/icon32eng.png", | 				{ | ||||||
|                 "imageUrl": "https://localhost:9096/icon32eng.png", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | 					"iconWidth": 32, | ||||||
|             }, | 					"iconHeight": 32, | ||||||
|             { | 					"languageCode": "eng", | ||||||
|                 "model_type": "OsuIcon", | 					"iconLocale": "en_CA", | ||||||
|                 "iconWidth": 32, | 					"iconName": "icon32eng", | ||||||
|                 "iconHeight": 32, | 					"filePath": "/tmp/icon32eng.png", | ||||||
|                 "languageCode": "fra", | 					"imageUrl": "https://localhost:9096/icon32eng.png", | ||||||
|                 "iconLocale": "fr_CA", | 					"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png" | ||||||
|                 "iconName": "icon32fra", | 				}, | ||||||
|                 "filePath": "/tmp/icon32fra.png", | 				{ | ||||||
|                 "imageUrl": "https://localhost:9096/icon32fra.png", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | 					"iconWidth": 32, | ||||||
|             }, | 					"iconHeight": 32, | ||||||
|             { | 					"languageCode": "fra", | ||||||
|                 "model_type": "OsuIcon", | 					"iconLocale": "fr_CA", | ||||||
|                 "iconWidth": 32, | 					"iconName": "icon32fra", | ||||||
|                 "iconHeight": 32, | 					"filePath": "/tmp/icon32fra.png", | ||||||
|                 "languageCode": "eng", | 					"imageUrl": "https://localhost:9096/icon32fra.png", | ||||||
|                 "iconLocale": "en_US", | 					"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png" | ||||||
|                 "iconName": "icon32usa", | 				}, | ||||||
|                 "filePath": "/tmp/icon32usa.png", | 				{ | ||||||
|                 "imageUrl": "https://localhost:9096/icon32usa.png", | 					"model_type": "PasspointOsuIcon", | ||||||
|                 "hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | 					"iconWidth": 32, | ||||||
|             } | 					"iconHeight": 32, | ||||||
|         ], | 					"languageCode": "eng", | ||||||
|         "osuServerUri": "https://example.com/osu/telus/", | 					"iconLocale": "en_US", | ||||||
|         "osuFriendlyName": [ | 					"iconName": "icon32usa", | ||||||
|             { | 					"filePath": "/tmp/icon32usa.png", | ||||||
|                 "model_type": "Hotspot20Duple", | 					"imageUrl": "https://localhost:9096/icon32usa.png", | ||||||
|                 "locale": "en_CA", | 					"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png" | ||||||
|                 "dupleIso3Language": "eng", | 				} | ||||||
|                 "dupleName": "Example provider telus", | 			], | ||||||
|                 "defaultDupleSeparator": ":", | 			"osuServerUri": "https://example.com/osu/telus", | ||||||
|                 "asDuple": "eng:Example provider telus" | 			"osuFriendlyName": [ | ||||||
|             }, | 				{ | ||||||
|             { | 					"model_type": "PasspointDuple", | ||||||
|                 "model_type": "Hotspot20Duple", | 					"locale": "en_CA", | ||||||
|                 "locale": "fr_CA", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleName": "Example provider telus", | ||||||
|                 "dupleName": "Exemple de fournisseur telus", | 					"defaultDupleSeparator": ":", | ||||||
|                 "defaultDupleSeparator": ":", | 					"asDuple": "eng:Example provider telus" | ||||||
|                 "asDuple": "fra:Exemple de fournisseur telus" | 				}, | ||||||
|             } | 				{ | ||||||
|         ], | 					"model_type": "PasspointDuple", | ||||||
|         "osuNaiStandalone": "anonymous@telus.com", | 					"locale": "fr_CA", | ||||||
|         "osuNaiShared": "anonymous@telus.com", | 					"dupleIso3Language": "fra", | ||||||
|         "osuMethodList": [ | 					"dupleName": "Exemple de fournisseur telus", | ||||||
|             1, | 					"defaultDupleSeparator": ":", | ||||||
|             0 | 					"asDuple": "fra:Exemple de fournisseur telus" | ||||||
|         ], | 				} | ||||||
|         "osuServiceDescription": [ | 			], | ||||||
|             { | 			"osuNaiStandalone": "anonymous@telus.com", | ||||||
|                 "model_type": "Hotspot20Duple", | 			"osuNaiShared": "anonymous@telus.com", | ||||||
|                 "locale": "en_CA", | 			"osuMethodList": [ | ||||||
|                 "dupleIso3Language": "eng", | 				1, | ||||||
|                 "dupleName": "Example services telus", | 				0 | ||||||
|                 "defaultDupleSeparator": ":", | 			], | ||||||
|                 "asDuple": "eng:Example services telus" | 			"osuServiceDescription": [ | ||||||
|             }, | 				{ | ||||||
|             { | 					"model_type": "PasspointDuple", | ||||||
|                 "model_type": "Hotspot20Duple", | 					"locale": "en_CA", | ||||||
|                 "locale": "fr_CA", | 					"dupleIso3Language": "eng", | ||||||
|                 "dupleIso3Language": "fra", | 					"dupleName": "Example services telus", | ||||||
|                 "dupleName": "Exemples de services telus", | 					"defaultDupleSeparator": ":", | ||||||
|                 "defaultDupleSeparator": ":", | 					"asDuple": "eng:Example services telus" | ||||||
|                 "asDuple": "fra:Exemples de services telus" | 				}, | ||||||
|             } | 				{ | ||||||
|         ], | 					"model_type": "PasspointDuple", | ||||||
|         "profileType": "id_provider" | 					"locale": "fr_CA", | ||||||
|     }, | 					"dupleIso3Language": "fra", | ||||||
|     "createdTimestamp": 1602182805660, | 					"dupleName": "Exemples de services telus", | ||||||
|     "lastModifiedTimestamp": 1602182805660, | 					"defaultDupleSeparator": ":", | ||||||
|     "childProfileIds": [] | 					"asDuple": "fra:Exemples de services telus" | ||||||
| } | 				} | ||||||
|     ] | 			], | ||||||
|  | 			"roamingOi": [ | ||||||
|  | 				1, | ||||||
|  | 				2, | ||||||
|  | 				3, | ||||||
|  | 				4 | ||||||
|  | 			], | ||||||
|  | 			"profileType": "passpoint_osu_id_provider" | ||||||
|  | 		}, | ||||||
|  | 		"createdTimestamp": 1606778370351, | ||||||
|  | 		"lastModifiedTimestamp": 1606778370351, | ||||||
|  | 		"childProfileIds": [ | ||||||
|  | 		] | ||||||
|  | 	} | ||||||
|  | ] | ||||||
|   | |||||||
| @@ -1,298 +1,299 @@ | |||||||
| [ | [ | ||||||
|  { | 	{ | ||||||
|         "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|         "id": 2, | 		"id": 10, | ||||||
|         "customerId": 2, | 		"customerId": 2, | ||||||
|         "profileType": "metrics", | 		"profileType": "service_metrics_collection_config", | ||||||
|         "name": "Metrics-Profile-3-radios", | 		"name": "Metrics-Profile-3-Radios", | ||||||
|         "details": { | 		"details": { | ||||||
|             "model_type": "ServiceMetricsCollectionConfigProfile", | 			"model_type": "ServiceMetricsCollectionConfigProfile", | ||||||
|             "radioTypes": [ | 			"radioTypes": [ | ||||||
|                 "is5GHzU", | 				"is5GHzL", | ||||||
|                 "is5GHzL", | 				"is2dot4GHz", | ||||||
|                 "is2dot4GHz" | 				"is5GHzU" | ||||||
|             ], | 			], | ||||||
|             "serviceMetricDataTypes": [ | 			"serviceMetricDataTypes": [ | ||||||
|                 "ApNode", | 				"ApNode", | ||||||
|                 "ApSsid", | 				"ApSsid", | ||||||
|                 "Client", | 				"Client", | ||||||
|                 "Channel", | 				"Channel", | ||||||
|                 "Neighbour" | 				"Neighbour" | ||||||
|             ], | 			], | ||||||
|             "metricConfigParameterMap": { | 			"metricConfigParameterMap": { | ||||||
|                 "ApNode": [ | 				"ApNode": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "ApNode", | ||||||
|                         "serviceMetricDataType": "ApNode" | 						"statsReportFormat": "RAW" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "ApSsid": [ | 				"ApSsid": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is2dot4GHz", | 						"radioType": "is5GHzU", | ||||||
|                         "serviceMetricDataType": "ApSsid" | 						"serviceMetricDataType": "ApSsid" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzL", | 						"radioType": "is5GHzL", | ||||||
|                         "serviceMetricDataType": "ApSsid" | 						"serviceMetricDataType": "ApSsid" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzU", | 						"radioType": "is2dot4GHz", | ||||||
|                         "serviceMetricDataType": "ApSsid" | 						"serviceMetricDataType": "ApSsid" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "Client": [ | 				"Client": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is2dot4GHz", | 						"radioType": "is5GHzU", | ||||||
|                         "serviceMetricDataType": "Client" | 						"serviceMetricDataType": "Client" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzL", | 						"radioType": "is5GHzL", | ||||||
|                         "serviceMetricDataType": "Client" | 						"serviceMetricDataType": "Client" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricRadioConfigParameters", | 						"model_type": "ServiceMetricRadioConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "radioType": "is5GHzU", | 						"radioType": "is2dot4GHz", | ||||||
|                         "serviceMetricDataType": "Client" | 						"serviceMetricDataType": "Client" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "Channel": [ | 				"Channel": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Channel", | ||||||
|                         "serviceMetricDataType": "Channel" | 						"statsReportFormat": "RAW" | ||||||
|                     } | 					} | ||||||
|                 ], | 				], | ||||||
|                 "Neighbour": [ | 				"Neighbour": [ | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 60, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "ON_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzU", | ||||||
|                         "radioType": "is5GHzU", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 120, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "OFF_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is5GHzL", | ||||||
|                         "radioType": "is5GHzL", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     }, | 					}, | ||||||
|                     { | 					{ | ||||||
|                         "model_type": "ServiceMetricSurveyConfigParameters", | 						"model_type": "ServiceMetricSurveyConfigParameters", | ||||||
|                         "samplingInterval": 30, | 						"samplingInterval": 30, | ||||||
|                         "reportingIntervalSeconds": 120, | 						"reportingIntervalSeconds": 60, | ||||||
|                         "channelSurveyType": "OFF_CHANNEL", | 						"channelSurveyType": "ON_CHANNEL", | ||||||
|                         "scanIntervalMillis": 0, | 						"scanIntervalMillis": 0, | ||||||
|                         "percentUtilizationThreshold": 10, | 						"percentUtilizationThreshold": 10, | ||||||
|                         "delayMillisecondsThreshold": 600, | 						"delayMillisecondsThreshold": 600, | ||||||
|                         "statsReportFormat": "RAW", | 						"radioType": "is2dot4GHz", | ||||||
|                         "radioType": "is2dot4GHz", | 						"serviceMetricDataType": "Neighbour", | ||||||
|                         "serviceMetricDataType": "Neighbour" | 						"statsReportFormat": "RAW" | ||||||
|                     } | 					} | ||||||
|                 ] | 				] | ||||||
|             }, | 			}, | ||||||
|             "profileType": "metrics" | 			"profileType": "service_metrics_collection_config" | ||||||
|         }, | 		}, | ||||||
|         "createdTimestamp": 1602113058699, | 		"createdTimestamp": 1606778369931, | ||||||
|         "lastModifiedTimestamp": 1602113058699, | 		"lastModifiedTimestamp": 1606778369931, | ||||||
|         "childProfileIds": [] | 		"childProfileIds": [ | ||||||
|     } | 		] | ||||||
| ] | 	} | ||||||
|  | ] | ||||||
|   | |||||||
| @@ -1,37 +1,37 @@ | |||||||
| [ | [ | ||||||
| { | 	{ | ||||||
|         "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|         "id": 6, | 		"id": 17, | ||||||
|         "customerId": 2, | 		"customerId": 2, | ||||||
|         "profileType": "operator", | 		"profileType": "passpoint_operator", | ||||||
|         "name": "TipWlan-Hotspot20-Operator", | 		"name": "TipWlan-Passpoint-Operator", | ||||||
|         "details": { | 		"details": { | ||||||
|             "model_type": "OperatorProfile", | 			"model_type": "PasspointOperatorProfile", | ||||||
|             "domainName": "telecominfraproject.atlassian.net", | 			"serverOnlyAuthenticatedL2EncryptionNetwork": false, | ||||||
|             "serverOnlyAuthenticatedL2EncryptionNetwork": false, | 			"x509CertificateLocation": "/etc/ca.pem", | ||||||
|             "x509CertificateLocation": "/etc/ca.pem", | 			"operatorFriendlyName": [ | ||||||
|             "operatorFriendlyName": [ | 				{ | ||||||
|                 { | 					"model_type": "PasspointDuple", | ||||||
|                     "model_type": "Hotspot20Duple", | 					"locale": "en_CA", | ||||||
|                     "locale": "en_CA", | 					"dupleIso3Language": "eng", | ||||||
|                     "dupleIso3Language": "eng", | 					"dupleName": "Default friendly passpoint_operator name", | ||||||
|                     "dupleName": "Default friendly operator name", | 					"defaultDupleSeparator": ":", | ||||||
|                     "defaultDupleSeparator": ":", | 					"asDuple": "eng:Default friendly passpoint_operator name" | ||||||
|                     "asDuple": "eng:Default friendly operator name" | 				}, | ||||||
|                 }, | 				{ | ||||||
|                 { | 					"model_type": "PasspointDuple", | ||||||
|                     "model_type": "Hotspot20Duple", | 					"locale": "fr_CA", | ||||||
|                     "locale": "fr_CA", | 					"dupleIso3Language": "fra", | ||||||
|                     "dupleIso3Language": "fra", | 					"dupleName": "Nom de l'opérateur convivial par défaut", | ||||||
|                     "dupleName": "Nom de l'opérateur convivial par défaut", | 					"defaultDupleSeparator": ":", | ||||||
|                     "defaultDupleSeparator": ":", | 					"asDuple": "fra:Nom de l'opérateur convivial par défaut" | ||||||
|                     "asDuple": "fra:Nom de l'opérateur convivial par défaut" | 				} | ||||||
|                 } | 			], | ||||||
|             ], | 			"profileType": "passpoint_operator" | ||||||
|             "profileType": "operator" | 		}, | ||||||
|         }, | 		"createdTimestamp": 1606778369945, | ||||||
|         "createdTimestamp": 1602113058719, | 		"lastModifiedTimestamp": 1606778369945, | ||||||
|         "lastModifiedTimestamp": 1602113058719, | 		"childProfileIds": [ | ||||||
|         "childProfileIds": [] | 		] | ||||||
|     } | 	} | ||||||
| ] | ] | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "model_type": "Profile", |     "model_type": "Profile", | ||||||
|     "id": 13, |     "id": 11, | ||||||
|     "customerId": 2, |     "customerId": 2, | ||||||
|     "profileType": "rf", |     "profileType": "rf", | ||||||
|     "name": "TipWlan-rf", |     "name": "TipWlan-rf", | ||||||
| @@ -9,6 +9,8 @@ | |||||||
|         "rfConfigMap": { |         "rfConfigMap": { | ||||||
|             "is5GHz": { |             "is5GHz": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is5GHz", | ||||||
|  |                 "radioMode": "modeAC", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -16,7 +18,6 @@ | |||||||
|                 "channelBandwidth": "is80MHz", |                 "channelBandwidth": "is80MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -24,33 +25,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -60,16 +40,24 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
|                     "dropInSnrPercentage": 30, |                     "dropInSnrPercentage": 30, | ||||||
|                     "minLoadFactor": 40 |                     "minLoadFactor": 40 | ||||||
|                 }, |                 } | ||||||
|                 "minAutoCellSize": -65 |  | ||||||
|             }, |             }, | ||||||
|             "is2dot4GHz": { |             "is2dot4GHz": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is2dot4GHz", | ||||||
|  |                 "radioMode": "modeN", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -77,7 +65,6 @@ | |||||||
|                 "channelBandwidth": "is20MHz", |                 "channelBandwidth": "is20MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -85,33 +72,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -121,16 +87,24 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
|                     "dropInSnrPercentage": 20, |                     "dropInSnrPercentage": 20, | ||||||
|                     "minLoadFactor": 50 |                     "minLoadFactor": 50 | ||||||
|                 }, |                 } | ||||||
|                 "minAutoCellSize": -65 |  | ||||||
|             }, |             }, | ||||||
|             "is5GHzU": { |             "is5GHzU": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is5GHzU", | ||||||
|  |                 "radioMode": "modeAC", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -138,7 +112,6 @@ | |||||||
|                 "channelBandwidth": "is80MHz", |                 "channelBandwidth": "is80MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -146,33 +119,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -182,16 +134,24 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
|                     "dropInSnrPercentage": 30, |                     "dropInSnrPercentage": 30, | ||||||
|                     "minLoadFactor": 40 |                     "minLoadFactor": 40 | ||||||
|                 }, |                 } | ||||||
|                 "minAutoCellSize": -65 |  | ||||||
|             }, |             }, | ||||||
|             "is5GHzL": { |             "is5GHzL": { | ||||||
|                 "model_type": "RfElementConfiguration", |                 "model_type": "RfElementConfiguration", | ||||||
|  |                 "radioType": "is5GHzL", | ||||||
|  |                 "radioMode": "modeAC", | ||||||
|                 "rf": "TipWlan-rf", |                 "rf": "TipWlan-rf", | ||||||
|                 "beaconInterval": 100, |                 "beaconInterval": 100, | ||||||
|                 "forceScanDuringVoice": "disabled", |                 "forceScanDuringVoice": "disabled", | ||||||
| @@ -199,7 +159,6 @@ | |||||||
|                 "channelBandwidth": "is80MHz", |                 "channelBandwidth": "is80MHz", | ||||||
|                 "mimoMode": "twoByTwo", |                 "mimoMode": "twoByTwo", | ||||||
|                 "maxNumClients": 100, |                 "maxNumClients": 100, | ||||||
|                 "multicastRate": "auto", |  | ||||||
|                 "autoChannelSelection": false, |                 "autoChannelSelection": false, | ||||||
|                 "activeScanSettings": { |                 "activeScanSettings": { | ||||||
|                     "model_type": "ActiveScanSettings", |                     "model_type": "ActiveScanSettings", | ||||||
| @@ -207,33 +166,12 @@ | |||||||
|                     "scanFrequencySeconds": 10, |                     "scanFrequencySeconds": 10, | ||||||
|                     "scanDurationMillis": 65 |                     "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": { |                 "neighbouringListApConfig": { | ||||||
|                     "model_type": "NeighbouringAPListConfiguration", |                     "model_type": "NeighbouringAPListConfiguration", | ||||||
|                     "minSignal": -85, |                     "minSignal": -85, | ||||||
|                     "maxAps": 25 |                     "maxAps": 25 | ||||||
|                 }, |                 }, | ||||||
|  |                 "minAutoCellSize": -65, | ||||||
|                 "perimeterDetectionEnabled": true, |                 "perimeterDetectionEnabled": true, | ||||||
|                 "channelHopSettings": { |                 "channelHopSettings": { | ||||||
|                     "model_type": "ChannelHopSettings", |                     "model_type": "ChannelHopSettings", | ||||||
| @@ -243,18 +181,24 @@ | |||||||
|                     "nonWifiThresholdTimeInSeconds": 180, |                     "nonWifiThresholdTimeInSeconds": 180, | ||||||
|                     "obssHopMode": "NON_WIFI" |                     "obssHopMode": "NON_WIFI" | ||||||
|                 }, |                 }, | ||||||
|  |                 "bestApEnabled": null, | ||||||
|  |                 "multicastRate": "auto", | ||||||
|  |                 "managementRate": "auto", | ||||||
|  |                 "rxCellSizeDb": -90, | ||||||
|  |                 "probeResponseThresholdDb": -90, | ||||||
|  |                 "clientDisconnectThresholdDb": -90, | ||||||
|  |                 "eirpTxPower": 18, | ||||||
|                 "bestApSettings": { |                 "bestApSettings": { | ||||||
|                     "model_type": "RadioBestApSettings", |                     "model_type": "RadioBestApSettings", | ||||||
|                     "mlComputed": true, |                     "mlComputed": true, | ||||||
|                     "dropInSnrPercentage": 30, |                     "dropInSnrPercentage": 30, | ||||||
|                     "minLoadFactor": 40 |                     "minLoadFactor": 40 | ||||||
|                 }, |                 } | ||||||
|                 "minAutoCellSize": -65 |  | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "profileType": "rf" |         "profileType": "rf" | ||||||
|     }, |     }, | ||||||
|     "createdTimestamp": 1602182806063, |     "createdTimestamp": 1606778369933, | ||||||
|     "lastModifiedTimestamp": 1602182806063, |     "lastModifiedTimestamp": 1606778369933, | ||||||
|     "childProfileIds": [] |     "childProfileIds": [] | ||||||
| } | } | ||||||
| @@ -4,72 +4,6 @@ | |||||||
| 		"id": 5, | 		"id": 5, | ||||||
| 		"customerId": 2, | 		"customerId": 2, | ||||||
| 		"profileType": "ssid", | 		"profileType": "ssid", | ||||||
| 		"name": "TipWlan-cloud-hotspot-access", |  | ||||||
| 		"details": { |  | ||||||
| 			"model_type": "SsidConfiguration", |  | ||||||
| 			"ssid": "TipWlan-cloud-hotspot-access", |  | ||||||
| 			"appliedRadios": [ |  | ||||||
| 				"is5GHzU", |  | ||||||
| 				"is5GHzL", |  | ||||||
| 				"is2dot4GHz" |  | ||||||
| 			], |  | ||||||
| 			"ssidAdminState": "enabled", |  | ||||||
| 			"secureMode": "wpa2PSK", |  | ||||||
| 			"vlanId": 1, |  | ||||||
| 			"keyStr": "testing123", |  | ||||||
| 			"broadcastSsid": "enabled", |  | ||||||
| 			"keyRefresh": 0, |  | ||||||
| 			"noLocalSubnets": false, |  | ||||||
| 			"radiusServiceName": null, |  | ||||||
| 			"captivePortalId": null, |  | ||||||
| 			"bandwidthLimitDown": 0, |  | ||||||
| 			"bandwidthLimitUp": 0, |  | ||||||
| 			"clientBandwidthLimitDown": 0, |  | ||||||
| 			"clientBandwidthLimitUp": 0, |  | ||||||
| 			"videoTrafficOnly": false, |  | ||||||
| 			"radioBasedConfigs": { |  | ||||||
| 				"is5GHz": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				}, |  | ||||||
| 				"is2dot4GHz": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				}, |  | ||||||
| 				"is5GHzU": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				}, |  | ||||||
| 				"is5GHzL": { |  | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", |  | ||||||
| 					"enable80211r": null, |  | ||||||
| 					"enable80211k": null, |  | ||||||
| 					"enable80211v": null |  | ||||||
| 				} |  | ||||||
| 			}, |  | ||||||
| 			"bonjourGatewayProfileId": null, |  | ||||||
| 			"enable80211w": null, |  | ||||||
| 			"wepConfig": null, |  | ||||||
| 			"forwardMode": null, |  | ||||||
| 			"profileType": "ssid" |  | ||||||
| 		}, |  | ||||||
| 		"createdTimestamp": 1602113058718, |  | ||||||
| 		"lastModifiedTimestamp": 1602113059547, |  | ||||||
| 		"childProfileIds": [ |  | ||||||
| 			10 |  | ||||||
| 		] |  | ||||||
| 	}, |  | ||||||
| 	{ |  | ||||||
| 		"model_type": "Profile", |  | ||||||
| 		"id": 11, |  | ||||||
| 		"customerId": 2, |  | ||||||
| 		"profileType": "ssid", |  | ||||||
| 		"name": "TipWlan-cloud-3-radios", | 		"name": "TipWlan-cloud-3-radios", | ||||||
| 		"details": { | 		"details": { | ||||||
| 			"model_type": "SsidConfiguration", | 			"model_type": "SsidConfiguration", | ||||||
| @@ -80,13 +14,15 @@ | |||||||
| 				"is5GHzU" | 				"is5GHzU" | ||||||
| 			], | 			], | ||||||
| 			"ssidAdminState": "enabled", | 			"ssidAdminState": "enabled", | ||||||
| 			"secureMode": "open", | 			"secureMode": "wpa2OnlyPSK", | ||||||
| 			"vlanId": 1, | 			"vlanId": 1, | ||||||
| 			"keyStr": null, | 			"keyStr": "openwifi", | ||||||
| 			"broadcastSsid": "enabled", | 			"broadcastSsid": "enabled", | ||||||
| 			"keyRefresh": 0, | 			"keyRefresh": 0, | ||||||
| 			"noLocalSubnets": false, | 			"noLocalSubnets": false, | ||||||
| 			"radiusServiceName": null, | 			"radiusServiceName": null, | ||||||
|  | 			"radiusAccountingServiceName": null, | ||||||
|  | 			"radiusAcountingServiceInterval": null, | ||||||
| 			"captivePortalId": null, | 			"captivePortalId": null, | ||||||
| 			"bandwidthLimitDown": 0, | 			"bandwidthLimitDown": 0, | ||||||
| 			"bandwidthLimitUp": 0, | 			"bandwidthLimitUp": 0, | ||||||
| @@ -94,7 +30,7 @@ | |||||||
| 			"clientBandwidthLimitUp": 0, | 			"clientBandwidthLimitUp": 0, | ||||||
| 			"videoTrafficOnly": false, | 			"videoTrafficOnly": false, | ||||||
| 			"radioBasedConfigs": { | 			"radioBasedConfigs": { | ||||||
| 				"is5GHz": { | 				"is5GHzL": { | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
| 					"enable80211r": null, | 					"enable80211r": null, | ||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| @@ -106,17 +42,83 @@ | |||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| 					"enable80211v": null | 					"enable80211v": null | ||||||
| 				}, | 				}, | ||||||
| 				"is5GHzU": { | 				"is5GHz": { | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
| 					"enable80211r": null, | 					"enable80211r": null, | ||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| 					"enable80211v": null | 					"enable80211v": null | ||||||
| 				}, | 				}, | ||||||
|  | 				"is5GHzU": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				} | ||||||
|  | 			}, | ||||||
|  | 			"bonjourGatewayProfileId": null, | ||||||
|  | 			"enable80211w": null, | ||||||
|  | 			"wepConfig": null, | ||||||
|  | 			"forwardMode": "BRIDGE", | ||||||
|  | 			"profileType": "ssid" | ||||||
|  | 		}, | ||||||
|  | 		"createdTimestamp": 1606778369598, | ||||||
|  | 		"lastModifiedTimestamp": 1606778369598, | ||||||
|  | 		"childProfileIds": [ | ||||||
|  | 		] | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		"model_type": "Profile", | ||||||
|  | 		"id": 15, | ||||||
|  | 		"customerId": 2, | ||||||
|  | 		"profileType": "ssid", | ||||||
|  | 		"name": "TipWlan-cloud-passpoint-access", | ||||||
|  | 		"details": { | ||||||
|  | 			"model_type": "SsidConfiguration", | ||||||
|  | 			"ssid": "TipWlan-cloud-passpoint-access", | ||||||
|  | 			"appliedRadios": [ | ||||||
|  | 				"is5GHzL", | ||||||
|  | 				"is5GHzU" | ||||||
|  | 			], | ||||||
|  | 			"ssidAdminState": "enabled", | ||||||
|  | 			"secureMode": "wpa2PSK", | ||||||
|  | 			"vlanId": 1, | ||||||
|  | 			"keyStr": "testing123", | ||||||
|  | 			"broadcastSsid": "enabled", | ||||||
|  | 			"keyRefresh": 0, | ||||||
|  | 			"noLocalSubnets": false, | ||||||
|  | 			"radiusServiceName": null, | ||||||
|  | 			"radiusAccountingServiceName": null, | ||||||
|  | 			"radiusAcountingServiceInterval": null, | ||||||
|  | 			"captivePortalId": null, | ||||||
|  | 			"bandwidthLimitDown": 0, | ||||||
|  | 			"bandwidthLimitUp": 0, | ||||||
|  | 			"clientBandwidthLimitDown": 0, | ||||||
|  | 			"clientBandwidthLimitUp": 0, | ||||||
|  | 			"videoTrafficOnly": false, | ||||||
|  | 			"radioBasedConfigs": { | ||||||
| 				"is5GHzL": { | 				"is5GHzL": { | ||||||
| 					"model_type": "RadioBasedSsidConfiguration", | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
| 					"enable80211r": null, | 					"enable80211r": null, | ||||||
| 					"enable80211k": null, | 					"enable80211k": null, | ||||||
| 					"enable80211v": null | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is2dot4GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHzU": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
| 				} | 				} | ||||||
| 			}, | 			}, | ||||||
| 			"bonjourGatewayProfileId": null, | 			"bonjourGatewayProfileId": null, | ||||||
| @@ -125,10 +127,77 @@ | |||||||
| 			"forwardMode": null, | 			"forwardMode": null, | ||||||
| 			"profileType": "ssid" | 			"profileType": "ssid" | ||||||
| 		}, | 		}, | ||||||
| 		"createdTimestamp": 1602183994766, | 		"createdTimestamp": 1606778369943, | ||||||
| 		"lastModifiedTimestamp": 1602183994766, | 		"lastModifiedTimestamp": 1606778370811, | ||||||
| 		"childProfileIds": [ | 		"childProfileIds": [ | ||||||
| 			10 | 			24 | ||||||
|  | 		] | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		"model_type": "Profile", | ||||||
|  | 		"id": 16, | ||||||
|  | 		"customerId": 2, | ||||||
|  | 		"profileType": "ssid", | ||||||
|  | 		"name": "TipWlan-cloud-passpoint-osu", | ||||||
|  | 		"details": { | ||||||
|  | 			"model_type": "SsidConfiguration", | ||||||
|  | 			"ssid": "TipWlan-cloud-passpoint-osu", | ||||||
|  | 			"appliedRadios": [ | ||||||
|  | 				"is2dot4GHz" | ||||||
|  | 			], | ||||||
|  | 			"ssidAdminState": "enabled", | ||||||
|  | 			"secureMode": "open", | ||||||
|  | 			"vlanId": 1, | ||||||
|  | 			"keyStr": null, | ||||||
|  | 			"broadcastSsid": "enabled", | ||||||
|  | 			"keyRefresh": 0, | ||||||
|  | 			"noLocalSubnets": false, | ||||||
|  | 			"radiusServiceName": null, | ||||||
|  | 			"radiusAccountingServiceName": null, | ||||||
|  | 			"radiusAcountingServiceInterval": null, | ||||||
|  | 			"captivePortalId": null, | ||||||
|  | 			"bandwidthLimitDown": 0, | ||||||
|  | 			"bandwidthLimitUp": 0, | ||||||
|  | 			"clientBandwidthLimitDown": 0, | ||||||
|  | 			"clientBandwidthLimitUp": 0, | ||||||
|  | 			"videoTrafficOnly": false, | ||||||
|  | 			"radioBasedConfigs": { | ||||||
|  | 				"is5GHzL": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is2dot4GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHz": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				}, | ||||||
|  | 				"is5GHzU": { | ||||||
|  | 					"model_type": "RadioBasedSsidConfiguration", | ||||||
|  | 					"enable80211r": null, | ||||||
|  | 					"enable80211k": null, | ||||||
|  | 					"enable80211v": null | ||||||
|  | 				} | ||||||
|  | 			}, | ||||||
|  | 			"bonjourGatewayProfileId": null, | ||||||
|  | 			"enable80211w": null, | ||||||
|  | 			"wepConfig": null, | ||||||
|  | 			"forwardMode": null, | ||||||
|  | 			"profileType": "ssid" | ||||||
|  | 		}, | ||||||
|  | 		"createdTimestamp": 1606778369944, | ||||||
|  | 		"lastModifiedTimestamp": 1606778370352, | ||||||
|  | 		"childProfileIds": [ | ||||||
|  | 			19, | ||||||
|  | 			20 | ||||||
| 		] | 		] | ||||||
| 	} | 	} | ||||||
| ] | ] | ||||||
|   | |||||||
| @@ -1,42 +1,43 @@ | |||||||
| [ | [ | ||||||
|     { | 	{ | ||||||
|         "model_type": "Profile", | 		"model_type": "Profile", | ||||||
|         "id": 7, | 		"id": 18, | ||||||
|         "customerId": 2, | 		"customerId": 2, | ||||||
|         "profileType": "venue", | 		"profileType": "passpoint_venue", | ||||||
|         "name": "TipWlan-Hotspot20-Venue", | 		"name": "TipWlan-Passpoint-Venue", | ||||||
|         "details": { | 		"details": { | ||||||
|             "model_type": "VenueProfile", | 			"model_type": "PasspointVenueProfile", | ||||||
|             "venueNameSet": [ | 			"venueNameSet": [ | ||||||
|                 { | 				{ | ||||||
|                     "model_type": "VenueName", | 					"model_type": "PasspointVenueName", | ||||||
|                     "locale": "fr_CA", | 					"locale": "fr_CA", | ||||||
|                     "dupleIso3Language": "fra", | 					"dupleIso3Language": "fra", | ||||||
|                     "dupleName": "Exemple de lieu", | 					"dupleName": "Exemple de lieu", | ||||||
|                     "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                     "venueUrl": "http://www.example.com/info-fra", | 					"venueUrl": "http://www.example.com/info-fra", | ||||||
|                     "asDuple": "fra:Exemple de lieu" | 					"asDuple": "fra:Exemple de lieu" | ||||||
|                 }, | 				}, | ||||||
|                 { | 				{ | ||||||
|                     "model_type": "VenueName", | 					"model_type": "PasspointVenueName", | ||||||
|                     "locale": "en_CA", | 					"locale": "en_CA", | ||||||
|                     "dupleIso3Language": "eng", | 					"dupleIso3Language": "eng", | ||||||
|                     "dupleName": "Example venue", | 					"dupleName": "Example passpoint_venue", | ||||||
|                     "defaultDupleSeparator": ":", | 					"defaultDupleSeparator": ":", | ||||||
|                     "venueUrl": "http://www.example.com/info-eng", | 					"venueUrl": "http://www.example.com/info-eng", | ||||||
|                     "asDuple": "eng:Example venue" | 					"asDuple": "eng:Example passpoint_venue" | ||||||
|                 } | 				} | ||||||
|             ], | 			], | ||||||
|             "venueTypeAssignment": { | 			"venueTypeAssignment": { | ||||||
|                 "model_type": "VenueTypeAssignment", | 				"model_type": "PasspointVenueTypeAssignment", | ||||||
|                 "venueDescription": "Research and Development Facility", | 				"venueDescription": "Research and Development Facility", | ||||||
|                 "venueGroupId": 2, | 				"venueGroupId": 2, | ||||||
|                 "venueTypeId": 8 | 				"venueTypeId": 8 | ||||||
|             }, | 			}, | ||||||
|             "profileType": "venue" | 			"profileType": "passpoint_venue" | ||||||
|         }, | 		}, | ||||||
|         "createdTimestamp": 1602113058725, | 		"createdTimestamp": 1606778369950, | ||||||
|         "lastModifiedTimestamp": 1602113058725, | 		"lastModifiedTimestamp": 1606778369950, | ||||||
|         "childProfileIds": [] | 		"childProfileIds": [ | ||||||
|     } | 		] | ||||||
| ] | 	} | ||||||
|  | ] | ||||||
|   | |||||||
| @@ -7,6 +7,7 @@ | |||||||
|         <listEntry value="1"/> |         <listEntry value="1"/> | ||||||
|     </listAttribute> |     </listAttribute> | ||||||
|     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/> |     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/> | ||||||
|  |     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES" value="true"/> | ||||||
|     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/> |     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/> | ||||||
|     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> |     <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> | ||||||
|     <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/> |     <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/> | ||||||
|   | |||||||
| @@ -23,7 +23,16 @@ | |||||||
| 			<artifactId>opensync-ext-interface</artifactId> | 			<artifactId>opensync-ext-interface</artifactId> | ||||||
| 			<version>${tip-wlan-cloud.release.version}</version> | 			<version>${tip-wlan-cloud.release.version}</version> | ||||||
| 		</dependency> | 		</dependency> | ||||||
|  | 		<dependency> | ||||||
|  | 			<artifactId>client-models</artifactId> | ||||||
|  | 			<groupId>com.telecominfraproject.wlan</groupId> | ||||||
|  | 			<version>${tip-wlan-cloud.release.version}</version> | ||||||
|  | 		</dependency> | ||||||
|  | 		<dependency> | ||||||
|  | 			<artifactId>customer-models</artifactId> | ||||||
|  | 			<groupId>com.telecominfraproject.wlan</groupId> | ||||||
|  | 			<version>${tip-wlan-cloud.release.version}</version> | ||||||
|  | 		</dependency> | ||||||
| 		<dependency> | 		<dependency> | ||||||
| 			<groupId>com.vmware.ovsdb</groupId> | 			<groupId>com.vmware.ovsdb</groupId> | ||||||
| 			<artifactId>ovsdb-client</artifactId> | 			<artifactId>ovsdb-client</artifactId> | ||||||
| @@ -37,12 +46,6 @@ | |||||||
| 		</dependency> | 		</dependency> | ||||||
|  |  | ||||||
| 		<!-- MQTT dependencies BEGIN --> | 		<!-- MQTT dependencies BEGIN --> | ||||||
| 		<dependency> |  | ||||||
| 			<groupId>com.telecominfraproject.wlan</groupId> |  | ||||||
| 			<artifactId>tip-wlan-opensync-protobuf</artifactId> |  | ||||||
| 			<version>${tip-wlan-cloud.release.version}</version> |  | ||||||
| 		</dependency> |  | ||||||
|  |  | ||||||
| 		<dependency> | 		<dependency> | ||||||
| 			<artifactId>service-metric-service-interface</artifactId> | 			<artifactId>service-metric-service-interface</artifactId> | ||||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | 			<groupId>com.telecominfraproject.wlan</groupId> | ||||||
|   | |||||||
| @@ -30,7 +30,7 @@ import com.telecominfraproject.wlan.opensync.external.integration.models.Opensyn | |||||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState; | import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState; | ||||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients; | import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients; | ||||||
| import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDao; | import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDao; | ||||||
| import com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities.OvsdbStringConstants; | import com.telecominfraproject.wlan.opensync.util.OvsdbStringConstants; | ||||||
| import com.telecominfraproject.wlan.opensync.util.SslUtil; | import com.telecominfraproject.wlan.opensync.util.SslUtil; | ||||||
| import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration; | import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration; | ||||||
| import com.vmware.ovsdb.callback.ConnectionCallback; | import com.vmware.ovsdb.callback.ConnectionCallback; | ||||||
| @@ -57,7 +57,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | |||||||
|     @org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.listenPort:6640}") |     @org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.listenPort:6640}") | ||||||
|     private int ovsdbListenPort; |     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; |     private long collectionIntervalSecDeviceStats; | ||||||
|  |  | ||||||
|     @org.springframework.beans.factory.annotation.Value("${tip.wlan.preventClientCnAlteration:false}") |     @org.springframework.beans.factory.annotation.Value("${tip.wlan.preventClientCnAlteration:false}") | ||||||
| @@ -104,7 +104,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | |||||||
|  |  | ||||||
|                     // successfully connected - register it in our |                     // successfully connected - register it in our | ||||||
|                     // connectedClients table |                     // connectedClients table | ||||||
|                      |  | ||||||
|                     String key = alterClientCnIfRequired(clientCn, connectNodeInfo); |                     String key = alterClientCnIfRequired(clientCn, connectNodeInfo); | ||||||
|                     ovsdbSessionMapInterface.newSession(key, ovsdbClient); |                     ovsdbSessionMapInterface.newSession(key, ovsdbClient); | ||||||
|  |  | ||||||
| @@ -132,7 +132,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | |||||||
|  |  | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  |  | ||||||
|             @Override |             @Override | ||||||
|             public void disconnected(OvsdbClient ovsdbClient) { |             public void disconnected(OvsdbClient ovsdbClient) { | ||||||
|                 String remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress(); |                 String remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress(); | ||||||
| @@ -192,31 +191,37 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | |||||||
|         // connectedClients table |         // connectedClients table | ||||||
|         String apId = alterClientCnIfRequired(clientCn, connectNodeInfo); |         String apId = alterClientCnIfRequired(clientCn, connectNodeInfo); | ||||||
|  |  | ||||||
|         LOG.debug("Client connect for AP {}", apId); |         LOG.debug("Client {} connect for AP {}", clientCn, apId); | ||||||
|  |          | ||||||
|  |         ovsdbDao.removeAllPasspointConfigs(ovsdbClient); | ||||||
|  |         ovsdbDao.removeAllSsids(ovsdbClient); // always     | ||||||
|  |         ovsdbDao.removeAllInetConfigs(ovsdbClient);        | ||||||
|  |         ovsdbDao.removeWifiRrm(ovsdbClient); | ||||||
|  |         ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always | ||||||
|  |          | ||||||
|         OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId); |         OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId); | ||||||
|  |  | ||||||
|         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) { |         if (opensyncAPConfig != null) { | ||||||
|  |              | ||||||
|             ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig); |             ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig); | ||||||
|             ovsdbDao.configureInterfaces(ovsdbClient); |  | ||||||
|             ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig); |  | ||||||
|             ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig); |             ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig); | ||||||
|  |             ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);        | ||||||
|  |             ovsdbDao.createVlanNetworkInterfaces(ovsdbClient, opensyncAPConfig); | ||||||
|  |              | ||||||
|  |             ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig); | ||||||
|             if (opensyncAPConfig.getHotspotConfig() != null) { |             if (opensyncAPConfig.getHotspotConfig() != null) { | ||||||
|                 ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig); |                 ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig); | ||||||
|             } |             } | ||||||
|  |              | ||||||
|  |             ovsdbDao.configureInterfaces(ovsdbClient); | ||||||
|  |  | ||||||
|             ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig); |             ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig); | ||||||
|             if (((ApNetworkConfiguration) opensyncAPConfig.getApProfile().getDetails()).getSyntheticClientEnabled()) { |             if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) { | ||||||
|                 ovsdbDao.enableNetworkProbeForSyntheticClient(ovsdbClient); |                 ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats); | ||||||
|             } |             } | ||||||
|  |              | ||||||
|  |         } else { | ||||||
|  |             LOG.info("No Configuration available for {}", apId); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         LOG.debug("Client connect Done"); |         LOG.debug("Client connect Done"); | ||||||
| @@ -261,20 +266,29 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | |||||||
|             LOG.warn("AP with id " + apId + " does not have a config to apply."); |             LOG.warn("AP with id " + apId + " does not have a config to apply."); | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|  |          | ||||||
|         ovsdbDao.removeAllSsids(ovsdbClient); // always |         ovsdbDao.removeAllPasspointConfigs(ovsdbClient); | ||||||
|  |         ovsdbDao.removeAllSsids(ovsdbClient); // always     | ||||||
|  |         ovsdbDao.removeAllInetConfigs(ovsdbClient);        | ||||||
|         ovsdbDao.removeWifiRrm(ovsdbClient); |         ovsdbDao.removeWifiRrm(ovsdbClient); | ||||||
|         ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always |         ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always | ||||||
|  |  | ||||||
|         ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig); |         ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig); | ||||||
|         ovsdbDao.configureInterfaces(ovsdbClient); |  | ||||||
|         ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig); |  | ||||||
|         ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig); |         ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig); | ||||||
|  |         ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);        | ||||||
|  |         ovsdbDao.createVlanNetworkInterfaces(ovsdbClient, opensyncAPConfig); | ||||||
|  |          | ||||||
|  |         ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig); | ||||||
|         if (opensyncAPConfig.getHotspotConfig() != null) { |         if (opensyncAPConfig.getHotspotConfig() != null) { | ||||||
|             ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig); |             ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig); | ||||||
|         } |         } | ||||||
|         ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig); |          | ||||||
|  |         ovsdbDao.configureInterfaces(ovsdbClient); | ||||||
|  |  | ||||||
|  |         ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig); | ||||||
|  |         if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) { | ||||||
|  |             ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats); | ||||||
|  |         } | ||||||
|         LOG.debug("Finished processConfigChanged for {}", apId); |         LOG.debug("Finished processConfigChanged for {}", apId); | ||||||
|  |  | ||||||
|     } |     } | ||||||
| @@ -354,80 +368,82 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | |||||||
|  |  | ||||||
|         CompletableFuture<TableUpdates> awCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, |         CompletableFuture<TableUpdates> awCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, | ||||||
|                 OvsdbDao.dhcpLeasedIpDbTable + "_" + key, |                 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() { |                 new MonitorCallback() { | ||||||
|  |  | ||||||
|                     @Override |                     @Override | ||||||
|                     public void update(TableUpdates tableUpdates) { |                     public void update(TableUpdates tableUpdates) { | ||||||
|                         LOG.info(OvsdbDao.dhcpLeasedIpDbTable + "_" + key + " monitor callback received {}", |                         try { | ||||||
|                                 tableUpdates); |                             LOG.info(OvsdbDao.dhcpLeasedIpDbTable + "_" + key + " monitor callback received {}", | ||||||
|  |                                     tableUpdates); | ||||||
|  |  | ||||||
|                         List<Map<String, String>> insert = new ArrayList<>(); |                             List<Map<String, String>> insert = new ArrayList<>(); | ||||||
|                         List<Map<String, String>> delete = new ArrayList<>(); |                             List<Map<String, String>> delete = new ArrayList<>(); | ||||||
|                         List<Map<String, String>> update = new ArrayList<>(); |                             List<Map<String, String>> update = 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) { |                                     if (rowUpdate.getNew() == null) { | ||||||
|                                     Map<String, String> rowMap = new HashMap<>(); |                                         Map<String, String> rowMap = new HashMap<>(); | ||||||
|  |  | ||||||
|                                     rowUpdate.getOld().getColumns().entrySet().stream().forEach(c -> { |                                         rowUpdate.getOld().getColumns().entrySet().stream().forEach(c -> { | ||||||
|                                         OvsdbDao.translateDhcpFpValueToString(c, rowMap); |                                             OvsdbDao.translateDhcpFpValueToString(c, rowMap); | ||||||
|                                     }); |                                         }); | ||||||
|  |  | ||||||
|                                     delete.add(rowMap); |                                         delete.add(rowMap); | ||||||
|                                     // delete |                                         // delete | ||||||
|                                 } else if (rowUpdate.getOld() == null) { |                                     } else if (rowUpdate.getOld() == null) { | ||||||
|                                     // insert |                                         // insert | ||||||
|                                     Map<String, String> rowMap = new HashMap<>(); |                                         Map<String, String> rowMap = new HashMap<>(); | ||||||
|  |  | ||||||
|                                     rowUpdate.getNew().getColumns().entrySet().stream().forEach(c -> { |                                         rowUpdate.getNew().getColumns().entrySet().stream().forEach(c -> { | ||||||
|                                         OvsdbDao.translateDhcpFpValueToString(c, rowMap); |                                             OvsdbDao.translateDhcpFpValueToString(c, rowMap); | ||||||
|                                     }); |                                         }); | ||||||
|  |  | ||||||
|                                     insert.add(rowMap); |                                         insert.add(rowMap); | ||||||
|                                 } else { |                                     } else { | ||||||
|  |  | ||||||
|                                     // insert |                                         // insert | ||||||
|                                     Map<String, String> rowMap = new HashMap<>(); |                                         Map<String, String> rowMap = new HashMap<>(); | ||||||
|  |  | ||||||
|                                     rowUpdate.getOld().getColumns().putAll(rowUpdate.getNew().getColumns()); |                                         rowUpdate.getOld().getColumns().putAll(rowUpdate.getNew().getColumns()); | ||||||
|                                     rowUpdate.getOld().getColumns().entrySet().stream().forEach(c -> { |                                         rowUpdate.getOld().getColumns().entrySet().stream().forEach(c -> { | ||||||
|                                         OvsdbDao.translateDhcpFpValueToString(c, rowMap); |                                             OvsdbDao.translateDhcpFpValueToString(c, rowMap); | ||||||
|                                     }); |                                         }); | ||||||
|  |  | ||||||
|                                     update.add(rowMap); |                                         update.add(rowMap); | ||||||
|  |  | ||||||
|  |                                     } | ||||||
|                                 } |                                 } | ||||||
|                             } |                             } | ||||||
|                         } |  | ||||||
|  |  | ||||||
|                         if (!insert.isEmpty()) { |                             if (!insert.isEmpty()) { | ||||||
|                             extIntegrationInterface.dhcpLeasedIpDbTableUpdate(insert, key, RowUpdateOperation.INSERT); |                                 extIntegrationInterface.dhcpLeasedIpDbTableUpdate(insert, key, RowUpdateOperation.INSERT); | ||||||
|                         } |                             } | ||||||
|  |  | ||||||
|                         if (!delete.isEmpty()) { |                             if (!delete.isEmpty()) { | ||||||
|                             extIntegrationInterface.dhcpLeasedIpDbTableUpdate(delete, key, RowUpdateOperation.DELETE); |                                 extIntegrationInterface.dhcpLeasedIpDbTableUpdate(delete, key, RowUpdateOperation.DELETE); | ||||||
|  |  | ||||||
|                         } |                             } | ||||||
|  |  | ||||||
|                         if (!update.isEmpty()) { |                             if (!update.isEmpty()) { | ||||||
|                             extIntegrationInterface.dhcpLeasedIpDbTableUpdate(update, key, RowUpdateOperation.MODIFY); |                                 extIntegrationInterface.dhcpLeasedIpDbTableUpdate(update, key, RowUpdateOperation.MODIFY); | ||||||
|  |  | ||||||
|  |                             } | ||||||
|  |                         } catch (Exception e) { | ||||||
|  |                             LOG.error("dhcpLeasedIpDbTableUpdate failed", e); | ||||||
|                         } |                         } | ||||||
|  |  | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
|  |  | ||||||
|                 }); |                 }); | ||||||
|  |  | ||||||
|         awCf.join(); |         awCf.join(); | ||||||
|  |  | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|     private void monitorCommandStateDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException { |     private void monitorCommandStateDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException { | ||||||
|  |  | ||||||
|         CompletableFuture<TableUpdates> csCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, |         CompletableFuture<TableUpdates> csCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, | ||||||
| @@ -437,87 +453,92 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | |||||||
|  |  | ||||||
|                     @Override |                     @Override | ||||||
|                     public void update(TableUpdates tableUpdates) { |                     public void update(TableUpdates tableUpdates) { | ||||||
|                         LOG.info(OvsdbDao.commandStateDbTable + "_" + key + " monitor callback received {}", |                         try { | ||||||
|                                 tableUpdates); |                             LOG.info(OvsdbDao.commandStateDbTable + "_" + key + " monitor callback received {}", | ||||||
|  |                                     tableUpdates); | ||||||
|  |  | ||||||
|                         List<Map<String, String>> insert = new ArrayList<>(); |                             List<Map<String, String>> insert = new ArrayList<>(); | ||||||
|                         List<Map<String, String>> delete = new ArrayList<>(); |                             List<Map<String, String>> delete = new ArrayList<>(); | ||||||
|                         List<Map<String, String>> update = new ArrayList<>(); |                             List<Map<String, String>> update = new ArrayList<>(); | ||||||
|  |  | ||||||
|  |                             for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) { | ||||||
|  |                                 for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) { | ||||||
|  |  | ||||||
|                         for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) { |                                     if (rowUpdate.getNew() == null) { | ||||||
|                             for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) { |                                         Map<String, String> rowMap = new HashMap<>(); | ||||||
|  |  | ||||||
|                                 if (rowUpdate.getNew() == null) { |                                         rowUpdate.getOld().getColumns().entrySet().stream().forEach(c -> { | ||||||
|                                     Map<String, String> rowMap = new HashMap<>(); |                                             rowMap.put(c.getKey(), c.getValue().toString()); | ||||||
|  |                                         }); | ||||||
|  |  | ||||||
|                                     rowUpdate.getOld().getColumns().entrySet().stream().forEach(c -> { |                                         delete.add(rowMap); | ||||||
|                                         rowMap.put(c.getKey(), c.getValue().toString()); |                                         // delete | ||||||
|                                     }); |                                     } else if (rowUpdate.getOld() == null) { | ||||||
|  |                                         // insert | ||||||
|  |                                         Map<String, String> rowMap = new HashMap<>(); | ||||||
|  |  | ||||||
|                                     delete.add(rowMap); |                                         rowUpdate.getNew().getColumns().entrySet().stream().forEach(c -> { | ||||||
|                                     // delete |                                             rowMap.put(c.getKey(), c.getValue().toString()); | ||||||
|                                 } else if (rowUpdate.getOld() == null) { |                                         }); | ||||||
|                                     // insert |  | ||||||
|                                     Map<String, String> rowMap = new HashMap<>(); |  | ||||||
|  |  | ||||||
|                                     rowUpdate.getNew().getColumns().entrySet().stream().forEach(c -> { |                                         insert.add(rowMap); | ||||||
|                                         rowMap.put(c.getKey(), c.getValue().toString()); |                                     } else { | ||||||
|                                     }); |  | ||||||
|  |  | ||||||
|                                     insert.add(rowMap); |                                         // insert | ||||||
|                                 } else { |                                         Map<String, String> rowMap = new HashMap<>(); | ||||||
|  |  | ||||||
|                                     // insert |                                         rowUpdate.getOld().getColumns().putAll(rowUpdate.getNew().getColumns()); | ||||||
|                                     Map<String, String> rowMap = new HashMap<>(); |                                         rowUpdate.getOld().getColumns().entrySet().stream().forEach(c -> { | ||||||
|  |                                             rowMap.put(c.getKey(), c.getValue().toString()); | ||||||
|  |                                         }); | ||||||
|  |  | ||||||
|                                     rowUpdate.getOld().getColumns().putAll(rowUpdate.getNew().getColumns()); |                                         update.add(rowMap); | ||||||
|                                     rowUpdate.getOld().getColumns().entrySet().stream().forEach(c -> { |  | ||||||
|                                         rowMap.put(c.getKey(), c.getValue().toString()); |  | ||||||
|                                     }); |  | ||||||
|  |  | ||||||
|                                     update.add(rowMap); |  | ||||||
|  |  | ||||||
|  |                                     } | ||||||
|                                 } |                                 } | ||||||
|                             } |                             } | ||||||
|                         } |  | ||||||
|  |  | ||||||
|                         if (!insert.isEmpty()) { |                             if (!insert.isEmpty()) { | ||||||
|                             extIntegrationInterface.commandStateDbTableUpdate(insert, key, RowUpdateOperation.INSERT); |                                 extIntegrationInterface.commandStateDbTableUpdate(insert, key, RowUpdateOperation.INSERT); | ||||||
|                         } |                             } | ||||||
|  |  | ||||||
|                         if (!delete.isEmpty()) { |                             if (!delete.isEmpty()) { | ||||||
|                             extIntegrationInterface.commandStateDbTableUpdate(delete, key, RowUpdateOperation.DELETE); |                                 extIntegrationInterface.commandStateDbTableUpdate(delete, key, RowUpdateOperation.DELETE); | ||||||
|  |  | ||||||
|                         } |                             } | ||||||
|  |  | ||||||
|                         if (!update.isEmpty()) { |                             if (!update.isEmpty()) { | ||||||
|                             extIntegrationInterface.commandStateDbTableUpdate(update, key, RowUpdateOperation.MODIFY); |                                 extIntegrationInterface.commandStateDbTableUpdate(update, key, RowUpdateOperation.MODIFY); | ||||||
|  |  | ||||||
|  |                             } | ||||||
|  |                         } catch (Exception e) { | ||||||
|  |                             LOG.error("commandStateDbTableUpdate failed", e); | ||||||
|                         } |                         } | ||||||
|  |  | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
|  |  | ||||||
|                 }); |                 }); | ||||||
|  |  | ||||||
|         csCf.join(); |         csCf.join(); | ||||||
|  |  | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private void monitorAwlanNodeDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException { |     private void monitorAwlanNodeDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException { | ||||||
|         CompletableFuture<TableUpdates> awCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, |         CompletableFuture<TableUpdates> awCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, | ||||||
|                 OvsdbDao.awlanNodeDbTable + "_" + key, |                 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() { |                 new MonitorCallback() { | ||||||
|  |  | ||||||
|                     @Override |                     @Override | ||||||
|                     public void update(TableUpdates tableUpdates) { |                     public void update(TableUpdates tableUpdates) { | ||||||
|                         LOG.info(OvsdbDao.awlanNodeDbTable + "_" + key + " monitor callback received {}", tableUpdates); |                         try { | ||||||
|  |                             LOG.info(OvsdbDao.awlanNodeDbTable + "_" + key + " monitor callback received {}", tableUpdates); | ||||||
|  |  | ||||||
|                         extIntegrationInterface.awlanNodeDbTableUpdate( |                             extIntegrationInterface.awlanNodeDbTableUpdate( | ||||||
|                                 ovsdbDao.getOpensyncAWLANNode(tableUpdates, key, ovsdbClient), key); |                                     ovsdbDao.getOpensyncAWLANNode(tableUpdates, key, ovsdbClient), key); | ||||||
|  |                         } catch (Exception e) { | ||||||
|  |                             LOG.error("awlanNodeDbTableUpdate failed",e); | ||||||
|  |                         } | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
|                 }); |                 }); | ||||||
| @@ -535,83 +556,88 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | |||||||
|                     @Override |                     @Override | ||||||
|                     public void update(TableUpdates tableUpdates) { |                     public void update(TableUpdates tableUpdates) { | ||||||
|  |  | ||||||
|                         LOG.info(OvsdbDao.wifiAssociatedClientsDbTable + "_" + key + " monitor callback received {}", |                         try { | ||||||
|                                 tableUpdates); |                             LOG.info(OvsdbDao.wifiAssociatedClientsDbTable + "_" + key + " monitor callback received {}", | ||||||
|  |                                     tableUpdates); | ||||||
|  |  | ||||||
|                         List<OpensyncWifiAssociatedClients> associatedClients = new ArrayList<>(); |                             List<OpensyncWifiAssociatedClients> associatedClients = 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.getOld() != null) && (rowUpdate.getNew() == null)) { |                                     if ((rowUpdate.getOld() != null) && (rowUpdate.getNew() == null)) { | ||||||
|                                     Row row = rowUpdate.getOld(); |                                         Row row = rowUpdate.getOld(); | ||||||
|                                     String deletedClientMac = row.getStringColumn("mac"); |                                         String deletedClientMac = row.getStringColumn("mac"); | ||||||
|                                     // take care of the deletes as we go through |                                         // take care of the deletes as we go through | ||||||
|                                     // the updates, as we want to delete before |                                         // the updates, as we want to delete before | ||||||
|                                     // adding anyway. |                                         // adding anyway. | ||||||
|                                     extIntegrationInterface.wifiAssociatedClientsDbTableDelete(deletedClientMac, key); |                                         extIntegrationInterface.wifiAssociatedClientsDbTableDelete(deletedClientMac, key); | ||||||
|                                 } else { |                                     } else { | ||||||
|                                     associatedClients.addAll( |                                         associatedClients.addAll( | ||||||
|                                             ovsdbDao.getOpensyncWifiAssociatedClients(rowUpdate, key, ovsdbClient)); |                                                 ovsdbDao.getOpensyncWifiAssociatedClients(rowUpdate, key, ovsdbClient)); | ||||||
|  |                                     } | ||||||
|                                 } |                                 } | ||||||
|  |  | ||||||
|                             } |                             } | ||||||
|  |  | ||||||
|  |                             // now address the update/add | ||||||
|  |                             extIntegrationInterface.wifiAssociatedClientsDbTableUpdate(associatedClients, key); | ||||||
|  |                         } catch (Exception e) { | ||||||
|  |                            LOG.error("wifiAssociatedClientsDbTableUpdate failed", e); | ||||||
|                         } |                         } | ||||||
|  |  | ||||||
|  |  | ||||||
|                         // now address the update/add |  | ||||||
|                         extIntegrationInterface.wifiAssociatedClientsDbTableUpdate(associatedClients, key); |  | ||||||
|  |  | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
|                 }); |                 }); | ||||||
|  |  | ||||||
|         acCf.join(); |         acCf.join(); | ||||||
|  |  | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private void monitorWifiInetStateDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException { |     private void monitorWifiInetStateDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException { | ||||||
|         CompletableFuture<TableUpdates> isCf = ovsdbClient |         CompletableFuture<TableUpdates> isCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, | ||||||
|                 .monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiInetStateDbTable + "_" + key, |                 OvsdbDao.wifiInetStateDbTable + "_" + key, | ||||||
|                         new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiInetStateDbTable, |                 new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiInetStateDbTable, | ||||||
|                                 new MonitorRequest(new MonitorSelect(false, true, true, true)))), |                         new MonitorRequest(new MonitorSelect(true, true, true, true)))), | ||||||
|                         new MonitorCallback() { |                 new MonitorCallback() { | ||||||
|  |  | ||||||
|                             @Override |                     @Override | ||||||
|                             public void update(TableUpdates tableUpdates) { |                     public void update(TableUpdates tableUpdates) { | ||||||
|                                 LOG.info(OvsdbDao.ovsdbName, |                         try { | ||||||
|                                         OvsdbDao.wifiInetStateDbTable + "_" + key + " monitor callback received {}", |                             LOG.info(OvsdbDao.ovsdbName, | ||||||
|                                         tableUpdates); |                                     OvsdbDao.wifiInetStateDbTable + "_" + key + " monitor callback received {}", | ||||||
|  |                                     tableUpdates); | ||||||
|  |  | ||||||
|                                 List<OpensyncAPInetState> inetStateInsertOrUpdate = new ArrayList<>(); |                             List<OpensyncAPInetState> inetStateInsertOrUpdate = new ArrayList<>(); | ||||||
|                                 List<OpensyncAPInetState> inetStateDelete = 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); | ||||||
|  |                         } catch (Exception e) { | ||||||
|  |                             LOG.error("wifiInetStateDbTableUpdate failed",e); | ||||||
|  |                         } | ||||||
|  |  | ||||||
|  |                     } | ||||||
|  |  | ||||||
|  |                 }); | ||||||
|         isCf.join(); |         isCf.join(); | ||||||
|  |  | ||||||
|     } |     } | ||||||
| @@ -620,16 +646,20 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | |||||||
|  |  | ||||||
|         CompletableFuture<TableUpdates> rsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, |         CompletableFuture<TableUpdates> rsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, | ||||||
|                 OvsdbDao.wifiRadioStateDbTable + "_" + key, |                 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() { |                 new MonitorCallback() { | ||||||
|  |  | ||||||
|                     @Override |                     @Override | ||||||
|                     public void update(TableUpdates tableUpdates) { |                     public void update(TableUpdates tableUpdates) { | ||||||
|                         LOG.info(OvsdbDao.wifiRadioStateDbTable + "_" + key + " monitor callback received {}", |                         try { | ||||||
|                                 tableUpdates); |                             LOG.info(OvsdbDao.wifiRadioStateDbTable + "_" + key + " monitor callback received {}", | ||||||
|  |                                     tableUpdates); | ||||||
|  |  | ||||||
|                         extIntegrationInterface.wifiRadioStatusDbTableUpdate( |                             extIntegrationInterface.wifiRadioStatusDbTableUpdate( | ||||||
|                                 ovsdbDao.getOpensyncAPRadioState(tableUpdates, key, ovsdbClient), key); |                                     ovsdbDao.getOpensyncAPRadioState(tableUpdates, key, ovsdbClient), key); | ||||||
|  |                         } catch (Exception e) { | ||||||
|  |                             LOG.error("wifiRadioStatusDbTableUpdate failed",e); | ||||||
|  |                         } | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
|                 }); |                 }); | ||||||
| @@ -641,46 +671,49 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | |||||||
|  |  | ||||||
|         CompletableFuture<TableUpdates> vsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, |         CompletableFuture<TableUpdates> vsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, | ||||||
|                 OvsdbDao.wifiVifStateDbTable + "_" + key, |                 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() { |                 new MonitorCallback() { | ||||||
|  |  | ||||||
|                     @Override |                     @Override | ||||||
|                     public void update(TableUpdates tableUpdates) { |                     public void update(TableUpdates tableUpdates) { | ||||||
|                         LOG.info(OvsdbDao.wifiVifStateDbTable + "_" + key + " monitor callback received {}", |                         try { | ||||||
|                                 tableUpdates); |                             LOG.info(OvsdbDao.wifiVifStateDbTable + "_" + key + " monitor callback received {}", | ||||||
|  |                                     tableUpdates); | ||||||
|  |  | ||||||
|                         List<OpensyncAPVIFState> vifsToDelete = new ArrayList<>(); |                             List<OpensyncAPVIFState> vifsToDelete = new ArrayList<>(); | ||||||
|                         List<OpensyncAPVIFState> vifsToInsertOrUpdate = new ArrayList<>(); |                             List<OpensyncAPVIFState> vifsToInsertOrUpdate = 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) { |                                     if (rowUpdate.getNew() == null) { | ||||||
|                                     // this is a deletion |                                         // this is a deletion | ||||||
|                                     vifsToDelete.addAll( |                                         vifsToDelete.addAll( | ||||||
|                                             ovsdbDao.getOpensyncApVifStateForRowUpdate(rowUpdate, key, ovsdbClient)); |                                                 ovsdbDao.getOpensyncApVifStateForRowUpdate(rowUpdate, key, ovsdbClient)); | ||||||
|  |  | ||||||
|                                 } else { |                                     } else { | ||||||
|                                     // either an insert or |                                         // either an insert or | ||||||
|                                     // mutuate/update |                                         // mutuate/update | ||||||
|                                     vifsToInsertOrUpdate.addAll( |                                         vifsToInsertOrUpdate.addAll( | ||||||
|                                             ovsdbDao.getOpensyncApVifStateForRowUpdate(rowUpdate, key, ovsdbClient)); |                                                 ovsdbDao.getOpensyncApVifStateForRowUpdate(rowUpdate, key, ovsdbClient)); | ||||||
|  |  | ||||||
|  |                                     } | ||||||
|  |  | ||||||
|                                 } |                                 } | ||||||
|  |  | ||||||
|                             } |                                 // delete first, if required | ||||||
|  |                                 if (!vifsToDelete.isEmpty()) { | ||||||
|  |                                     extIntegrationInterface.wifiVIFStateDbTableDelete(vifsToDelete, key); | ||||||
|  |                                 } | ||||||
|  |                                 if (!vifsToInsertOrUpdate.isEmpty()) { | ||||||
|  |                                     extIntegrationInterface.wifiVIFStateDbTableUpdate(vifsToInsertOrUpdate, key); | ||||||
|  |                                 } | ||||||
|  |  | ||||||
|                             // delete first, if required |  | ||||||
|                             if (!vifsToDelete.isEmpty()) { |  | ||||||
|                                 extIntegrationInterface.wifiVIFStateDbTableDelete(vifsToDelete, key); |  | ||||||
|                             } |                             } | ||||||
|                             if (!vifsToInsertOrUpdate.isEmpty()) { |                         } catch (Exception e) { | ||||||
|                                 extIntegrationInterface.wifiVIFStateDbTableUpdate(vifsToInsertOrUpdate, key); |                             LOG.error("wifiVIFStateDbTableUpdate failed", e); | ||||||
|                             } |  | ||||||
|  |  | ||||||
|                         } |                         } | ||||||
|  |  | ||||||
|  |  | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
|                 }); |                 }); | ||||||
| @@ -723,14 +756,10 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | |||||||
|     @Override |     @Override | ||||||
|     public String processFirmwareFlash(String apId, String firmwareVersion, String username) { |     public String processFirmwareFlash(String apId, String firmwareVersion, String username) { | ||||||
|         OvsdbSession session = ovsdbSessionMapInterface.getSession(apId); |         OvsdbSession session = ovsdbSessionMapInterface.getSession(apId); | ||||||
|         OvsdbClient ovsdbClient = session.getOvsdbClient(); |  | ||||||
|         try { |         try { | ||||||
|             ovsdbDao.configureFirmwareFlash(session.getOvsdbClient(), apId, firmwareVersion, username); |             ovsdbDao.configureFirmwareFlash(session.getOvsdbClient(), apId, firmwareVersion, username); | ||||||
|         } catch (Exception e) { |         } catch (Exception e) { | ||||||
|             LOG.error("Failed to flash firmware for " + apId + " " + e.getLocalizedMessage()); |             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(); |             return "Failed to flash firmware for " + apId + " " + e.getLocalizedMessage(); | ||||||
|  |  | ||||||
|         } |         } | ||||||
| @@ -839,7 +868,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { | |||||||
|             return "failed to trigger a factory reset of AP " + apId; |             return "failed to trigger a factory reset of AP " + apId; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public String alterClientCnIfRequired(String clientCn, ConnectNodeInfo connectNodeInfo) { |     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; | package com.telecominfraproject.wlan.opensync.ovsdb.dao.models; | ||||||
|  |  | ||||||
|  | import java.util.Map; | ||||||
|  |  | ||||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||||
|  |  | ||||||
| public class WifiInetConfigInfo implements Cloneable{ | public class WifiInetConfigInfo implements Cloneable{ | ||||||
| @@ -17,22 +19,126 @@ public class WifiInetConfigInfo implements Cloneable{ | |||||||
| 	public String inetAddr; | 	public String inetAddr; | ||||||
| 	public int mtu; | 	public int mtu; | ||||||
| 	public String netmask; | 	public String netmask; | ||||||
|  | 	public String gateway; | ||||||
|  | 	public Map<String,String> dns; | ||||||
|  | 	public Map<String,String> dhcpd; | ||||||
|  |  | ||||||
|      |      | ||||||
|     @Override |     @Override | ||||||
|     public WifiInetConfigInfo clone() { |     public WifiInetConfigInfo clone() { | ||||||
|         try { |         try { | ||||||
|             WifiInetConfigInfo ret = (WifiInetConfigInfo)super.clone(); |             WifiInetConfigInfo ret = (WifiInetConfigInfo)super.clone(); | ||||||
|  |             if (dns != null) ret.dns = this.dns; | ||||||
|  |             if (dhcpd != null) ret.dhcpd = this.dhcpd; | ||||||
|             return ret; |             return ret; | ||||||
|         }catch(CloneNotSupportedException e) {                 |         }catch(CloneNotSupportedException e) {                 | ||||||
|             throw new IllegalStateException("Cannot clone ", e); |             throw new IllegalStateException("Cannot clone ", e); | ||||||
|         }             |         }             | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |      | ||||||
|     @Override |     @Override | ||||||
|     public String toString() { | 	public int hashCode() { | ||||||
|         return String.format( | 		final int prime = 31; | ||||||
|                 "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]", | 		int result = 1; | ||||||
|                 nat, broadcast, enabled, ifName, ifType, ipAssignScheme, network, uuid,inetAddr, mtu, netmask, vlanId); | 		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.HashMap; | ||||||
| import java.util.HashSet; | import java.util.HashSet; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
|  | import java.util.Objects; | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
|  |  | ||||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||||
| @@ -44,6 +45,30 @@ public class WifiRadioConfigInfo implements Cloneable { | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	@Override | 	@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() { | 	public String toString() { | ||||||
| 		return String.format( | 		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]", | 				"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,13 +1,18 @@ | |||||||
| package com.telecominfraproject.wlan.opensync.ovsdb.dao.models; | package com.telecominfraproject.wlan.opensync.ovsdb.dao.models; | ||||||
|  |  | ||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
|  | import java.util.HashSet; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
|  | import java.util.Objects; | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
|  |  | ||||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||||
|  |  | ||||||
| public class WifiVifConfigInfo implements Cloneable{ | public class WifiVifConfigInfo implements Cloneable { | ||||||
|      |  | ||||||
|  |     // multi_ap | ||||||
|  |     // {"key":{"enum":["set",["backhaul_bss","backhaul_sta","fronthaul_backhaul_bss","fronthaul_bss","none"]],"type":"string"},"min":0} | ||||||
|  |  | ||||||
|     public String bridge; |     public String bridge; | ||||||
|     public int btm; |     public int btm; | ||||||
|     public boolean enabled; |     public boolean enabled; | ||||||
| @@ -20,36 +25,109 @@ public class WifiVifConfigInfo implements Cloneable{ | |||||||
|     public String ssidBroadcast; |     public String ssidBroadcast; | ||||||
|     public boolean uapsdEnable; |     public boolean uapsdEnable; | ||||||
|     public int vifRadioIdx; |     public int vifRadioIdx; | ||||||
|     public Map<String,String> security; |     public Map<String, String> security; | ||||||
|              |     public Map<String, String> captivePortal; | ||||||
|  |     public Set<String> captiveAllowlist; | ||||||
|  |     public Map<String, String> customOptions; | ||||||
|  |     public Map<String, String> meshOptions; | ||||||
|  |  | ||||||
|     public Uuid uuid; |     public Uuid uuid; | ||||||
|     public int vlanId; |     public int vlanId; | ||||||
| 	public Boolean apBridge; |     public Boolean apBridge; | ||||||
| 	public String minHwMode; |     public String minHwMode; | ||||||
| 	public Set<String> macList; |     public Set<String> macList; | ||||||
| 	public String macListType; |     public String macListType; | ||||||
|     public int ftMobilityDomain; |     public int ftMobilityDomain; | ||||||
|      |     public boolean wpsPbc; | ||||||
|  |     public boolean wps; | ||||||
|  |     public boolean wds; | ||||||
|  |     public String wpsPbcKeyId; | ||||||
|  |     public boolean mcast2ucast; | ||||||
|  |     public boolean dynamicBeacon; | ||||||
|  |     public int vifDbgLvl; | ||||||
|  |     public Set<Uuid> credentialConfigs; | ||||||
|  |     public String parent; | ||||||
|  |     public String multiAp; | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public WifiVifConfigInfo clone() { |     public WifiVifConfigInfo clone() { | ||||||
|         try { |         try { | ||||||
|             WifiVifConfigInfo ret = (WifiVifConfigInfo)super.clone(); |             WifiVifConfigInfo ret = (WifiVifConfigInfo) super.clone(); | ||||||
|              |  | ||||||
|             if(security!=null) { |             if (security != null) { | ||||||
|                 ret.security = new HashMap<>(this.security); |                 ret.security = new HashMap<>(this.security); | ||||||
|             } |             } | ||||||
|  |             if (macList != null) { | ||||||
|  |                 ret.macList = new HashSet<>(this.macList); | ||||||
|  |             } | ||||||
|  |             if (captivePortal != null) { | ||||||
|  |                 ret.captivePortal = new HashMap<>(this.captivePortal); | ||||||
|  |             } | ||||||
|  |             if (captiveAllowlist != null) { | ||||||
|  |                 ret.captiveAllowlist = new HashSet<>(this.captiveAllowlist); | ||||||
|  |             } | ||||||
|  |             if (customOptions != null) { | ||||||
|  |                 ret.customOptions = new HashMap<>(this.customOptions); | ||||||
|  |             } | ||||||
|  |             if (meshOptions != null) { | ||||||
|  |                 ret.meshOptions = new HashMap<>(this.meshOptions); | ||||||
|  |             } | ||||||
|  |             if (credentialConfigs != null) { | ||||||
|  |                 ret.credentialConfigs = new HashSet<>(this.credentialConfigs); | ||||||
|  |             } | ||||||
|             return ret; |             return ret; | ||||||
|         }catch(CloneNotSupportedException e) {                 |         } catch (CloneNotSupportedException e) { | ||||||
|             throw new IllegalStateException("Cannot clone ", e); |             throw new IllegalStateException("Cannot clone ", e); | ||||||
|         }             |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public int hashCode() { | ||||||
|  |         return Objects.hash(apBridge, bridge, btm, captiveAllowlist, captivePortal, credentialConfigs, customOptions, | ||||||
|  |                 dynamicBeacon, enabled, ftMobilityDomain, ftPsk, groupRekey, ifName, macList, macListType, mcast2ucast, | ||||||
|  |                 meshOptions, minHwMode, mode, multiAp, parent, rrm, security, ssid, ssidBroadcast, uapsdEnable, uuid, | ||||||
|  |                 vifDbgLvl, vifRadioIdx, vlanId, wds, wps, wpsPbc, wpsPbcKeyId); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public boolean equals(Object obj) { | ||||||
|  |         if (this == obj) | ||||||
|  |             return true; | ||||||
|  |         if (obj == null) | ||||||
|  |             return false; | ||||||
|  |         if (getClass() != obj.getClass()) | ||||||
|  |             return false; | ||||||
|  |         WifiVifConfigInfo other = (WifiVifConfigInfo) obj; | ||||||
|  |         return Objects.equals(apBridge, other.apBridge) && Objects.equals(bridge, other.bridge) && btm == other.btm | ||||||
|  |                 && Objects.equals(captiveAllowlist, other.captiveAllowlist) | ||||||
|  |                 && Objects.equals(captivePortal, other.captivePortal) | ||||||
|  |                 && Objects.equals(credentialConfigs, other.credentialConfigs) | ||||||
|  |                 && Objects.equals(customOptions, other.customOptions) && dynamicBeacon == other.dynamicBeacon | ||||||
|  |                 && enabled == other.enabled && ftMobilityDomain == other.ftMobilityDomain && ftPsk == other.ftPsk | ||||||
|  |                 && groupRekey == other.groupRekey && Objects.equals(ifName, other.ifName) | ||||||
|  |                 && Objects.equals(macList, other.macList) && Objects.equals(macListType, other.macListType) | ||||||
|  |                 && mcast2ucast == other.mcast2ucast && Objects.equals(meshOptions, other.meshOptions) | ||||||
|  |                 && Objects.equals(minHwMode, other.minHwMode) && Objects.equals(mode, other.mode) | ||||||
|  |                 && Objects.equals(multiAp, other.multiAp) && Objects.equals(parent, other.parent) && rrm == other.rrm | ||||||
|  |                 && Objects.equals(security, other.security) && Objects.equals(ssid, other.ssid) | ||||||
|  |                 && Objects.equals(ssidBroadcast, other.ssidBroadcast) && uapsdEnable == other.uapsdEnable | ||||||
|  |                 && Objects.equals(uuid, other.uuid) && vifDbgLvl == other.vifDbgLvl && vifRadioIdx == other.vifRadioIdx | ||||||
|  |                 && vlanId == other.vlanId && wds == other.wds && wps == other.wps && wpsPbc == other.wpsPbc | ||||||
|  |                 && Objects.equals(wpsPbcKeyId, other.wpsPbcKeyId); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public String toString() { |     public String toString() { | ||||||
|         return String.format( |         return "WifiVifConfigInfo [bridge=" + bridge + ", btm=" + btm + ", enabled=" + enabled + ", ftPsk=" + ftPsk | ||||||
|                 "WifiVifConfigInfo [bridge=%s, ap_bridge=%s, btm=%s, enabled=%s, ftPsk=%s, ftMobilityDomain=%s, groupRekey=%s, ifName=%s, minHwMode=%s, mode=%s, rrm=%s, ssid=%s, ssidBroadcast=%s, uapsdEnable=%s, vifRadioIdx=%s, security=%s, uuid=%s, vlanId=%s, macList=%s, macListType=%s]", |                 + ", groupRekey=" + groupRekey + ", ifName=" + ifName + ", mode=" + mode + ", rrm=" + rrm + ", ssid=" | ||||||
|                 bridge, apBridge, btm, enabled, ftPsk, ftMobilityDomain, groupRekey, ifName, minHwMode, mode, rrm, ssid, ssidBroadcast, uapsdEnable, |                 + ssid + ", ssidBroadcast=" + ssidBroadcast + ", uapsdEnable=" + uapsdEnable + ", vifRadioIdx=" | ||||||
|                 vifRadioIdx, security, uuid, vlanId, macList, macListType); |                 + vifRadioIdx + ", security=" + security + ", captivePortal=" + captivePortal + ", captiveAllowlist=" | ||||||
|  |                 + captiveAllowlist + ", customOptions=" + customOptions + ", meshOptions=" + meshOptions + ", uuid=" | ||||||
|  |                 + uuid + ", vlanId=" + vlanId + ", apBridge=" + apBridge + ", minHwMode=" + minHwMode + ", macList=" | ||||||
|  |                 + macList + ", macListType=" + macListType + ", ftMobilityDomain=" + ftMobilityDomain + ", wpsPbc=" | ||||||
|  |                 + wpsPbc + ", wps=" + wps + ", wds=" + wds + ", wpsPbcKeyId=" + wpsPbcKeyId + ", mcast2ucast=" | ||||||
|  |                 + mcast2ucast + ", dynamicBeacon=" + dynamicBeacon + ", vifDbgLvl=" + vifDbgLvl + ", credentialConfigs=" | ||||||
|  |                 + credentialConfigs + ", parent=" + parent + ", multiAp=" + multiAp + "]"; | ||||||
|     } |     } | ||||||
|      |  | ||||||
| } | } | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| package com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities; | package com.telecominfraproject.wlan.opensync.util; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| public class OvsdbStringConstants { | public class OvsdbStringConstants { | ||||||
| @@ -1,11 +1,11 @@ | |||||||
| package com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities; | package com.telecominfraproject.wlan.opensync.util; | ||||||
| 
 | 
 | ||||||
| import com.telecominfraproject.wlan.client.models.ClientType; | import com.telecominfraproject.wlan.client.models.ClientType; | ||||||
| import com.telecominfraproject.wlan.core.model.equipment.RadioType; | import com.telecominfraproject.wlan.core.model.equipment.RadioType; | ||||||
| import com.telecominfraproject.wlan.core.model.equipment.SecurityType; | import com.telecominfraproject.wlan.core.model.equipment.SecurityType; | ||||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo; | import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo; | ||||||
| import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDeviceType; | import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDeviceType; | ||||||
| import com.telecominfraproject.wlan.profile.metrics.ChannelUtilizationSurveyType; | import com.telecominfraproject.wlan.profile.metrics.ServiceMetricsChannelUtilizationSurveyType; | ||||||
| import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError; | import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError; | ||||||
| import com.telecominfraproject.wlan.servicemetric.models.ServiceMetricDataType; | import com.telecominfraproject.wlan.servicemetric.models.ServiceMetricDataType; | ||||||
| import com.telecominfraproject.wlan.status.equipment.models.EquipmentUpgradeState; | import com.telecominfraproject.wlan.status.equipment.models.EquipmentUpgradeState; | ||||||
| @@ -83,7 +83,7 @@ public class OvsdbToWlanCloudTypeMappingUtility { | |||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public static String getOvsdbStatsSurveyTypeFromProfileSurveyType(ChannelUtilizationSurveyType surveyType) { |     public static String getOvsdbStatsSurveyTypeFromProfileSurveyType(ServiceMetricsChannelUtilizationSurveyType surveyType) { | ||||||
|         switch (surveyType) { |         switch (surveyType) { | ||||||
|             case FULL: |             case FULL: | ||||||
|                 return "full"; |                 return "full"; | ||||||
| @@ -1,11 +1,15 @@ | |||||||
| package com.telecominfraproject.wlan.opensync.ovsdb.dao; | package com.telecominfraproject.wlan.opensync.ovsdb.dao; | ||||||
|  |  | ||||||
|  | import static org.junit.Assert.assertFalse; | ||||||
| import static org.junit.Assert.assertNotNull; | import static org.junit.Assert.assertNotNull; | ||||||
| import static org.junit.Assert.assertNull; | import static org.junit.Assert.assertNull; | ||||||
|  |  | ||||||
| import java.io.File; | import java.net.InetAddress; | ||||||
|  | import java.util.ArrayList; | ||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  | import java.util.Set; | ||||||
| import java.util.UUID; | import java.util.UUID; | ||||||
| import java.util.concurrent.CompletableFuture; | import java.util.concurrent.CompletableFuture; | ||||||
| import java.util.concurrent.TimeUnit; | import java.util.concurrent.TimeUnit; | ||||||
| @@ -27,21 +31,19 @@ import org.springframework.context.annotation.Configuration; | |||||||
| import org.springframework.context.annotation.Import; | import org.springframework.context.annotation.Import; | ||||||
| import org.springframework.test.context.ActiveProfiles; | import org.springframework.test.context.ActiveProfiles; | ||||||
| import org.springframework.test.context.junit4.SpringRunner; | 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.ImmutableList; | ||||||
| import com.google.common.collect.ImmutableMap; | 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.ConnectNodeInfo; | ||||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPInetState; | import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig; | ||||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState; | import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPHotspot20Config; | ||||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState; | 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.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.Atom; | ||||||
| import com.vmware.ovsdb.protocol.operation.notation.Row; | import com.vmware.ovsdb.protocol.operation.notation.Row; | ||||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | 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.InsertResult; | ||||||
| import com.vmware.ovsdb.protocol.operation.result.OperationResult; | import com.vmware.ovsdb.protocol.operation.result.OperationResult; | ||||||
| import com.vmware.ovsdb.protocol.operation.result.SelectResult; | 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; | import com.vmware.ovsdb.service.OvsdbClient; | ||||||
|  |  | ||||||
| @RunWith(SpringRunner.class) | @RunWith(SpringRunner.class) | ||||||
| @ActiveProfiles(profiles = { "integration_test", }) // NOTE: these profiles will | @ActiveProfiles(profiles = { "integration_test", }) // NOTE: these profiles will | ||||||
|                                                     // be ADDED to the list of | // be ADDED to the list of | ||||||
|                                                     // active profiles | // active profiles | ||||||
| @SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = OvsdbDaoTest.class) | @SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = OvsdbDaoTest.class) | ||||||
| @Import(value = { OvsdbDao.class, OvsdbDaoTest.Config.class, | @Import(value = { OvsdbDao.class, OvsdbDaoTest.Config.class, | ||||||
|  |  | ||||||
| }) | }) | ||||||
| public class OvsdbDaoTest { | public class OvsdbDaoTest { | ||||||
|  |  | ||||||
|  |     static final int DEFAULT_CUSTOMER_ID = 1; | ||||||
|  |  | ||||||
|  |     private static final long HOTSPOT_CONFIG_ID = 1; | ||||||
|  |     private static final long HOTSPOT_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_TYPE = "bridge"; | ||||||
|  |  | ||||||
|     private static final String LAN_IF_NAME = "br-lan"; |     private static final String LAN_IF_NAME = "br-lan"; | ||||||
| @@ -97,9 +111,12 @@ public class OvsdbDaoTest { | |||||||
|     @Mock(answer = Answers.RETURNS_MOCKS) |     @Mock(answer = Answers.RETURNS_MOCKS) | ||||||
|     OvsdbClient ovsdbClient; |     OvsdbClient ovsdbClient; | ||||||
|  |  | ||||||
|     @Mock |     @Mock(answer = Answers.RETURNS_MOCKS) | ||||||
|     CompletableFuture<OperationResult[]> futureResult; |     CompletableFuture<OperationResult[]> futureResult; | ||||||
|  |  | ||||||
|  |     @Mock(answer = Answers.RETURNS_MOCKS) | ||||||
|  |     CompletableFuture<OperationResult[]> selectionFutureResult; | ||||||
|  |  | ||||||
|     @Autowired |     @Autowired | ||||||
|     OvsdbDao ovsdbDao; |     OvsdbDao ovsdbDao; | ||||||
|  |  | ||||||
| @@ -108,6 +125,7 @@ public class OvsdbDaoTest { | |||||||
|     @Configuration |     @Configuration | ||||||
|     // @PropertySource({ "classpath:persistence-${envTarget:dev}.properties" }) |     // @PropertySource({ "classpath:persistence-${envTarget:dev}.properties" }) | ||||||
|     static class Config { |     static class Config { | ||||||
|  |  | ||||||
|         @Bean |         @Bean | ||||||
|         public OvsdbDao ovsdbDao() { |         public OvsdbDao ovsdbDao() { | ||||||
|             return new OvsdbDao(); |             return new OvsdbDao(); | ||||||
| @@ -124,6 +142,264 @@ public class OvsdbDaoTest { | |||||||
|         mockito.finishMocking(); |         mockito.finishMocking(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @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(13)).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 |     @Test | ||||||
|     public void testGetConnectNodeInfo() throws Exception { |     public void testGetConnectNodeInfo() throws Exception { | ||||||
|  |  | ||||||
| @@ -207,7 +483,7 @@ public class OvsdbDaoTest { | |||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Test |     @Test(expected = RuntimeException.class) | ||||||
|     public void testFailGetConnectNodeInfo() throws Exception { |     public void testFailGetConnectNodeInfo() throws Exception { | ||||||
|  |  | ||||||
|         Mockito.when(ovsdbClient.transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList())).thenReturn(futureResult); |         Mockito.when(ovsdbClient.transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList())).thenReturn(futureResult); | ||||||
| @@ -387,94 +663,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 |     @Test | ||||||
|     public void testObsdbDaoEnableNetworkProbe() throws Exception { |     public void testObsdbDaoEnableNetworkProbe() throws Exception { | ||||||
|  |  | ||||||
| @@ -521,48 +709,7 @@ public class OvsdbDaoTest { | |||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Test |     static Row[] hs20Icons = { | ||||||
|     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); |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|  |     }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -0,0 +1,548 @@ | |||||||
|  | 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.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); | ||||||
|  |         profileSsidPsk.setId(1L); | ||||||
|  |         profileSsidOsu = createPasspointOsuSsid(customerId); | ||||||
|  |         profileSsidOsu.setId(2L); | ||||||
|  |  | ||||||
|  |         passpointOperatorProfile = createPasspointOperatorProfile(customerId); | ||||||
|  |         passpointOperatorProfile.setId(3L); | ||||||
|  |         passpointVenueProfile = createPasspointVenueProfile(customerId); | ||||||
|  |         passpointVenueProfile.setId(4L); | ||||||
|  |         hotspot20IdProviderProfile = createPasspointIdProviderProfile(customerId, hotspot20IdProviderProfile, | ||||||
|  |                 "TipWlan-Hotspot20-OSU-Provider", "Rogers AT&T Wireless", "Canada", "ca", 302, 720, "rogers.com", 1); | ||||||
|  |         hotspot20IdProviderProfile.setId(5L); | ||||||
|  |         hotspot20IdProviderProfile2 = createPasspointIdProviderProfile(customerId, hotspot20IdProviderProfile2, | ||||||
|  |                 "TipWlan-Hotspot20-OSU-Provider-2", "Telus Mobility", "Canada", "ca", 302, 220, "telus.com", 1); | ||||||
|  |         hotspot20IdProviderProfile2.setId(6L); | ||||||
|  |         profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile.getId()); | ||||||
|  |         profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile2.getId()); | ||||||
|  |  | ||||||
|  |         passpointHotspotConfig = createPasspointHotspotConfig(customerId, hotspot20IdProviderProfile2, | ||||||
|  |                 hotspot20IdProviderProfile, passpointOperatorProfile, passpointVenueProfile, profileSsidPsk, | ||||||
|  |                 profileSsidOsu); | ||||||
|  |         passpointHotspotConfig.setId(7L); | ||||||
|  |  | ||||||
|  |         hotspotProfileAp = createPasspointApProfile(customerId, profileSsidPsk, profileSsidOsu); | ||||||
|  |         hotspotProfileAp.setId(8L); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     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<Long> providerIds = new HashSet<>(); | ||||||
|  |         providerIds.add(hotspot20IdProviderProfile.getId()); | ||||||
|  |         providerIds.add(hotspot20IdProviderProfile2.getId()); | ||||||
|  |         ((PasspointProfile) passpointHotspotConfig.getDetails()).setPasspointOsuProviderProfileIds(providerIds); | ||||||
|  |         ((PasspointProfile) passpointHotspotConfig.getDetails()) | ||||||
|  |                 .setPasspointOperatorProfileId(passpointOperatorProfile.getId()); | ||||||
|  |         ((PasspointProfile) passpointHotspotConfig.getDetails()) | ||||||
|  |                 .setPasspointVenueProfileId(passpointVenueProfile.getId()); | ||||||
|  |         ((PasspointProfile) passpointHotspotConfig.getDetails()).setOsuSsidProfileId(profileSsidOpen.getId()); | ||||||
|  |         profileSsidPsk.getChildProfileIds().add(passpointHotspotConfig.getId()); | ||||||
|  |         ((PasspointProfile) passpointHotspotConfig.getDetails()) | ||||||
|  |                 .setAssociatedAccessSsidProfileIds(List.of(profileSsidPsk.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); | ||||||
|  |         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