mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-01 11:07:49 +00:00
Compare commits
1 Commits
release/v1
...
release-te
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aac02cb1c9 |
@@ -1,5 +1,5 @@
|
|||||||
# wlan-opensync-wifi-controller
|
# wlan-opensync-wifi-controller #TESTING
|
||||||
|
|
||||||
Opensync Wifi Controller - accepts connections from the access points, pushes configuration, reads metrics from the topics on MQTT broker.
|
Opensync Wifi Controller - accepts connections from the access points, pushes configuration, reads metrics from the topics on MQTT broker.
|
||||||
|
|
||||||
Components in this repository depend on other wlan-cloud repositories.
|
Components in this repository depend on other wlan-cloud repositories.
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
<relativePath>../../wlan-cloud-root</relativePath>
|
<relativePath>../../wlan-cloud-root</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>opensync-ext-cloud</artifactId>
|
<artifactId>opensync-ext-cloud</artifactId>
|
||||||
@@ -14,126 +16,108 @@
|
|||||||
<!-- <dependency> -->
|
<!-- <dependency> -->
|
||||||
<!-- <groupId>com.telecominfraproject.wlan</groupId> -->
|
<!-- <groupId>com.telecominfraproject.wlan</groupId> -->
|
||||||
<!-- <artifactId>opensync-ext-interface</artifactId> -->
|
<!-- <artifactId>opensync-ext-interface</artifactId> -->
|
||||||
<!-- <version>0.0.1-SNAPSHOT</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>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>base-client</artifactId>
|
<artifactId>base-client</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>equipment-gateway-models</artifactId>
|
<artifactId>equipment-gateway-models</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</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>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>location-service-interface</artifactId>
|
<artifactId>location-service-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>equipment-service-interface</artifactId>
|
<artifactId>equipment-service-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>profile-service-interface</artifactId>
|
<artifactId>profile-service-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>portal-user-service-interface</artifactId>
|
<artifactId>portal-user-service-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</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>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<artifactId>service-metric-models</artifactId>
|
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>system-event-service-interface</artifactId>
|
<artifactId>system-event-service-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<artifactId>system-event-models</artifactId>
|
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>alarm-service-interface</artifactId>
|
<artifactId>alarm-service-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>status-service-interface</artifactId>
|
<artifactId>status-service-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>client-service-interface</artifactId>
|
<artifactId>client-service-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<artifactId>client-models</artifactId>
|
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>routing-service-interface</artifactId>
|
<artifactId>routing-service-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>firmware-service-interface</artifactId>
|
<artifactId>firmware-service-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>manufacturer-service-interface</artifactId>
|
<artifactId>manufacturer-service-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>cloud-event-dispatcher-interface</artifactId>
|
<artifactId>cloud-event-dispatcher-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -32,7 +32,6 @@ import com.telecominfraproject.wlan.core.model.service.GatewayType;
|
|||||||
import com.telecominfraproject.wlan.core.model.service.ServiceInstanceInformation;
|
import com.telecominfraproject.wlan.core.model.service.ServiceInstanceInformation;
|
||||||
import com.telecominfraproject.wlan.core.server.container.ConnectorProperties;
|
import com.telecominfraproject.wlan.core.server.container.ConnectorProperties;
|
||||||
import com.telecominfraproject.wlan.datastore.exceptions.DsEntityNotFoundException;
|
import com.telecominfraproject.wlan.datastore.exceptions.DsEntityNotFoundException;
|
||||||
import com.telecominfraproject.wlan.equipment.models.CellSizeAttributes;
|
|
||||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWBaseCommand;
|
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWBaseCommand;
|
||||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWBlinkRequest;
|
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWBlinkRequest;
|
||||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWChangeRedirectorHost;
|
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWChangeRedirectorHost;
|
||||||
@@ -43,7 +42,6 @@ import com.telecominfraproject.wlan.equipmentgateway.models.CEGWConfigChangeNoti
|
|||||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWFirmwareDownloadRequest;
|
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWFirmwareDownloadRequest;
|
||||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWFirmwareFlashRequest;
|
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWFirmwareFlashRequest;
|
||||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWNewChannelRequest;
|
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWNewChannelRequest;
|
||||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWCellSizeAttributesRequest;
|
|
||||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWRadioResetRequest;
|
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWRadioResetRequest;
|
||||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWRebootRequest;
|
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWRebootRequest;
|
||||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWRouteCheck;
|
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWRouteCheck;
|
||||||
@@ -207,9 +205,6 @@ public class OpensyncCloudGatewayController {
|
|||||||
case NewChannelRequest:
|
case NewChannelRequest:
|
||||||
ret.add(sendNewChannelRequest(session, (CEGWNewChannelRequest) command));
|
ret.add(sendNewChannelRequest(session, (CEGWNewChannelRequest) command));
|
||||||
break;
|
break;
|
||||||
case CellSizeAttributesRequest:
|
|
||||||
ret.add(sendCellSizeRequest(session, (CEGWCellSizeAttributesRequest) command));
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
LOG.warn("[{}] Failed to deliver command {}, unsupported command type", inventoryId, command);
|
LOG.warn("[{}] Failed to deliver command {}, unsupported command type", inventoryId, command);
|
||||||
ret.add(new EquipmentCommandResponse(
|
ret.add(new EquipmentCommandResponse(
|
||||||
@@ -301,10 +296,6 @@ public class OpensyncCloudGatewayController {
|
|||||||
private EquipmentCommandResponse sendNewChannelRequest(OvsdbSession session, CEGWNewChannelRequest command) {
|
private EquipmentCommandResponse sendNewChannelRequest(OvsdbSession session, CEGWNewChannelRequest command) {
|
||||||
return sendMessage(session, command.getInventoryId(), command);
|
return sendMessage(session, command.getInventoryId(), command);
|
||||||
}
|
}
|
||||||
|
|
||||||
private EquipmentCommandResponse sendCellSizeRequest(OvsdbSession session, CEGWCellSizeAttributesRequest command) {
|
|
||||||
return sendMessage(session, command.getInventoryId(), command);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deliver a message in payload to the CE
|
* Deliver a message in payload to the CE
|
||||||
@@ -338,15 +329,7 @@ public class OpensyncCloudGatewayController {
|
|||||||
} else if (command instanceof CEGWNewChannelRequest) {
|
} else if (command instanceof CEGWNewChannelRequest) {
|
||||||
CEGWNewChannelRequest request = (CEGWNewChannelRequest) command;
|
CEGWNewChannelRequest request = (CEGWNewChannelRequest) command;
|
||||||
Map<RadioType, Integer> newBackupChannels = request.getNewBackupChannels();
|
Map<RadioType, Integer> newBackupChannels = request.getNewBackupChannels();
|
||||||
Map<RadioType, Integer> newPrimaryChannels = request.getNewPrimaryChannels();
|
String resultDetails = tipwlanOvsdbClient.processNewChannelsRequest(inventoryId, newBackupChannels);
|
||||||
|
|
||||||
String resultDetails = tipwlanOvsdbClient.processNewChannelsRequest(inventoryId, newBackupChannels,newPrimaryChannels);
|
|
||||||
response.setResultDetail(resultDetails);
|
|
||||||
} else if (command instanceof CEGWCellSizeAttributesRequest) {
|
|
||||||
CEGWCellSizeAttributesRequest request = (CEGWCellSizeAttributesRequest) command;
|
|
||||||
Map<RadioType, CellSizeAttributes> cellSizeAttributeMap = request.getCellSizeAttributesMap();
|
|
||||||
|
|
||||||
String resultDetails = tipwlanOvsdbClient.processCellSizeAttributesRequest(inventoryId, cellSizeAttributeMap);
|
|
||||||
response.setResultDetail(resultDetails);
|
response.setResultDetail(resultDetails);
|
||||||
|
|
||||||
} else if (command instanceof CEGWFirmwareDownloadRequest) {
|
} else if (command instanceof CEGWFirmwareDownloadRequest) {
|
||||||
@@ -356,9 +339,10 @@ public class OpensyncCloudGatewayController {
|
|||||||
String filepath = dlRequest.getFilePath();
|
String filepath = dlRequest.getFilePath();
|
||||||
String firmwareVersion = dlRequest.getFirmwareVersion();
|
String firmwareVersion = dlRequest.getFirmwareVersion();
|
||||||
String username = dlRequest.getUsername();
|
String username = dlRequest.getUsername();
|
||||||
|
String validationCode = dlRequest.getValidationCode();
|
||||||
|
|
||||||
String resultDetails = tipwlanOvsdbClient.processFirmwareDownload(inventoryId, filepath, firmwareVersion,
|
String resultDetails = tipwlanOvsdbClient.processFirmwareDownload(inventoryId, filepath, firmwareVersion,
|
||||||
username);
|
username, validationCode);
|
||||||
|
|
||||||
response.setResultDetail(resultDetails);
|
response.setResultDetail(resultDetails);
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -5,7 +5,6 @@ import static org.junit.Assert.assertNull;
|
|||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.EnumMap;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -67,7 +66,6 @@ import com.telecominfraproject.wlan.opensync.external.integration.controller.Ope
|
|||||||
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.OpensyncAPRadioState;
|
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState;
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
|
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.utils.MqttStatsPublisher;
|
|
||||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
|
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
|
||||||
import com.telecominfraproject.wlan.profile.models.Profile;
|
import com.telecominfraproject.wlan.profile.models.Profile;
|
||||||
import com.telecominfraproject.wlan.profile.models.ProfileType;
|
import com.telecominfraproject.wlan.profile.models.ProfileType;
|
||||||
@@ -76,7 +74,6 @@ import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
|
|||||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
|
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
|
||||||
import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
|
import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
|
||||||
import com.telecominfraproject.wlan.status.StatusServiceInterface;
|
import com.telecominfraproject.wlan.status.StatusServiceInterface;
|
||||||
import com.telecominfraproject.wlan.status.equipment.models.EquipmentChannelStatusData;
|
|
||||||
import com.telecominfraproject.wlan.status.equipment.models.EquipmentProtocolStatusData;
|
import com.telecominfraproject.wlan.status.equipment.models.EquipmentProtocolStatusData;
|
||||||
import com.telecominfraproject.wlan.status.equipment.models.EquipmentUpgradeStatusData;
|
import com.telecominfraproject.wlan.status.equipment.models.EquipmentUpgradeStatusData;
|
||||||
import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSID;
|
import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSID;
|
||||||
@@ -128,7 +125,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
@MockBean(answer = Answers.RETURNS_MOCKS)
|
@MockBean(answer = Answers.RETURNS_MOCKS)
|
||||||
OpensyncCloudGatewayController gatewayController;
|
OpensyncCloudGatewayController gatewayController;
|
||||||
@MockBean
|
@MockBean
|
||||||
MqttStatsPublisher opensyncExternalIntegrationMqttProcessor;
|
OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttProcessor;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
OpensyncExternalIntegrationCloud opensyncExternalIntegrationCloud;
|
OpensyncExternalIntegrationCloud opensyncExternalIntegrationCloud;
|
||||||
@@ -464,6 +461,16 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testExtractApIdFromTopic() {
|
||||||
|
|
||||||
|
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||||
|
|
||||||
|
assertEquals("Test_Client_21P10C68818122",
|
||||||
|
OpensyncExternalIntegrationMqttMessageProcessor.extractApIdFromTopic(topic));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testProcessMqttMessageStringReport() {
|
public void testProcessMqttMessageStringReport() {
|
||||||
|
|
||||||
@@ -486,10 +493,10 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
|
|
||||||
Mockito.when(statusServiceInterface.update(ArgumentMatchers.any(Status.class))).thenReturn(bssidStatus);
|
Mockito.when(statusServiceInterface.update(ArgumentMatchers.any(Status.class))).thenReturn(bssidStatus);
|
||||||
com.telecominfraproject.wlan.client.models.Client clientInstance = new com.telecominfraproject.wlan.client.models.Client();
|
com.telecominfraproject.wlan.client.models.Client clientInstance = new com.telecominfraproject.wlan.client.models.Client();
|
||||||
clientInstance.setMacAddress(MacAddress.valueOf("7C:AB:60:E6:EA:4D"));
|
clientInstance.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||||
clientInstance.setDetails(new ClientInfoDetails());
|
clientInstance.setDetails(new ClientInfoDetails());
|
||||||
com.telecominfraproject.wlan.client.models.Client clientInstance2 = new com.telecominfraproject.wlan.client.models.Client();
|
com.telecominfraproject.wlan.client.models.Client clientInstance2 = new com.telecominfraproject.wlan.client.models.Client();
|
||||||
clientInstance2.setMacAddress(MacAddress.valueOf("C0:9A:D0:76:A9:69"));
|
clientInstance2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||||
clientInstance2.setDetails(new ClientInfoDetails());
|
clientInstance2.setDetails(new ClientInfoDetails());
|
||||||
Mockito.when(
|
Mockito.when(
|
||||||
clientServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.any(MacAddress.class)))
|
clientServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.any(MacAddress.class)))
|
||||||
@@ -499,10 +506,10 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
.thenReturn(clientInstance).thenReturn(clientInstance2);
|
.thenReturn(clientInstance).thenReturn(clientInstance2);
|
||||||
|
|
||||||
ClientSession clientSession = new ClientSession();
|
ClientSession clientSession = new ClientSession();
|
||||||
clientSession.setMacAddress(MacAddress.valueOf("7C:AB:60:E6:EA:4D"));
|
clientSession.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||||
clientSession.setDetails(new ClientSessionDetails());
|
clientSession.setDetails(new ClientSessionDetails());
|
||||||
ClientSession clientSession2 = new ClientSession();
|
ClientSession clientSession2 = new ClientSession();
|
||||||
clientSession2.setMacAddress(MacAddress.valueOf("C0:9A:D0:76:A9:69"));
|
clientSession2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||||
clientSession2.setDetails(new ClientSessionDetails());
|
clientSession2.setDetails(new ClientSessionDetails());
|
||||||
Mockito.when(clientServiceInterface.getSessionOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
Mockito.when(clientServiceInterface.getSessionOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||||
ArgumentMatchers.any(MacAddress.class))).thenReturn(clientSession).thenReturn(clientSession2);
|
ArgumentMatchers.any(MacAddress.class))).thenReturn(clientSession).thenReturn(clientSession2);
|
||||||
@@ -590,7 +597,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
equipment.setProfileId(1);
|
equipment.setProfileId(1);
|
||||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||||
|
|
||||||
Mockito.when(equipmentServiceInterface.getOrNull(1L)).thenReturn(equipment);
|
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(apId)).thenReturn(equipment);
|
||||||
Mockito.when(equipmentServiceInterface.get(equipment.getId())).thenReturn(equipment);
|
Mockito.when(equipmentServiceInterface.get(equipment.getId())).thenReturn(equipment);
|
||||||
Mockito.when(equipmentServiceInterface.update(equipment)).thenReturn(equipment);
|
Mockito.when(equipmentServiceInterface.update(equipment)).thenReturn(equipment);
|
||||||
|
|
||||||
@@ -622,7 +629,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
Mockito.verify(session).getCustomerId();
|
Mockito.verify(session).getCustomerId();
|
||||||
Mockito.verify(session).getEquipmentId();
|
Mockito.verify(session).getEquipmentId();
|
||||||
Mockito.verify(ovsdbSessionMapInterface).getSession(apId);
|
Mockito.verify(ovsdbSessionMapInterface).getSession(apId);
|
||||||
Mockito.verify(equipmentServiceInterface).getOrNull(1L);
|
Mockito.verify(equipmentServiceInterface).getByInventoryIdOrNull(apId);
|
||||||
|
|
||||||
Mockito.verify(statusServiceInterface).getOrNull(2, 1L, StatusDataType.CLIENT_DETAILS);
|
Mockito.verify(statusServiceInterface).getOrNull(2, 1L, StatusDataType.CLIENT_DETAILS);
|
||||||
Mockito.verify(statusServiceInterface).getOrNull(2, 1L, StatusDataType.ACTIVE_BSSIDS);
|
Mockito.verify(statusServiceInterface).getOrNull(2, 1L, StatusDataType.ACTIVE_BSSIDS);
|
||||||
@@ -680,19 +687,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
protocolStatus.setStatusDataType(StatusDataType.PROTOCOL);
|
protocolStatus.setStatusDataType(StatusDataType.PROTOCOL);
|
||||||
|
|
||||||
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.PROTOCOL)).thenReturn(protocolStatus);
|
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.PROTOCOL)).thenReturn(protocolStatus);
|
||||||
|
|
||||||
Status channelStatus = new Status();
|
|
||||||
channelStatus.setCustomerId(2);
|
|
||||||
channelStatus.setEquipmentId(1L);
|
|
||||||
EquipmentChannelStatusData channelStatusData = new EquipmentChannelStatusData();
|
|
||||||
Map<RadioType, Integer> channelStatusDataMap = new EnumMap<>(RadioType.class);
|
|
||||||
channelStatusDataMap.put(RadioType.is2dot4GHz, 6);
|
|
||||||
channelStatusDataMap.put(RadioType.is5GHzL, 36);
|
|
||||||
channelStatusDataMap.put(RadioType.is5GHzU, 157);
|
|
||||||
channelStatusData.setChannelNumberStatusDataMap(channelStatusDataMap);
|
|
||||||
channelStatus.setDetails(channelStatusData);
|
|
||||||
|
|
||||||
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.RADIO_CHANNEL)).thenReturn(channelStatus);
|
|
||||||
Status bssidStatus = new Status();
|
Status bssidStatus = new Status();
|
||||||
bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
|
bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
|
||||||
bssidStatus.setCustomerId(2);
|
bssidStatus.setCustomerId(2);
|
||||||
@@ -703,6 +698,8 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
|
|
||||||
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.ACTIVE_BSSIDS)).thenReturn(bssidStatus);
|
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.ACTIVE_BSSIDS)).thenReturn(bssidStatus);
|
||||||
|
|
||||||
|
Mockito.when(statusServiceInterface.update(bssidStatus)).thenReturn(bssidStatus);
|
||||||
|
|
||||||
Status clientStatus = new Status();
|
Status clientStatus = new Status();
|
||||||
clientStatus.setCustomerId(2);
|
clientStatus.setCustomerId(2);
|
||||||
clientStatus.setEquipmentId(1L);
|
clientStatus.setEquipmentId(1L);
|
||||||
@@ -714,7 +711,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
clientStatus.setDetails(clientConnectionDetails);
|
clientStatus.setDetails(clientConnectionDetails);
|
||||||
|
|
||||||
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.CLIENT_DETAILS)).thenReturn(clientStatus);
|
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.CLIENT_DETAILS)).thenReturn(clientStatus);
|
||||||
Mockito.when(statusServiceInterface.update(Mockito.any(Status.class))).thenReturn(channelStatus).thenReturn(bssidStatus).thenReturn(clientStatus);
|
Mockito.when(statusServiceInterface.update(clientStatus)).thenReturn(clientStatus);
|
||||||
|
|
||||||
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
||||||
Mockito.when(session.getEquipmentId()).thenReturn(1L);
|
Mockito.when(session.getEquipmentId()).thenReturn(1L);
|
||||||
@@ -729,7 +726,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
Mockito.verify(session).getEquipmentId();
|
Mockito.verify(session).getEquipmentId();
|
||||||
|
|
||||||
Mockito.verify(ovsdbSessionMapInterface).getSession(apId);
|
Mockito.verify(ovsdbSessionMapInterface).getSession(apId);
|
||||||
Mockito.verify(equipmentServiceInterface, Mockito.times(1)).getByInventoryIdOrNull(apId);
|
Mockito.verify(equipmentServiceInterface, Mockito.times(2)).getByInventoryIdOrNull(apId);
|
||||||
|
|
||||||
Mockito.verify(statusServiceInterface, Mockito.times(3)).getOrNull(2, 1L, StatusDataType.PROTOCOL);
|
Mockito.verify(statusServiceInterface, Mockito.times(3)).getOrNull(2, 1L, StatusDataType.PROTOCOL);
|
||||||
Mockito.verify(statusServiceInterface, Mockito.never()).update(bssidStatus);
|
Mockito.verify(statusServiceInterface, Mockito.never()).update(bssidStatus);
|
||||||
@@ -802,6 +799,8 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
|
|
||||||
private List<EventReport> getOpensyncStatsEventReportsList() {
|
private List<EventReport> getOpensyncStatsEventReportsList() {
|
||||||
|
|
||||||
|
|
||||||
|
List<ClientAssocEvent> clientAssocEventList = new ArrayList<>();
|
||||||
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent
|
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent
|
||||||
.getDefaultInstance().toBuilder();
|
.getDefaultInstance().toBuilder();
|
||||||
clientAssocBuilder.setAssocType(AssocType.ASSOC);
|
clientAssocBuilder.setAssocType(AssocType.ASSOC);
|
||||||
@@ -813,8 +812,22 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
clientAssocBuilder.setInternalSc(1);
|
clientAssocBuilder.setInternalSc(1);
|
||||||
clientAssocBuilder.setSsid("ssid-3");
|
clientAssocBuilder.setSsid("ssid-3");
|
||||||
clientAssocBuilder.setStatus(1);
|
clientAssocBuilder.setStatus(1);
|
||||||
clientAssocBuilder.setTimestampMs(System.currentTimeMillis());
|
|
||||||
|
|
||||||
|
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder2 = EventReport.ClientAssocEvent
|
||||||
|
.getDefaultInstance().toBuilder();
|
||||||
|
clientAssocBuilder2.setAssocType(AssocType.ASSOC);
|
||||||
|
clientAssocBuilder2.setBand(RadioBandType.BAND2G);
|
||||||
|
clientAssocBuilder2.setRssi(-65);
|
||||||
|
clientAssocBuilder2.setStaMac("7C:AB:60:E6:EA:4D");
|
||||||
|
clientAssocBuilder2.setStaMacBytes(ByteString.copyFrom("7C:AB:60:E6:EA:4D".getBytes()));
|
||||||
|
clientAssocBuilder2.setSessionId(1000L);
|
||||||
|
clientAssocBuilder2.setInternalSc(1);
|
||||||
|
clientAssocBuilder2.setSsid("ssid-1");
|
||||||
|
clientAssocBuilder2.setStatus(1);
|
||||||
|
|
||||||
|
clientAssocEventList.add(clientAssocBuilder.build());
|
||||||
|
clientAssocEventList.add(clientAssocBuilder2.build());
|
||||||
|
|
||||||
List<EventReport> eventReportList = new ArrayList<>();
|
List<EventReport> eventReportList = new ArrayList<>();
|
||||||
|
|
||||||
EventReport.Builder eventReportBuilder = EventReport.getDefaultInstance().toBuilder();
|
EventReport.Builder eventReportBuilder = EventReport.getDefaultInstance().toBuilder();
|
||||||
@@ -823,7 +836,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
|
|
||||||
clientSessionBuilder.setSessionId(1000L);
|
clientSessionBuilder.setSessionId(1000L);
|
||||||
|
|
||||||
clientSessionBuilder.setClientAssocEvent(clientAssocBuilder.build());
|
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());
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.external.integration.utils;
|
package com.telecominfraproject.wlan.opensync.external.integration;
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
@@ -43,11 +43,11 @@ import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
|||||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||||
import com.telecominfraproject.wlan.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.OpensyncExternalIntegrationCloud;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSession;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSessionMapInterface;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController;
|
import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController;
|
||||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
|
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
|
||||||
|
import com.telecominfraproject.wlan.profile.models.ProfileContainer;
|
||||||
|
import com.telecominfraproject.wlan.profile.models.ProfileType;
|
||||||
|
import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
|
||||||
import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
|
import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
|
||||||
import com.telecominfraproject.wlan.servicemetric.apnode.models.ApNodeMetrics;
|
import com.telecominfraproject.wlan.servicemetric.apnode.models.ApNodeMetrics;
|
||||||
import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError;
|
import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError;
|
||||||
@@ -74,12 +74,12 @@ import sts.OpensyncStats.VLANMetrics;
|
|||||||
|
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@ActiveProfiles(profiles = { "integration_test", })
|
@ActiveProfiles(profiles = { "integration_test", })
|
||||||
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = MqttStatsPublisherTest.class)
|
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = OpensyncExternalIntegrationMqttMessageProcessorTest.class)
|
||||||
@Import(value = { AlarmServiceInterface.class, OpensyncExternalIntegrationCloud.class,
|
@Import(value = { AlarmServiceInterface.class, OpensyncExternalIntegrationCloud.class,
|
||||||
MqttStatsPublisherTest.Config.class,
|
OpensyncExternalIntegrationMqttMessageProcessorTest.Config.class,
|
||||||
|
|
||||||
})
|
})
|
||||||
public class MqttStatsPublisherTest {
|
public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||||
|
|
||||||
@MockBean
|
@MockBean
|
||||||
AlarmServiceInterface alarmServiceInterface;
|
AlarmServiceInterface alarmServiceInterface;
|
||||||
@@ -105,10 +105,9 @@ public class MqttStatsPublisherTest {
|
|||||||
FirmwareServiceInterface firmwareServiceInterface;
|
FirmwareServiceInterface firmwareServiceInterface;
|
||||||
@MockBean(answer = Answers.RETURNS_MOCKS)
|
@MockBean(answer = Answers.RETURNS_MOCKS)
|
||||||
OpensyncCloudGatewayController gatewayController;
|
OpensyncCloudGatewayController gatewayController;
|
||||||
@MockBean
|
|
||||||
RealtimeEventPublisher realtimeEventPublisher;
|
|
||||||
@Autowired
|
@Autowired
|
||||||
MqttStatsPublisher opensyncExternalIntegrationMqttProcessor;
|
OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttProcessor;
|
||||||
|
|
||||||
MockitoSession mockito;
|
MockitoSession mockito;
|
||||||
|
|
||||||
@@ -116,8 +115,8 @@ public class MqttStatsPublisherTest {
|
|||||||
static class Config {
|
static class Config {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public MqttStatsPublisher mqttStatsPublisher() {
|
public OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttMessageProcessor() {
|
||||||
return new MqttStatsPublisher();
|
return new OpensyncExternalIntegrationMqttMessageProcessor();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -135,12 +134,14 @@ public class MqttStatsPublisherTest {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testExtractApIdFromTopic() {
|
public void testExtractApIdFromTopic() {
|
||||||
|
|
||||||
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||||
|
|
||||||
assertEquals("Test_Client_21P10C68818122", MqttStatsPublisher.extractApIdFromTopic(topic));
|
assertEquals("Test_Client_21P10C68818122",
|
||||||
|
OpensyncExternalIntegrationMqttMessageProcessor.extractApIdFromTopic(topic));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,15 +174,15 @@ public class MqttStatsPublisherTest {
|
|||||||
Equipment equipment = new Equipment();
|
Equipment equipment = new Equipment();
|
||||||
|
|
||||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||||
|
|
||||||
equipment.setId(1L);
|
equipment.setId(1L);
|
||||||
|
|
||||||
Mockito.when(
|
Mockito.when(
|
||||||
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||||
.thenReturn(equipment);
|
.thenReturn(equipment);
|
||||||
|
|
||||||
equipment.setProfileId(0L);
|
equipment.setProfileId(0L);
|
||||||
|
|
||||||
Mockito.when(equipmentServiceInterface.getOrNull(1L)).thenReturn(equipment);
|
Mockito.when(equipmentServiceInterface.getOrNull(1L)).thenReturn(equipment);
|
||||||
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
|
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
|
||||||
|
|
||||||
@@ -210,10 +211,10 @@ public class MqttStatsPublisherTest {
|
|||||||
|
|
||||||
Mockito.when(statusServiceInterface.update(ArgumentMatchers.any(Status.class))).thenReturn(bssidStatus);
|
Mockito.when(statusServiceInterface.update(ArgumentMatchers.any(Status.class))).thenReturn(bssidStatus);
|
||||||
com.telecominfraproject.wlan.client.models.Client clientInstance = new com.telecominfraproject.wlan.client.models.Client();
|
com.telecominfraproject.wlan.client.models.Client clientInstance = new com.telecominfraproject.wlan.client.models.Client();
|
||||||
clientInstance.setMacAddress(MacAddress.valueOf("7C:AB:60:E6:EA:4D"));
|
clientInstance.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||||
clientInstance.setDetails(new ClientInfoDetails());
|
clientInstance.setDetails(new ClientInfoDetails());
|
||||||
com.telecominfraproject.wlan.client.models.Client clientInstance2 = new com.telecominfraproject.wlan.client.models.Client();
|
com.telecominfraproject.wlan.client.models.Client clientInstance2 = new com.telecominfraproject.wlan.client.models.Client();
|
||||||
clientInstance2.setMacAddress(MacAddress.valueOf("C0:9A:D0:76:A9:69"));
|
clientInstance2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||||
clientInstance2.setDetails(new ClientInfoDetails());
|
clientInstance2.setDetails(new ClientInfoDetails());
|
||||||
Mockito.when(
|
Mockito.when(
|
||||||
clientServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.any(MacAddress.class)))
|
clientServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.any(MacAddress.class)))
|
||||||
@@ -223,10 +224,10 @@ public class MqttStatsPublisherTest {
|
|||||||
.thenReturn(clientInstance).thenReturn(clientInstance2);
|
.thenReturn(clientInstance).thenReturn(clientInstance2);
|
||||||
|
|
||||||
ClientSession clientSession = new ClientSession();
|
ClientSession clientSession = new ClientSession();
|
||||||
clientSession.setMacAddress(MacAddress.valueOf("7C:AB:60:E6:EA:4D"));
|
clientSession.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||||
clientSession.setDetails(new ClientSessionDetails());
|
clientSession.setDetails(new ClientSessionDetails());
|
||||||
ClientSession clientSession2 = new ClientSession();
|
ClientSession clientSession2 = new ClientSession();
|
||||||
clientSession2.setMacAddress(MacAddress.valueOf("C0:9A:D0:76:A9:69"));
|
clientSession2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||||
clientSession2.setDetails(new ClientSessionDetails());
|
clientSession2.setDetails(new ClientSessionDetails());
|
||||||
Mockito.when(clientServiceInterface.getSessionOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
Mockito.when(clientServiceInterface.getSessionOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||||
ArgumentMatchers.any(MacAddress.class))).thenReturn(clientSession).thenReturn(clientSession2);
|
ArgumentMatchers.any(MacAddress.class))).thenReturn(clientSession).thenReturn(clientSession2);
|
||||||
@@ -316,8 +317,12 @@ public class MqttStatsPublisherTest {
|
|||||||
bssidList.add(activeBssid3);
|
bssidList.add(activeBssid3);
|
||||||
return bssidList;
|
return bssidList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<EventReport> getOpensyncStatsEventReportsList() {
|
private List<EventReport> getOpensyncStatsEventReportsList() {
|
||||||
|
|
||||||
|
|
||||||
|
List<ClientAssocEvent> clientAssocEventList = new ArrayList<>();
|
||||||
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent
|
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent
|
||||||
.getDefaultInstance().toBuilder();
|
.getDefaultInstance().toBuilder();
|
||||||
clientAssocBuilder.setAssocType(AssocType.ASSOC);
|
clientAssocBuilder.setAssocType(AssocType.ASSOC);
|
||||||
@@ -329,7 +334,21 @@ public class MqttStatsPublisherTest {
|
|||||||
clientAssocBuilder.setInternalSc(1);
|
clientAssocBuilder.setInternalSc(1);
|
||||||
clientAssocBuilder.setSsid("ssid-3");
|
clientAssocBuilder.setSsid("ssid-3");
|
||||||
clientAssocBuilder.setStatus(1);
|
clientAssocBuilder.setStatus(1);
|
||||||
clientAssocBuilder.setTimestampMs(System.currentTimeMillis());
|
|
||||||
|
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder2 = EventReport.ClientAssocEvent
|
||||||
|
.getDefaultInstance().toBuilder();
|
||||||
|
clientAssocBuilder2.setAssocType(AssocType.ASSOC);
|
||||||
|
clientAssocBuilder2.setBand(RadioBandType.BAND2G);
|
||||||
|
clientAssocBuilder2.setRssi(-65);
|
||||||
|
clientAssocBuilder2.setStaMac("7C:AB:60:E6:EA:4D");
|
||||||
|
clientAssocBuilder2.setStaMacBytes(ByteString.copyFrom("7C:AB:60:E6:EA:4D".getBytes()));
|
||||||
|
clientAssocBuilder2.setSessionId(1000L);
|
||||||
|
clientAssocBuilder2.setInternalSc(1);
|
||||||
|
clientAssocBuilder2.setSsid("ssid-1");
|
||||||
|
clientAssocBuilder2.setStatus(1);
|
||||||
|
|
||||||
|
clientAssocEventList.add(clientAssocBuilder.build());
|
||||||
|
clientAssocEventList.add(clientAssocBuilder2.build());
|
||||||
|
|
||||||
List<EventReport> eventReportList = new ArrayList<>();
|
List<EventReport> eventReportList = new ArrayList<>();
|
||||||
|
|
||||||
@@ -340,25 +359,25 @@ public class MqttStatsPublisherTest {
|
|||||||
|
|
||||||
clientSessionBuilder.setSessionId(1000L);
|
clientSessionBuilder.setSessionId(1000L);
|
||||||
|
|
||||||
clientSessionBuilder.setClientAssocEvent(clientAssocBuilder.build());
|
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
|
sts.OpensyncStats.EventReport.ChannelSwitchEvent.Builder channelSwitchEventBuilder = sts.OpensyncStats.EventReport.ChannelSwitchEvent.getDefaultInstance().toBuilder();
|
||||||
.getDefaultInstance().toBuilder();
|
channelSwitchEventBuilder.setBand(RadioBandType.BAND5GL).setChannel(40).setReason(ChannelSwitchReason.high_interference).setTimestampMs(System.currentTimeMillis());
|
||||||
channelSwitchEventBuilder.setBand(RadioBandType.BAND5GL).setChannel(40)
|
|
||||||
.setReason(ChannelSwitchReason.high_interference).setTimestampMs(System.currentTimeMillis());
|
|
||||||
|
|
||||||
List<ChannelSwitchEvent> channelSwitchEventList = new ArrayList<>();
|
List<ChannelSwitchEvent> channelSwitchEventList = new ArrayList<>();
|
||||||
channelSwitchEventList.add(channelSwitchEventBuilder.build());
|
channelSwitchEventList.add(channelSwitchEventBuilder.build());
|
||||||
|
|
||||||
eventReportBuilder.addAllClientSession(clientSessionList);
|
eventReportBuilder.addAllClientSession(clientSessionList);
|
||||||
eventReportBuilder.addAllChannelSwitch(channelSwitchEventList);
|
eventReportBuilder.addAllChannelSwitch(channelSwitchEventList);
|
||||||
|
|
||||||
eventReportList.add(eventReportBuilder.build());
|
eventReportList.add(eventReportBuilder.build());
|
||||||
|
|
||||||
|
|
||||||
return eventReportList;
|
return eventReportList;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ClientReport> getOpensyncStatsClientReportsList() {
|
private List<ClientReport> getOpensyncStatsClientReportsList() {
|
||||||
@@ -1,382 +0,0 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.external.integration.utils;
|
|
||||||
|
|
||||||
import java.net.InetAddress;
|
|
||||||
import java.sql.Date;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Ignore;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
import org.mockito.Mockito;
|
|
||||||
import org.mockito.MockitoSession;
|
|
||||||
import org.mockito.quality.Strictness;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
|
||||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.context.annotation.Import;
|
|
||||||
import org.springframework.test.context.ActiveProfiles;
|
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
|
||||||
|
|
||||||
import com.google.protobuf.ByteString;
|
|
||||||
import com.telecominfraproject.wlan.client.models.events.realtime.ClientAssocEvent;
|
|
||||||
import com.telecominfraproject.wlan.client.models.events.realtime.ClientAuthEvent;
|
|
||||||
import com.telecominfraproject.wlan.client.models.events.utils.WlanStatusCode;
|
|
||||||
import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
|
|
||||||
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.OpensyncExternalIntegrationCloud;
|
|
||||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
|
|
||||||
|
|
||||||
import sts.OpensyncStats.EventReport.DhcpNakEvent;
|
|
||||||
import sts.OpensyncStats.EventReport.DhcpOfferEvent;
|
|
||||||
import sts.OpensyncStats.EventReport.DhcpRequestEvent;
|
|
||||||
import sts.OpensyncStats;
|
|
||||||
import sts.OpensyncStats.EventReport.DhcpAckEvent;
|
|
||||||
|
|
||||||
import sts.OpensyncStats.EventReport.DhcpCommonData;
|
|
||||||
import sts.OpensyncStats.EventReport.DhcpDeclineEvent;
|
|
||||||
import sts.OpensyncStats.EventReport.DhcpDiscoverEvent;
|
|
||||||
import sts.OpensyncStats.EventReport.DhcpInformEvent;
|
|
||||||
import sts.OpensyncStats.EventReport.DhcpTransaction;
|
|
||||||
import sts.OpensyncStats.RadioBandType;
|
|
||||||
import sts.OpensyncStats.Report;
|
|
||||||
|
|
||||||
@RunWith(SpringRunner.class)
|
|
||||||
@ActiveProfiles(profiles = { "integration_test", })
|
|
||||||
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = RealtimeEventPublisherTest.class)
|
|
||||||
@Import(value = { OpensyncExternalIntegrationCloud.class, RealtimeEventPublisherTest.Config.class,
|
|
||||||
|
|
||||||
})
|
|
||||||
public class RealtimeEventPublisherTest {
|
|
||||||
|
|
||||||
@MockBean
|
|
||||||
private CloudEventDispatcherInterface cloudEventDispatcherInterface;
|
|
||||||
|
|
||||||
@MockBean
|
|
||||||
private EquipmentServiceInterface equipmentServiceInterface;
|
|
||||||
|
|
||||||
@MockBean
|
|
||||||
private ProfileServiceInterface profileServiceInterface;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
RealtimeEventPublisher realtimeEventPublisher;
|
|
||||||
MockitoSession mockito;
|
|
||||||
|
|
||||||
@Configuration
|
|
||||||
static class Config {
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public RealtimeEventPublisher realtimeEventPublisher() {
|
|
||||||
return new RealtimeEventPublisher();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Before
|
|
||||||
public void setUp() throws Exception {
|
|
||||||
|
|
||||||
mockito = Mockito.mockitoSession().initMocks(this).strictness(Strictness.STRICT_STUBS).startMocking();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
|
||||||
public void tearDown() throws Exception {
|
|
||||||
mockito.finishMocking();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Ignore
|
|
||||||
public void testPublishChannelHopEvents() {
|
|
||||||
// TODO: implement
|
|
||||||
}
|
|
||||||
|
|
||||||
@Ignore
|
|
||||||
public void testPublishClientConnectSuccessEvent() {
|
|
||||||
// TODO: implement
|
|
||||||
}
|
|
||||||
|
|
||||||
@Ignore
|
|
||||||
public void testPublishClientDisconnectEvent() {
|
|
||||||
// TODO: implement
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testPublishClientAuthSystemEvent() throws Exception {
|
|
||||||
|
|
||||||
OpensyncStats.EventReport.ClientAuthEvent clientAuthEvent = OpensyncStats.EventReport.ClientAuthEvent
|
|
||||||
.newBuilder().setBand(RadioBandType.BAND5GL).setSsid("TipWlan-cloud-3-radios")
|
|
||||||
.setStaMac("c0:9a:d0:76:a9:69").setSessionId(Long.parseUnsignedLong("12377998144488079334"))
|
|
||||||
.setAuthStatus(WlanStatusCode.WLAN_STATUS_SUCCESS.getId()).setTimestampMs(1610050309).build();
|
|
||||||
|
|
||||||
realtimeEventPublisher.publishClientAuthSystemEvent(2, 1L, 0L, clientAuthEvent);
|
|
||||||
|
|
||||||
Mockito.verify(cloudEventDispatcherInterface, Mockito.times(1))
|
|
||||||
.publishEvent(Mockito.any(ClientAuthEvent.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testPublishClientAssocEvent() throws Exception {
|
|
||||||
|
|
||||||
OpensyncStats.EventReport.ClientAssocEvent clientAssocEvent = OpensyncStats.EventReport.ClientAssocEvent
|
|
||||||
.newBuilder().setBand(RadioBandType.BAND5GL).setRssi(-37).setSsid("TipWlan-cloud-3-radios")
|
|
||||||
.setStaMac("c0:9a:d0:76:a9:69").setSessionId(Long.parseUnsignedLong("12377998144488079334"))
|
|
||||||
.setUsing11K(true).setUsing11V(true).setStatus(WlanStatusCode.WLAN_STATUS_SUCCESS.getId())
|
|
||||||
.setTimestampMs(1610050309).build();
|
|
||||||
|
|
||||||
realtimeEventPublisher.publishClientAssocEvent(2, 1L, 0L, clientAssocEvent);
|
|
||||||
|
|
||||||
Mockito.verify(cloudEventDispatcherInterface, Mockito.times(1))
|
|
||||||
.publishEvent(Mockito.any(ClientAssocEvent.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Ignore
|
|
||||||
public void testPublishClientFailureEvent() {
|
|
||||||
// TODO: implement
|
|
||||||
}
|
|
||||||
|
|
||||||
@Ignore
|
|
||||||
public void testPublishClientFirstDataEvent() {
|
|
||||||
// TODO: implement
|
|
||||||
}
|
|
||||||
|
|
||||||
@Ignore
|
|
||||||
public void testPublishClientIdEvent() {
|
|
||||||
// TODO: implement
|
|
||||||
}
|
|
||||||
|
|
||||||
@Ignore
|
|
||||||
public void testPublishClientIpEvent() {
|
|
||||||
// TODO: implement
|
|
||||||
}
|
|
||||||
|
|
||||||
@Ignore
|
|
||||||
public void testPublishClientTimeoutEvent() {
|
|
||||||
// TODO: implement
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testPublishDhcpTransactionEvents() throws Exception {
|
|
||||||
|
|
||||||
long timestamp = System.currentTimeMillis();
|
|
||||||
List<DhcpTransaction> dhcpTransactionList = new ArrayList<>();
|
|
||||||
DhcpAckEvent ackEvent = DhcpAckEvent.newBuilder()
|
|
||||||
.setDhcpCommonData(DhcpCommonData.newBuilder(DhcpCommonData.getDefaultInstance())
|
|
||||||
.setClientIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.250").getAddress()))
|
|
||||||
.setDhcpServerIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.1").getAddress()))
|
|
||||||
.setDeviceMacAddress("c0:9a:d0:76:a9:69")
|
|
||||||
.setXId(123456789)
|
|
||||||
.setTimestampMs(Long.valueOf(timestamp/1000).intValue()).build())
|
|
||||||
.setGatewayIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.1").getAddress()))
|
|
||||||
.setPrimaryDns(ByteString.copyFrom(InetAddress.getByName("64.71.255.204").getAddress()))
|
|
||||||
.setSecondaryDns(ByteString.copyFrom(InetAddress.getByName("64.71.255.198").getAddress()))
|
|
||||||
.setSubnetMask(ByteString.copyFrom(InetAddress.getByName("255.255.255.0").getAddress()))
|
|
||||||
.setLeaseTime(172800).setTimeOffset(10).build();
|
|
||||||
|
|
||||||
DhcpAckEvent ackEvent2 = DhcpAckEvent.newBuilder()
|
|
||||||
.setDhcpCommonData(DhcpCommonData.newBuilder(DhcpCommonData.getDefaultInstance())
|
|
||||||
.setClientIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.65").getAddress()))
|
|
||||||
.setDhcpServerIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.1").getAddress()))
|
|
||||||
.setDeviceMacAddress("f6:f0:65:99:e2:33")
|
|
||||||
.setXId(123456789)
|
|
||||||
.setTimestampMs(Long.valueOf(timestamp/1000).intValue()).build())
|
|
||||||
.setGatewayIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.1").getAddress()))
|
|
||||||
.setPrimaryDns(ByteString.copyFrom(InetAddress.getByName("64.71.255.204").getAddress()))
|
|
||||||
.setSecondaryDns(ByteString.copyFrom(InetAddress.getByName("64.71.255.198").getAddress()))
|
|
||||||
.setSubnetMask(ByteString.copyFrom(InetAddress.getByName("255.255.255.0").getAddress()))
|
|
||||||
.setLeaseTime(172800).setTimeOffset(10).build();
|
|
||||||
|
|
||||||
List<DhcpAckEvent> ackEventList = List.of(ackEvent, ackEvent2);
|
|
||||||
|
|
||||||
DhcpNakEvent nakEvent1 = DhcpNakEvent.newBuilder().setDhcpCommonData(DhcpCommonData.newBuilder(DhcpCommonData.getDefaultInstance())
|
|
||||||
.setClientIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.129").getAddress()))
|
|
||||||
.setDhcpServerIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.1").getAddress()))
|
|
||||||
.setDeviceMacAddress("24:f5:a2:ef:2e:53")
|
|
||||||
.setXId(123456789)
|
|
||||||
.setTimestampMs(Long.valueOf(timestamp/1000).intValue()).build()).setFromInternal(true).build();
|
|
||||||
|
|
||||||
List<DhcpNakEvent> nakEventList = List.of(nakEvent1);
|
|
||||||
|
|
||||||
DhcpOfferEvent offerEvent1 = DhcpOfferEvent.newBuilder().setDhcpCommonData(DhcpCommonData.newBuilder(DhcpCommonData.getDefaultInstance())
|
|
||||||
.setClientIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.250").getAddress()))
|
|
||||||
.setDhcpServerIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.1").getAddress()))
|
|
||||||
.setDeviceMacAddress("c0:9a:d0:76:a9:69")
|
|
||||||
.setXId(123456789)
|
|
||||||
.setTimestampMs(Long.valueOf(timestamp/1000).intValue()).build()).setFromInternal(true).build();
|
|
||||||
|
|
||||||
DhcpOfferEvent offerEvent2 = DhcpOfferEvent.newBuilder().setDhcpCommonData(DhcpCommonData.newBuilder(DhcpCommonData.getDefaultInstance())
|
|
||||||
.setClientIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.65").getAddress()))
|
|
||||||
.setDhcpServerIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.1").getAddress()))
|
|
||||||
.setDeviceMacAddress("f6:f0:65:99:e2:33")
|
|
||||||
.setXId(123456789)
|
|
||||||
.setTimestampMs(Long.valueOf(timestamp/1000).intValue()).build()).setFromInternal(true).build();
|
|
||||||
|
|
||||||
List<DhcpOfferEvent> offerEventList = List.of(offerEvent1,offerEvent2);
|
|
||||||
|
|
||||||
DhcpDiscoverEvent discoverEvent1 = DhcpDiscoverEvent.newBuilder().setDhcpCommonData(DhcpCommonData.newBuilder(DhcpCommonData.getDefaultInstance())
|
|
||||||
.setClientIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.250").getAddress()))
|
|
||||||
.setDhcpServerIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.1").getAddress()))
|
|
||||||
.setDeviceMacAddress("c0:9a:d0:76:a9:69")
|
|
||||||
.setXId(123456789)
|
|
||||||
.setTimestampMs(Long.valueOf(timestamp/1000).intValue()).build()).setHostname("My-iPhone").build();
|
|
||||||
|
|
||||||
DhcpDiscoverEvent discoverEvent2 = DhcpDiscoverEvent.newBuilder().setDhcpCommonData(DhcpCommonData.newBuilder(DhcpCommonData.getDefaultInstance())
|
|
||||||
.setClientIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.65").getAddress()))
|
|
||||||
.setDhcpServerIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.1").getAddress()))
|
|
||||||
.setDeviceMacAddress("f6:f0:65:99:e2:33")
|
|
||||||
.setXId(123456789)
|
|
||||||
.setTimestampMs(Long.valueOf(timestamp/1000).intValue()).build()).setHostname("My-iPad").build();
|
|
||||||
|
|
||||||
List<DhcpDiscoverEvent> discoverEventList = List.of(discoverEvent1,discoverEvent2);
|
|
||||||
|
|
||||||
DhcpRequestEvent requestEvent1 = DhcpRequestEvent.newBuilder().setDhcpCommonData(DhcpCommonData.newBuilder(DhcpCommonData.getDefaultInstance())
|
|
||||||
.setClientIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.250").getAddress()))
|
|
||||||
.setDhcpServerIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.1").getAddress()))
|
|
||||||
.setDeviceMacAddress("c0:9a:d0:76:a9:69")
|
|
||||||
.setXId(123456789)
|
|
||||||
.setTimestampMs(Long.valueOf(timestamp/1000).intValue()).build()).setHostname("My-iPhone").build();
|
|
||||||
|
|
||||||
DhcpRequestEvent requestEvent2 = DhcpRequestEvent.newBuilder().setDhcpCommonData(DhcpCommonData.newBuilder(DhcpCommonData.getDefaultInstance())
|
|
||||||
.setClientIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.65").getAddress()))
|
|
||||||
.setDhcpServerIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.1").getAddress()))
|
|
||||||
.setDeviceMacAddress("f6:f0:65:99:e2:33")
|
|
||||||
.setXId(123456789)
|
|
||||||
.setTimestampMs(Long.valueOf(timestamp/1000).intValue()).build()).setHostname("My-iPad").build();
|
|
||||||
|
|
||||||
List<DhcpRequestEvent> requestEventList = List.of(requestEvent1,requestEvent2);
|
|
||||||
|
|
||||||
DhcpInformEvent informEvent = DhcpInformEvent.newBuilder().setDhcpCommonData(DhcpCommonData.newBuilder(DhcpCommonData.getDefaultInstance())
|
|
||||||
.setClientIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.250").getAddress()))
|
|
||||||
.setDhcpServerIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.1").getAddress()))
|
|
||||||
.setDeviceMacAddress("c0:9a:d0:76:a9:69")
|
|
||||||
.setXId(123456789)
|
|
||||||
.setTimestampMs(Long.valueOf(timestamp/1000).intValue()).build()).build();
|
|
||||||
|
|
||||||
List<DhcpInformEvent> informEventList = List.of(informEvent);
|
|
||||||
|
|
||||||
|
|
||||||
DhcpDeclineEvent declineEvent = DhcpDeclineEvent.newBuilder().setDhcpCommonData(DhcpCommonData.newBuilder(DhcpCommonData.getDefaultInstance())
|
|
||||||
.setClientIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.129").getAddress()))
|
|
||||||
.setDhcpServerIp(ByteString.copyFrom(InetAddress.getByName("10.0.0.1").getAddress()))
|
|
||||||
.setDeviceMacAddress("24:f5:a2:ef:2e:53")
|
|
||||||
.setXId(123456789)
|
|
||||||
.setTimestampMs(Long.valueOf(timestamp/1000).intValue()).build()).build();
|
|
||||||
|
|
||||||
List<DhcpDeclineEvent> declineEventList = List.of(declineEvent);
|
|
||||||
|
|
||||||
|
|
||||||
DhcpTransaction dhcpTransaction = DhcpTransaction.newBuilder(DhcpTransaction.getDefaultInstance())
|
|
||||||
.addAllDhcpAckEvent(ackEventList).addAllDhcpNakEvent(nakEventList).addAllDhcpOfferEvent(offerEventList)
|
|
||||||
.addAllDhcpInformEvent(informEventList).addAllDhcpDeclineEvent(declineEventList)
|
|
||||||
.addAllDhcpDiscoverEvent(discoverEventList).addAllDhcpRequestEvent(requestEventList).setXId(123456789)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
dhcpTransactionList.add(dhcpTransaction);
|
|
||||||
|
|
||||||
realtimeEventPublisher.publishDhcpTransactionEvents(2, 1L, 0L, dhcpTransactionList);
|
|
||||||
|
|
||||||
Mockito.verify(cloudEventDispatcherInterface,Mockito.times(1)).publishEventsBulk(Mockito.anyList());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testPublishSipCallEvents() throws Exception {
|
|
||||||
|
|
||||||
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();
|
|
||||||
|
|
||||||
realtimeEventPublisher.publishSipCallEvents(1, 2L, 0L, multipleVoiceReportsInOneReport.getVideoVoiceReportList());
|
|
||||||
|
|
||||||
Mockito.verify(cloudEventDispatcherInterface, Mockito.times(1)).publishEventsBulk(Mockito.anyList());
|
|
||||||
}
|
|
||||||
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
<relativePath>../../wlan-cloud-root</relativePath>
|
<relativePath>../../wlan-cloud-root</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>opensync-ext-interface</artifactId>
|
<artifactId>opensync-ext-interface</artifactId>
|
||||||
@@ -13,33 +15,33 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>base-models</artifactId>
|
<artifactId>base-models</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>tip-wlan-opensync-protobuf</artifactId>
|
<artifactId>tip-wlan-opensync-protobuf</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>equipment-models</artifactId>
|
<artifactId>equipment-models</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>profile-models</artifactId>
|
<artifactId>profile-models</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>location-models</artifactId>
|
<artifactId>location-models</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>routing-models</artifactId>
|
<artifactId>routing-models</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public interface OpensyncExternalIntegrationInterface {
|
|||||||
void wifiInetStateDbTableUpdate(List<OpensyncAPInetState> inetStateTables, String apId);
|
void wifiInetStateDbTableUpdate(List<OpensyncAPInetState> inetStateTables, String apId);
|
||||||
|
|
||||||
void wifiInetStateDbTableDelete(List<OpensyncAPInetState> inetStateTables, String apId);
|
void wifiInetStateDbTableDelete(List<OpensyncAPInetState> inetStateTables, String apId);
|
||||||
|
|
||||||
void processMqttMessage(String topic, Report report);
|
void processMqttMessage(String topic, Report report);
|
||||||
|
|
||||||
void processMqttMessage(String topic, FlowReport flowReport);
|
void processMqttMessage(String topic, FlowReport flowReport);
|
||||||
@@ -47,15 +47,8 @@ public interface OpensyncExternalIntegrationInterface {
|
|||||||
void wifiAssociatedClientsDbTableDelete(String deletedClientMac, String apId);
|
void wifiAssociatedClientsDbTableDelete(String deletedClientMac, String apId);
|
||||||
|
|
||||||
void awlanNodeDbTableUpdate(OpensyncAWLANNode opensyncAPState, String apId);
|
void awlanNodeDbTableUpdate(OpensyncAWLANNode opensyncAPState, String apId);
|
||||||
|
|
||||||
|
void dhcpLeasedIpDbTableUpdate(List<Map<String,String>> dhcpAttributes, String apId, RowUpdateOperation rowUpdateOperation);
|
||||||
|
|
||||||
void dhcpLeasedIpDbTableUpdate(List<Map<String, String>> dhcpAttributes, String apId,
|
void commandStateDbTableUpdate(List<Map<String,String>> commandStateAttributes, String apId, RowUpdateOperation rowUpdateOperation);
|
||||||
RowUpdateOperation rowUpdateOperation);
|
|
||||||
|
|
||||||
void commandStateDbTableUpdate(List<Map<String, String>> commandStateAttributes, String apId,
|
|
||||||
RowUpdateOperation rowUpdateOperation);
|
|
||||||
|
|
||||||
void apcStateDbTableUpdate(Map<String, String> apcStateAttributes, String apId,
|
|
||||||
RowUpdateOperation rowUpdateOperation);
|
|
||||||
|
|
||||||
void clearEquipmentStatus(String apId);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import java.util.Set;
|
|||||||
|
|
||||||
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
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.equipment.models.CellSizeAttributes;
|
|
||||||
|
|
||||||
public interface OvsdbClientInterface {
|
public interface OvsdbClientInterface {
|
||||||
|
|
||||||
@@ -22,7 +21,8 @@ public interface OvsdbClientInterface {
|
|||||||
|
|
||||||
void processClientBlocklistChange(String apId, List<MacAddress> blockList);
|
void processClientBlocklistChange(String apId, List<MacAddress> blockList);
|
||||||
|
|
||||||
String processFirmwareDownload(String apId, String firmwareUrl, String firmwareVersion, String username);
|
String processFirmwareDownload(String apId, String firmwareUrl, String firmwareVersion, String username,
|
||||||
|
String validationCode);
|
||||||
|
|
||||||
String closeSession(String apId);
|
String closeSession(String apId);
|
||||||
|
|
||||||
@@ -32,8 +32,6 @@ public interface OvsdbClientInterface {
|
|||||||
|
|
||||||
String processFactoryResetRequest(String apId);
|
String processFactoryResetRequest(String apId);
|
||||||
|
|
||||||
String processNewChannelsRequest(String apId, Map<RadioType,Integer> backupChannelMap, Map<RadioType,Integer> primaryChannelMap);
|
String processNewChannelsRequest(String apId, Map<RadioType,Integer> channelMap);
|
||||||
|
|
||||||
String processCellSizeAttributesRequest(String apId, Map<RadioType, CellSizeAttributes> cellSizeAttributeMap);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -27,13 +26,6 @@ public class ConnectNodeInfo implements Cloneable {
|
|||||||
public String lanIfName;
|
public String lanIfName;
|
||||||
public String lanIfType;
|
public String lanIfType;
|
||||||
public String lanMacAddress;
|
public String lanMacAddress;
|
||||||
public String referenceDesign;
|
|
||||||
public Map<String, String> qrCode;
|
|
||||||
public String modelDescription;
|
|
||||||
public String manufacturerUrl;
|
|
||||||
public String manufacturerName;
|
|
||||||
public String manufacturerDate;
|
|
||||||
public String certificationRegion;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ConnectNodeInfo clone() {
|
public ConnectNodeInfo clone() {
|
||||||
@@ -48,9 +40,6 @@ public class ConnectNodeInfo implements Cloneable {
|
|||||||
if (this.versionMatrix != null) {
|
if (this.versionMatrix != null) {
|
||||||
ret.versionMatrix = new HashMap<>(this.versionMatrix);
|
ret.versionMatrix = new HashMap<>(this.versionMatrix);
|
||||||
}
|
}
|
||||||
if (this.qrCode != null) {
|
|
||||||
ret.qrCode = new HashMap<>(this.qrCode);
|
|
||||||
}
|
|
||||||
return ret;
|
return ret;
|
||||||
} catch (CloneNotSupportedException e) {
|
} catch (CloneNotSupportedException e) {
|
||||||
throw new IllegalStateException("Cannot clone ", e);
|
throw new IllegalStateException("Cannot clone ", e);
|
||||||
@@ -59,44 +48,44 @@ public class ConnectNodeInfo implements Cloneable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return Objects.hash(certificationRegion, country, firmwareVersion, ifName, ifType, ipV4Address, lanIfName, lanIfType, lanIpV4Address, lanMacAddress,
|
return Objects.hash(country, firmwareVersion, ifName, ifType, ipV4Address, lanIfName, lanIfType, lanIpV4Address,
|
||||||
macAddress, managerAddr, manufacturerDate, manufacturerName, manufacturerUrl, model, modelDescription, mqttSettings, platformVersion, qrCode,
|
lanMacAddress, macAddress, managerAddr, model, mqttSettings, platformVersion, redirectorAddr, revision,
|
||||||
redirectorAddr, referenceDesign, revision, serialNumber, skuNumber, versionMatrix, wifiRadioStates);
|
serialNumber, skuNumber, versionMatrix, wifiRadioStates);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object obj) {
|
||||||
if (this == obj)
|
if (this == obj) {
|
||||||
return true;
|
return true;
|
||||||
if (obj == null)
|
}
|
||||||
return false;
|
if (!(obj instanceof ConnectNodeInfo)) {
|
||||||
if (getClass() != obj.getClass())
|
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
ConnectNodeInfo other = (ConnectNodeInfo) obj;
|
ConnectNodeInfo other = (ConnectNodeInfo) obj;
|
||||||
return Objects.equals(certificationRegion, other.certificationRegion) && Objects.equals(country, other.country)
|
return Objects.equals(country, other.country) && Objects.equals(firmwareVersion, other.firmwareVersion)
|
||||||
&& Objects.equals(firmwareVersion, other.firmwareVersion) && Objects.equals(ifName, other.ifName) && Objects.equals(ifType, other.ifType)
|
&& Objects.equals(ifName, other.ifName) && Objects.equals(ifType, other.ifType)
|
||||||
&& Objects.equals(ipV4Address, other.ipV4Address) && Objects.equals(lanIfName, other.lanIfName) && Objects.equals(lanIfType, other.lanIfType)
|
&& Objects.equals(ipV4Address, other.ipV4Address) && Objects.equals(lanIfName, other.lanIfName)
|
||||||
&& Objects.equals(lanIpV4Address, other.lanIpV4Address) && Objects.equals(lanMacAddress, other.lanMacAddress)
|
&& Objects.equals(lanIfType, other.lanIfType) && Objects.equals(lanIpV4Address, other.lanIpV4Address)
|
||||||
&& Objects.equals(macAddress, other.macAddress) && Objects.equals(managerAddr, other.managerAddr)
|
&& Objects.equals(lanMacAddress, other.lanMacAddress) && Objects.equals(macAddress, other.macAddress)
|
||||||
&& Objects.equals(manufacturerDate, other.manufacturerDate) && Objects.equals(manufacturerName, other.manufacturerName)
|
&& Objects.equals(managerAddr, other.managerAddr) && Objects.equals(model, other.model)
|
||||||
&& Objects.equals(manufacturerUrl, other.manufacturerUrl) && Objects.equals(model, other.model)
|
&& Objects.equals(mqttSettings, other.mqttSettings)
|
||||||
&& Objects.equals(modelDescription, other.modelDescription) && Objects.equals(mqttSettings, other.mqttSettings)
|
&& Objects.equals(platformVersion, other.platformVersion)
|
||||||
&& Objects.equals(platformVersion, other.platformVersion) && Objects.equals(qrCode, other.qrCode)
|
&& Objects.equals(redirectorAddr, other.redirectorAddr) && Objects.equals(revision, other.revision)
|
||||||
&& Objects.equals(redirectorAddr, other.redirectorAddr) && Objects.equals(referenceDesign, other.referenceDesign)
|
&& Objects.equals(serialNumber, other.serialNumber) && Objects.equals(skuNumber, other.skuNumber)
|
||||||
&& Objects.equals(revision, other.revision) && Objects.equals(serialNumber, other.serialNumber) && Objects.equals(skuNumber, other.skuNumber)
|
&& Objects.equals(versionMatrix, other.versionMatrix)
|
||||||
&& Objects.equals(versionMatrix, other.versionMatrix) && Objects.equals(wifiRadioStates, other.wifiRadioStates);
|
&& Objects.equals(wifiRadioStates, other.wifiRadioStates);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "ConnectNodeInfo [mqttSettings=" + mqttSettings + ", versionMatrix=" + versionMatrix + ", wifiRadioStates=" + wifiRadioStates
|
return "ConnectNodeInfo [mqttSettings=" + mqttSettings + ", versionMatrix=" + versionMatrix
|
||||||
+ ", redirectorAddr=" + redirectorAddr + ", managerAddr=" + managerAddr + ", skuNumber=" + skuNumber + ", serialNumber=" + serialNumber
|
+ ", wifiRadioStates=" + wifiRadioStates + ", redirectorAddr=" + redirectorAddr + ", managerAddr="
|
||||||
+ ", macAddress=" + macAddress + ", ipV4Address=" + ipV4Address + ", platformVersion=" + platformVersion + ", firmwareVersion="
|
+ managerAddr + ", skuNumber=" + skuNumber + ", serialNumber=" + serialNumber + ", macAddress="
|
||||||
+ firmwareVersion + ", revision=" + revision + ", model=" + model + ", ifName=" + ifName + ", ifType=" + ifType + ", country=" + country
|
+ macAddress + ", ipV4Address=" + ipV4Address + ", platformVersion=" + platformVersion
|
||||||
+ ", lanIpV4Address=" + lanIpV4Address + ", lanIfName=" + lanIfName + ", lanIfType=" + lanIfType + ", lanMacAddress=" + lanMacAddress
|
+ ", firmwareVersion=" + firmwareVersion + ", revision=" + revision + ", model=" + model + ", ifName="
|
||||||
+ ", referenceDesign=" + referenceDesign + ", qrCode=" + qrCode + ", modelDescription=" + modelDescription + ", manufacturerUrl="
|
+ ifName + ", ifType=" + ifType + ", country=" + country + ", lanIpV4Address=" + lanIpV4Address
|
||||||
+ manufacturerUrl + ", manufacturerName=" + manufacturerName + ", manufacturerDate=" + manufacturerDate + ", certificationRegion="
|
+ ", lanIfName=" + lanIfName + ", lanIfType=" + lanIfType + ", lanMacAddress=" + lanMacAddress + "]";
|
||||||
+ certificationRegion + "]";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
|
||||||
|
|
||||||
public abstract class OpensyncAPBase extends BaseJsonModel {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = -68509242520818671L;
|
|
||||||
|
|
||||||
public static <T> T getSingleValueFromSet(Row row, String columnName) {
|
|
||||||
|
|
||||||
Set<T> set = row != null ? row.getSetColumn(columnName) : null;
|
|
||||||
T ret = (set != null) && !set.isEmpty() ? set.iterator().next() : null;
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OpensyncAPBase() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public <T> Set<T> getSet(Row row, String columnName) {
|
|
||||||
|
|
||||||
Set<T> set = row != null ? row.getSetColumn(columnName) : null;
|
|
||||||
|
|
||||||
return set;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -10,6 +10,7 @@ import com.telecominfraproject.wlan.core.model.entity.CountryCode;
|
|||||||
import com.telecominfraproject.wlan.core.model.equipment.EquipmentType;
|
import com.telecominfraproject.wlan.core.model.equipment.EquipmentType;
|
||||||
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
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.core.model.json.BaseJsonModel;
|
||||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
||||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||||
import com.telecominfraproject.wlan.equipment.models.StateSetting;
|
import com.telecominfraproject.wlan.equipment.models.StateSetting;
|
||||||
@@ -23,14 +24,10 @@ import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.Secure
|
|||||||
import com.telecominfraproject.wlan.routing.models.EquipmentGatewayRecord;
|
import com.telecominfraproject.wlan.routing.models.EquipmentGatewayRecord;
|
||||||
import com.telecominfraproject.wlan.routing.models.EquipmentRoutingRecord;
|
import com.telecominfraproject.wlan.routing.models.EquipmentRoutingRecord;
|
||||||
|
|
||||||
public class OpensyncAPConfig extends OpensyncAPBase {
|
public class OpensyncAPConfig extends BaseJsonModel {
|
||||||
|
|
||||||
private static final long serialVersionUID = 3917975477206236668L;
|
private static final long serialVersionUID = 3917975477206236668L;
|
||||||
|
|
||||||
public static long getSerialversionuid() {
|
|
||||||
return serialVersionUID;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Equipment customerEquipment;
|
private Equipment customerEquipment;
|
||||||
private OpensyncAPHotspot20Config hotspotConfig;
|
private OpensyncAPHotspot20Config hotspotConfig;
|
||||||
private Profile apProfile;
|
private Profile apProfile;
|
||||||
@@ -43,205 +40,8 @@ public class OpensyncAPConfig extends OpensyncAPBase {
|
|||||||
private EquipmentGatewayRecord equipmentGateway;
|
private EquipmentGatewayRecord equipmentGateway;
|
||||||
private List<Profile> captiveProfiles;
|
private List<Profile> captiveProfiles;
|
||||||
private List<Profile> bonjourGatewayProfiles;
|
private List<Profile> bonjourGatewayProfiles;
|
||||||
|
|
||||||
private List<MacAddress> blockedClients;
|
private List<MacAddress> blockedClients;
|
||||||
|
|
||||||
@Override
|
|
||||||
public OpensyncAPConfig clone() {
|
|
||||||
OpensyncAPConfig ret = (OpensyncAPConfig) super.clone();
|
|
||||||
|
|
||||||
if (customerEquipment != null) {
|
|
||||||
ret.customerEquipment = customerEquipment.clone();
|
|
||||||
}
|
|
||||||
if (hotspotConfig != null) {
|
|
||||||
ret.hotspotConfig = hotspotConfig.clone();
|
|
||||||
}
|
|
||||||
if (equipmentLocation != null) {
|
|
||||||
ret.equipmentLocation = equipmentLocation.clone();
|
|
||||||
}
|
|
||||||
if (ssidProfile != null) {
|
|
||||||
List<Profile> ssidList = new ArrayList<Profile>();
|
|
||||||
for (Profile profile : ssidProfile) {
|
|
||||||
ssidList.add(profile.clone());
|
|
||||||
}
|
|
||||||
ret.ssidProfile = ssidList;
|
|
||||||
}
|
|
||||||
if (metricsProfile != null) {
|
|
||||||
List<Profile> metricsList = new ArrayList<Profile>();
|
|
||||||
for (Profile profile : metricsProfile) {
|
|
||||||
metricsList.add(profile.clone());
|
|
||||||
}
|
|
||||||
ret.metricsProfile = metricsList;
|
|
||||||
}
|
|
||||||
if (bonjourGatewayProfiles != null) {
|
|
||||||
List<Profile> bonjourGatewayProfilesList = new ArrayList<Profile>();
|
|
||||||
for (Profile profile : bonjourGatewayProfiles) {
|
|
||||||
bonjourGatewayProfilesList.add(profile.clone());
|
|
||||||
}
|
|
||||||
ret.bonjourGatewayProfiles = bonjourGatewayProfilesList;
|
|
||||||
}
|
|
||||||
if (apProfile != null) {
|
|
||||||
ret.apProfile = apProfile.clone();
|
|
||||||
}
|
|
||||||
if (rfProfile != null) {
|
|
||||||
ret.rfProfile = rfProfile.clone();
|
|
||||||
}
|
|
||||||
if (equipmentRouting != null) {
|
|
||||||
ret.equipmentRouting = equipmentRouting.clone();
|
|
||||||
}
|
|
||||||
if (equipmentGateway != null) {
|
|
||||||
ret.equipmentGateway = equipmentGateway.clone();
|
|
||||||
}
|
|
||||||
if (radiusProfiles != null) {
|
|
||||||
ret.radiusProfiles = new ArrayList<>();
|
|
||||||
for (Profile radiusProfile : this.radiusProfiles) {
|
|
||||||
ret.radiusProfiles.add(radiusProfile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (captiveProfiles != null) {
|
|
||||||
ret.captiveProfiles = new ArrayList<>();
|
|
||||||
for (Profile cpConfig : this.captiveProfiles) {
|
|
||||||
ret.captiveProfiles.add(cpConfig);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (blockedClients != null) {
|
|
||||||
ret.blockedClients = new ArrayList<MacAddress>();
|
|
||||||
for (MacAddress blockedClient : this.blockedClients) {
|
|
||||||
ret.blockedClients.add(blockedClient);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (obj == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (getClass() != obj.getClass()) {
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Profile getApProfile() {
|
|
||||||
return apProfile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MacAddress> getBlockedClients() {
|
|
||||||
return blockedClients;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Profile> getBonjourGatewayProfiles() {
|
|
||||||
return bonjourGatewayProfiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Profile> getCaptiveProfiles() {
|
|
||||||
return captiveProfiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCountryCode() {
|
|
||||||
return Location.getCountryCode(this.equipmentLocation).toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Equipment getCustomerEquipment() {
|
|
||||||
return customerEquipment;
|
|
||||||
}
|
|
||||||
|
|
||||||
public EquipmentGatewayRecord getEquipmentGateway() {
|
|
||||||
return equipmentGateway;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Location getEquipmentLocation() {
|
|
||||||
return equipmentLocation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public EquipmentRoutingRecord getEquipmentRouting() {
|
|
||||||
return equipmentRouting;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OpensyncAPHotspot20Config getHotspotConfig() {
|
|
||||||
return hotspotConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Profile> getMetricsProfiles() {
|
|
||||||
return metricsProfile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Profile> getRadiusProfiles() {
|
|
||||||
return radiusProfiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Profile getRfProfile() {
|
|
||||||
return rfProfile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Profile> getSsidProfile() {
|
|
||||||
return ssidProfile;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(apProfile, blockedClients, bonjourGatewayProfiles, captiveProfiles, customerEquipment,
|
|
||||||
equipmentGateway, equipmentLocation, equipmentRouting, hotspotConfig, metricsProfile, radiusProfiles,
|
|
||||||
rfProfile, ssidProfile);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setApProfile(Profile apProfile) {
|
|
||||||
this.apProfile = apProfile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBlockedClients(List<MacAddress> blockedClients) {
|
|
||||||
this.blockedClients = blockedClients;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBonjourGatewayProfiles(List<Profile> bonjourGatewayProfiles) {
|
|
||||||
this.bonjourGatewayProfiles = bonjourGatewayProfiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCaptiveProfiles(List<Profile> captiveProfiles) {
|
|
||||||
this.captiveProfiles = captiveProfiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCustomerEquipment(Equipment customerEquipment) {
|
|
||||||
this.customerEquipment = customerEquipment;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEquipmentGateway(EquipmentGatewayRecord equipmentGateway) {
|
|
||||||
this.equipmentGateway = equipmentGateway;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEquipmentLocation(Location equipmentLocation) {
|
|
||||||
this.equipmentLocation = equipmentLocation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEquipmentRouting(EquipmentRoutingRecord equipmentRouting) {
|
|
||||||
this.equipmentRouting = equipmentRouting;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHotspotConfig(OpensyncAPHotspot20Config hotspotConfig) {
|
|
||||||
this.hotspotConfig = hotspotConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMetricsProfiles(List<Profile> metricsProfileList) {
|
|
||||||
metricsProfile = metricsProfileList;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle Legacy Config Support
|
// Handle Legacy Config Support
|
||||||
public void setRadioConfig(OpensyncAPRadioConfig radioConfig) {
|
public void setRadioConfig(OpensyncAPRadioConfig radioConfig) {
|
||||||
|
|
||||||
@@ -261,21 +61,13 @@ public class OpensyncAPConfig extends OpensyncAPBase {
|
|||||||
equipmentLocation = new Location();
|
equipmentLocation = new Location();
|
||||||
equipmentLocation.setId(1);
|
equipmentLocation.setId(1);
|
||||||
equipmentLocation.setDetails(LocationDetails.createWithDefaults());
|
equipmentLocation.setDetails(LocationDetails.createWithDefaults());
|
||||||
equipmentLocation.getDetails()
|
((LocationDetails) equipmentLocation.getDetails())
|
||||||
.setCountryCode(CountryCode.getByName(radioConfig.getCountry().toLowerCase()));
|
.setCountryCode(CountryCode.getByName(radioConfig.getCountry().toLowerCase()));
|
||||||
customerEquipment.setLocationId(equipmentLocation.getId());
|
customerEquipment.setLocationId(equipmentLocation.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRadiusProfiles(List<Profile> radiusProfiles) {
|
|
||||||
this.radiusProfiles = radiusProfiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRfProfile(Profile rfProfile) {
|
|
||||||
this.rfProfile = rfProfile;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle Legacy Config Support
|
// Handle Legacy Config Support
|
||||||
public void setSsidConfigs(List<OpensyncAPSsidConfig> ssidConfigs) {
|
public void setSsidConfigs(List<OpensyncAPSsidConfig> ssidConfigs) {
|
||||||
|
|
||||||
@@ -297,18 +89,16 @@ public class OpensyncAPConfig extends OpensyncAPBase {
|
|||||||
appliedRadios.add(ssidConfig.getRadioType());
|
appliedRadios.add(ssidConfig.getRadioType());
|
||||||
cfg.setAppliedRadios(appliedRadios);
|
cfg.setAppliedRadios(appliedRadios);
|
||||||
cfg.setSsid(ssidConfig.getSsid());
|
cfg.setSsid(ssidConfig.getSsid());
|
||||||
if (ssidConfig.getEncryption().equals("WPA-PSK") && ssidConfig.getMode().equals("1")) {
|
if (ssidConfig.getEncryption().equals("WPA-PSK") && ssidConfig.getMode().equals("1"))
|
||||||
cfg.setSecureMode(SecureMode.wpaPSK);
|
cfg.setSecureMode(SecureMode.wpaPSK);
|
||||||
} else {
|
else
|
||||||
cfg.setSecureMode(SecureMode.wpa2PSK);
|
cfg.setSecureMode(SecureMode.wpa2PSK);
|
||||||
}
|
|
||||||
cfg.setBroadcastSsid(ssidConfig.isBroadcast() ? StateSetting.enabled : StateSetting.disabled);
|
cfg.setBroadcastSsid(ssidConfig.isBroadcast() ? StateSetting.enabled : StateSetting.disabled);
|
||||||
|
|
||||||
profile.setDetails(cfg);
|
profile.setDetails(cfg);
|
||||||
profile.setId(ssidProfileId);
|
profile.setId(ssidProfileId);
|
||||||
if (this.ssidProfile == null) {
|
if (this.ssidProfile == null)
|
||||||
this.ssidProfile = new ArrayList<Profile>();
|
this.ssidProfile = new ArrayList<Profile>();
|
||||||
}
|
|
||||||
this.ssidProfile.add(profile);
|
this.ssidProfile.add(profile);
|
||||||
apProfile.getChildProfileIds().add(ssidProfileId);
|
apProfile.getChildProfileIds().add(ssidProfileId);
|
||||||
ssidProfileId++;
|
ssidProfileId++;
|
||||||
@@ -321,8 +111,206 @@ public class OpensyncAPConfig extends OpensyncAPBase {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public EquipmentGatewayRecord getEquipmentGateway() {
|
||||||
|
return equipmentGateway;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEquipmentGateway(EquipmentGatewayRecord equipmentGateway) {
|
||||||
|
this.equipmentGateway = equipmentGateway;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EquipmentRoutingRecord getEquipmentRouting() {
|
||||||
|
return equipmentRouting;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEquipmentRouting(EquipmentRoutingRecord equipmentRouting) {
|
||||||
|
this.equipmentRouting = equipmentRouting;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Equipment getCustomerEquipment() {
|
||||||
|
return customerEquipment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCustomerEquipment(Equipment customerEquipment) {
|
||||||
|
this.customerEquipment = customerEquipment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OpensyncAPHotspot20Config getHotspotConfig() {
|
||||||
|
return hotspotConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHotspotConfig(OpensyncAPHotspot20Config hotspotConfig) {
|
||||||
|
this.hotspotConfig = hotspotConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Profile getApProfile() {
|
||||||
|
return apProfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApProfile(Profile apProfile) {
|
||||||
|
this.apProfile = apProfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Profile getRfProfile() {
|
||||||
|
return rfProfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRfProfile(Profile rfProfile) {
|
||||||
|
this.rfProfile = rfProfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Profile> getSsidProfile() {
|
||||||
|
return ssidProfile;
|
||||||
|
}
|
||||||
|
|
||||||
public void setSsidProfile(List<Profile> ssidProfile) {
|
public void setSsidProfile(List<Profile> ssidProfile) {
|
||||||
this.ssidProfile = ssidProfile;
|
this.ssidProfile = ssidProfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Profile> getBonjourGatewayProfiles() {
|
||||||
|
return bonjourGatewayProfiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBonjourGatewayProfiles(List<Profile> bonjourGatewayProfiles) {
|
||||||
|
this.bonjourGatewayProfiles = bonjourGatewayProfiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location getEquipmentLocation() {
|
||||||
|
return equipmentLocation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEquipmentLocation(Location equipmentLocation) {
|
||||||
|
this.equipmentLocation = equipmentLocation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCountryCode() {
|
||||||
|
return Location.getCountryCode(this.equipmentLocation).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long getSerialversionuid() {
|
||||||
|
return serialVersionUID;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public OpensyncAPConfig clone() {
|
||||||
|
OpensyncAPConfig ret = (OpensyncAPConfig) super.clone();
|
||||||
|
|
||||||
|
if (customerEquipment != null)
|
||||||
|
ret.customerEquipment = customerEquipment.clone();
|
||||||
|
if (hotspotConfig != null)
|
||||||
|
ret.hotspotConfig = hotspotConfig.clone();
|
||||||
|
if (equipmentLocation != null)
|
||||||
|
ret.equipmentLocation = equipmentLocation.clone();
|
||||||
|
if (ssidProfile != null) {
|
||||||
|
List<Profile> ssidList = new ArrayList<Profile>();
|
||||||
|
for (Profile profile : ssidProfile) {
|
||||||
|
ssidList.add(profile.clone());
|
||||||
|
}
|
||||||
|
ret.ssidProfile = ssidList;
|
||||||
|
}
|
||||||
|
if (metricsProfile != null) {
|
||||||
|
List<Profile> metricsList = new ArrayList<Profile>();
|
||||||
|
for (Profile profile : metricsProfile) {
|
||||||
|
metricsList.add(profile.clone());
|
||||||
|
}
|
||||||
|
ret.metricsProfile = metricsList;
|
||||||
|
}
|
||||||
|
if (bonjourGatewayProfiles != null) {
|
||||||
|
List<Profile> bonjourGatewayProfilesList = new ArrayList<Profile>();
|
||||||
|
for (Profile profile : bonjourGatewayProfiles) {
|
||||||
|
bonjourGatewayProfilesList.add(profile.clone());
|
||||||
|
}
|
||||||
|
ret.bonjourGatewayProfiles = bonjourGatewayProfilesList;
|
||||||
|
}
|
||||||
|
if (apProfile != null)
|
||||||
|
ret.apProfile = apProfile.clone();
|
||||||
|
if (rfProfile != null)
|
||||||
|
ret.rfProfile = rfProfile.clone();
|
||||||
|
if (equipmentRouting != null)
|
||||||
|
ret.equipmentRouting = equipmentRouting.clone();
|
||||||
|
if (equipmentGateway != null)
|
||||||
|
ret.equipmentGateway = equipmentGateway.clone();
|
||||||
|
if (radiusProfiles != null) {
|
||||||
|
ret.radiusProfiles = new ArrayList<>();
|
||||||
|
for (Profile radiusProfile : this.radiusProfiles) {
|
||||||
|
ret.radiusProfiles.add(radiusProfile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (captiveProfiles != null) {
|
||||||
|
ret.captiveProfiles = new ArrayList<>();
|
||||||
|
for (Profile cpConfig : this.captiveProfiles) {
|
||||||
|
ret.captiveProfiles.add(cpConfig);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (blockedClients != null) {
|
||||||
|
ret.blockedClients = new ArrayList<MacAddress>();
|
||||||
|
for (MacAddress blockedClient : this.blockedClients) {
|
||||||
|
ret.blockedClients.add(blockedClient);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Profile> getRadiusProfiles() {
|
||||||
|
return radiusProfiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRadiusProfiles(List<Profile> radiusProfiles) {
|
||||||
|
this.radiusProfiles = radiusProfiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Profile> getCaptiveProfiles() {
|
||||||
|
return captiveProfiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaptiveProfiles(List<Profile> captiveProfiles) {
|
||||||
|
this.captiveProfiles = captiveProfiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MacAddress> getBlockedClients() {
|
||||||
|
return blockedClients;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBlockedClients(List<MacAddress> blockedClients) {
|
||||||
|
this.blockedClients = blockedClients;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMetricsProfiles(List<Profile> metricsProfileList) {
|
||||||
|
metricsProfile = metricsProfileList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Profile> getMetricsProfiles() {
|
||||||
|
return metricsProfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(apProfile, blockedClients, bonjourGatewayProfiles, captiveProfiles, customerEquipment,
|
||||||
|
equipmentGateway, equipmentLocation, equipmentRouting, hotspotConfig, metricsProfile,
|
||||||
|
radiusProfiles, rfProfile, ssidProfile);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(obj instanceof OpensyncAPConfig)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
OpensyncAPConfig other = (OpensyncAPConfig) obj;
|
||||||
|
return Objects.equals(apProfile, other.apProfile) && Objects.equals(blockedClients, other.blockedClients)
|
||||||
|
&& Objects.equals(bonjourGatewayProfiles, other.bonjourGatewayProfiles)
|
||||||
|
&& Objects.equals(captiveProfiles, other.captiveProfiles)
|
||||||
|
&& Objects.equals(customerEquipment, other.customerEquipment)
|
||||||
|
&& Objects.equals(equipmentGateway, other.equipmentGateway)
|
||||||
|
&& Objects.equals(equipmentLocation, other.equipmentLocation)
|
||||||
|
&& Objects.equals(equipmentRouting, other.equipmentRouting)
|
||||||
|
&& Objects.equals(hotspotConfig, other.hotspotConfig)
|
||||||
|
&& Objects.equals(metricsProfile, other.metricsProfile)
|
||||||
|
&& Objects.equals(radiusProfiles, other.radiusProfiles) && Objects.equals(rfProfile, other.rfProfile)
|
||||||
|
&& Objects.equals(ssidProfile, other.ssidProfile);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,12 +4,13 @@ import java.util.HashSet;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
import com.telecominfraproject.wlan.profile.models.Profile;
|
import com.telecominfraproject.wlan.profile.models.Profile;
|
||||||
|
|
||||||
public class OpensyncAPHotspot20Config extends OpensyncAPBase {
|
public class OpensyncAPHotspot20Config extends BaseJsonModel {
|
||||||
|
|
||||||
private static final long serialVersionUID = -8495473152523219578L;
|
private static final long serialVersionUID = -8495473152523219578L;
|
||||||
|
|
||||||
public static long getSerialversionuid() {
|
public static long getSerialversionuid() {
|
||||||
return serialVersionUID;
|
return serialVersionUID;
|
||||||
}
|
}
|
||||||
@@ -19,6 +20,40 @@ public class OpensyncAPHotspot20Config extends OpensyncAPBase {
|
|||||||
private Set<Profile> hotspot20VenueSet;
|
private Set<Profile> hotspot20VenueSet;
|
||||||
private Set<Profile> hotspot20ProviderSet;
|
private Set<Profile> hotspot20ProviderSet;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public Set<Profile> getHotspot20ProfileSet() {
|
||||||
|
return hotspot20ProfileSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHotspot20ProfileSet(Set<Profile> hotspot20ProfileSet) {
|
||||||
|
this.hotspot20ProfileSet = hotspot20ProfileSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Profile> getHotspot20OperatorSet() {
|
||||||
|
return hotspot20OperatorSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHotspot20OperatorSet(Set<Profile> hotspot20OperatorSet) {
|
||||||
|
this.hotspot20OperatorSet = hotspot20OperatorSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Profile> getHotspot20VenueSet() {
|
||||||
|
return hotspot20VenueSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHotspot20VenueSet(Set<Profile> hotspot20VenueSet) {
|
||||||
|
this.hotspot20VenueSet = hotspot20VenueSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Profile> getHotspot20ProviderSet() {
|
||||||
|
return hotspot20ProviderSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHotspot20ProviderSet(Set<Profile> hotspot20ProviderSet) {
|
||||||
|
this.hotspot20ProviderSet = hotspot20ProviderSet;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OpensyncAPHotspot20Config clone() {
|
public OpensyncAPHotspot20Config clone() {
|
||||||
OpensyncAPHotspot20Config ret = (OpensyncAPHotspot20Config) super.clone();
|
OpensyncAPHotspot20Config ret = (OpensyncAPHotspot20Config) super.clone();
|
||||||
@@ -42,15 +77,17 @@ public class OpensyncAPHotspot20Config extends OpensyncAPBase {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(hotspot20OperatorSet, hotspot20ProfileSet, hotspot20ProviderSet, hotspot20VenueSet);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object obj) {
|
||||||
if (this == obj) {
|
if (this == obj) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (obj == null) {
|
if (!(obj instanceof OpensyncAPHotspot20Config)) {
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (getClass() != obj.getClass()) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
OpensyncAPHotspot20Config other = (OpensyncAPHotspot20Config) obj;
|
OpensyncAPHotspot20Config other = (OpensyncAPHotspot20Config) obj;
|
||||||
@@ -60,41 +97,4 @@ public class OpensyncAPHotspot20Config extends OpensyncAPBase {
|
|||||||
&& Objects.equals(hotspot20VenueSet, other.hotspot20VenueSet);
|
&& Objects.equals(hotspot20VenueSet, other.hotspot20VenueSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<Profile> getHotspot20OperatorSet() {
|
|
||||||
return hotspot20OperatorSet;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Set<Profile> getHotspot20ProfileSet() {
|
|
||||||
return hotspot20ProfileSet;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Set<Profile> getHotspot20ProviderSet() {
|
|
||||||
return hotspot20ProviderSet;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Set<Profile> getHotspot20VenueSet() {
|
|
||||||
return hotspot20VenueSet;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(hotspot20OperatorSet, hotspot20ProfileSet, hotspot20ProviderSet, hotspot20VenueSet);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHotspot20OperatorSet(Set<Profile> hotspot20OperatorSet) {
|
|
||||||
this.hotspot20OperatorSet = hotspot20OperatorSet;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHotspot20ProfileSet(Set<Profile> hotspot20ProfileSet) {
|
|
||||||
this.hotspot20ProfileSet = hotspot20ProfileSet;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHotspot20ProviderSet(Set<Profile> hotspot20ProviderSet) {
|
|
||||||
this.hotspot20ProviderSet = hotspot20ProviderSet;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHotspot20VenueSet(Set<Profile> hotspot20VenueSet) {
|
|
||||||
this.hotspot20VenueSet = hotspot20VenueSet;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,479 +2,457 @@ package com.telecominfraproject.wlan.opensync.external.integration.models;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
|
||||||
|
|
||||||
public class OpensyncAPInetState extends OpensyncAPBase {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1707053648715030173L;
|
|
||||||
|
|
||||||
public static long getSerialversionuid() {
|
|
||||||
return serialVersionUID;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String ifName;
|
|
||||||
public Map<String, String> dhcpd;
|
|
||||||
public String unpnpMode;
|
|
||||||
public String ifType;
|
|
||||||
public String softwdsMacAddr;
|
|
||||||
public boolean enabled;
|
|
||||||
public boolean sofwdsWrap;
|
|
||||||
public int vlanId;
|
|
||||||
public String netmask;
|
|
||||||
public boolean nat;
|
|
||||||
public String greRemoteInetAddr;
|
|
||||||
public String ifUuid;
|
|
||||||
public String inetAddr;
|
|
||||||
public String hwAddr;
|
|
||||||
public int mtw;
|
|
||||||
public boolean network;
|
|
||||||
public Map<String, String> dns;
|
|
||||||
public String parentIfName;
|
|
||||||
public String greIfName;
|
|
||||||
public String broadcast;
|
|
||||||
public Map<String, String> dhcpc;
|
|
||||||
public String gateway;
|
|
||||||
public String ipAssignScheme;
|
|
||||||
public String inetConfig;
|
|
||||||
public Uuid _uuid;
|
|
||||||
public Uuid version;
|
|
||||||
public String greLocalInetAddr;
|
|
||||||
|
|
||||||
public String greRemoteMacAddr;
|
|
||||||
|
|
||||||
public OpensyncAPInetState() {
|
|
||||||
dns = new HashMap<>();
|
|
||||||
dhcpc = new HashMap<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public OpensyncAPInetState(Row row) {
|
|
||||||
dns = new HashMap<>();
|
|
||||||
dhcpc = new HashMap<>();
|
|
||||||
|
|
||||||
Map<String, Value> map = row.getColumns();
|
|
||||||
|
|
||||||
if ((map.get("NAT") != null)
|
|
||||||
&& map.get("NAT").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setNat(row.getBooleanColumn("NAT"));
|
|
||||||
}
|
|
||||||
if ((map.get("enabled") != null)
|
|
||||||
&& map.get("enabled").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setEnabled(row.getBooleanColumn("enabled"));
|
|
||||||
}
|
|
||||||
if ((map.get("if_name") != null)
|
|
||||||
&& map.get("if_name").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setIfName(row.getStringColumn("if_name"));
|
|
||||||
}
|
|
||||||
if ((map.get("if_type") != null)
|
|
||||||
&& map.get("if_type").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setIfType(row.getStringColumn("if_type"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (map.containsKey("dhcpc")) {
|
|
||||||
this.setDhcpc(row.getMapColumn("dhcpc"));
|
|
||||||
}
|
|
||||||
if (map.containsKey("dhcpd")) {
|
|
||||||
this.setDhcpd(row.getMapColumn("dhcpd"));
|
|
||||||
}
|
|
||||||
if (map.containsKey("dns")) {
|
|
||||||
this.setDns(row.getMapColumn("dns"));
|
|
||||||
}
|
|
||||||
if (map.get("inet_addr") != null
|
|
||||||
&& map.get("inet_addr").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setInetAddr(row.getStringColumn("inet_addr"));
|
|
||||||
}
|
|
||||||
if (map.containsKey("netmask")) {
|
|
||||||
this.setNetmask(getSingleValueFromSet(row, "netmask"));
|
|
||||||
}
|
|
||||||
if (map.get("vlan_id") != null
|
|
||||||
&& map.get("vlan_id").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setVlanId(row.getIntegerColumn("vlan_id").intValue());
|
|
||||||
}
|
|
||||||
if (map.get("gre_ifname") != null
|
|
||||||
&& map.get("gre_ifname").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setGreIfName(row.getStringColumn("gre_ifname"));
|
|
||||||
}
|
|
||||||
if (map.get("gre_remote_inet_addr") != null && map.get("gre_remote_inet_addr").getClass()
|
|
||||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setGreRemoteInetAddr(row.getStringColumn("gre_remote_inet_addr"));
|
|
||||||
}
|
|
||||||
if (map.get("gre_local_inet_addr") != null && map.get("gre_local_inet_addr").getClass()
|
|
||||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setGreLocalInetAddr(row.getStringColumn("gre_local_inet_addr"));
|
|
||||||
}
|
|
||||||
if (map.get("gre_remote_mac_addr") != null && map.get("gre_remote_mac_addr").getClass()
|
|
||||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setGreRemoteMacAddr(row.getStringColumn("gre_remote_mac_addr"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((map.get("ip_assign_scheme") != null) && map.get("ip_assign_scheme").getClass()
|
|
||||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setIpAssignScheme(row.getStringColumn("ip_assign_scheme"));
|
|
||||||
}
|
|
||||||
if ((map.get("network") != null)
|
|
||||||
&& map.get("network").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setNetwork(row.getBooleanColumn("network"));
|
|
||||||
}
|
|
||||||
if ((map.get("hwaddr") != null)
|
|
||||||
&& map.get("hwaddr").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setHwAddr(row.getStringColumn("hwaddr"));
|
|
||||||
}
|
|
||||||
if ((map.get("_version") != null)
|
|
||||||
&& map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setVersion(row.getUuidColumn("_version"));
|
|
||||||
}
|
|
||||||
if ((map.get("_uuid") != null)
|
|
||||||
&& map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setVersion(row.getUuidColumn("_uuid"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@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 (!Objects.equals(_uuid, other._uuid)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(broadcast, other.broadcast)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(dhcpc, other.dhcpc)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(dhcpd, other.dhcpd)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(dns, other.dns)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (enabled != other.enabled) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(gateway, other.gateway)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(greIfName, other.greIfName)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(greLocalInetAddr, other.greLocalInetAddr)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(greRemoteInetAddr, other.greRemoteInetAddr)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(hwAddr, other.hwAddr)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(ifName, other.ifName)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(ifType, other.ifType)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(ifUuid, other.ifUuid)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(inetAddr, other.inetAddr)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(inetConfig, other.inetConfig)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(ipAssignScheme, other.ipAssignScheme)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (mtw != other.mtw) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (nat != other.nat) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(netmask, other.netmask)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (network != other.network) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(parentIfName, other.parentIfName)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(greRemoteMacAddr, other.greRemoteMacAddr)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(softwdsMacAddr, other.softwdsMacAddr)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (sofwdsWrap != other.sofwdsWrap) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(unpnpMode, other.unpnpMode)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!Objects.equals(version, other.version)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (vlanId != other.vlanId) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Uuid get_uuid() {
|
|
||||||
return _uuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBroadcast() {
|
|
||||||
return broadcast;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, String> getDhcpc() {
|
|
||||||
return dhcpc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, String> getDhcpd() {
|
|
||||||
return dhcpd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, String> getDns() {
|
|
||||||
return dns;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGateway() {
|
|
||||||
return gateway;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGreIfName() {
|
|
||||||
return greIfName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGreLocalInetAddr() {
|
|
||||||
return greLocalInetAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGreRemoteInetAddr() {
|
|
||||||
return greRemoteInetAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGreRemoteMacAddr() {
|
|
||||||
return this.greRemoteMacAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getHwAddr() {
|
|
||||||
return hwAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIfName() {
|
|
||||||
return ifName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIfType() {
|
|
||||||
return ifType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIfUuid() {
|
|
||||||
return ifUuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getInetAddr() {
|
|
||||||
return inetAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getInetConfig() {
|
|
||||||
return inetConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIpAssignScheme() {
|
|
||||||
return ipAssignScheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getMtw() {
|
|
||||||
return mtw;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getNetmask() {
|
|
||||||
return netmask;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParentIfName() {
|
|
||||||
return parentIfName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSoftwdsMacAddr() {
|
|
||||||
return softwdsMacAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUnpnpMode() {
|
|
||||||
return unpnpMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Uuid getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getVlanId() {
|
|
||||||
return vlanId;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
public class OpensyncAPInetState extends BaseJsonModel {
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(_uuid, broadcast, dhcpc, dhcpd, dns, enabled, gateway, greIfName, greLocalInetAddr, greRemoteInetAddr,
|
private static final long serialVersionUID = 1707053648715030173L;
|
||||||
hwAddr, ifName, ifType, ifUuid, inetAddr, inetConfig, ipAssignScheme, mtw, nat, netmask, network,
|
|
||||||
parentIfName, greRemoteMacAddr, softwdsMacAddr, sofwdsWrap, unpnpMode, version, vlanId);
|
public String ifName;
|
||||||
}
|
public Map<String, String> dhcpd;
|
||||||
|
public String unpnpMode;
|
||||||
|
public String ifType;
|
||||||
|
public String softwdsMacAddr;
|
||||||
|
public boolean enabled;
|
||||||
|
public boolean sofwdsWrap;
|
||||||
|
public int vlanId;
|
||||||
|
public String netmask;
|
||||||
|
public boolean nat;
|
||||||
|
public String greRemoteInetAddr;
|
||||||
|
public String ifUuid;
|
||||||
|
public String inetAddr;
|
||||||
|
public String hwAddr;
|
||||||
|
public int mtw;
|
||||||
|
public boolean network;
|
||||||
|
public Map<String, String> dns;
|
||||||
|
public String parentIfName;
|
||||||
|
public String greIfName;
|
||||||
|
public String broadcast;
|
||||||
|
public Map<String, String> dhcpc;
|
||||||
|
public String gateway;
|
||||||
|
public String ipAssignScheme;
|
||||||
|
public String inetConfig;
|
||||||
|
public Uuid _uuid;
|
||||||
|
public Uuid version;
|
||||||
|
public String greLocalInetAddr;
|
||||||
|
public String greRemoteMacAddr;
|
||||||
|
|
||||||
|
public OpensyncAPInetState() {
|
||||||
|
super();
|
||||||
|
dns = new HashMap<>();
|
||||||
|
dhcpc = new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIfName() {
|
||||||
|
return ifName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIfName(String ifName) {
|
||||||
|
this.ifName = ifName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getDhcpd() {
|
||||||
|
return dhcpd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDhcpd(Map<String, String> dhcpd) {
|
||||||
|
this.dhcpd = dhcpd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUnpnpMode() {
|
||||||
|
return unpnpMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUnpnpMode(String unpnpMode) {
|
||||||
|
this.unpnpMode = unpnpMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIfType() {
|
||||||
|
return ifType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIfType(String ifType) {
|
||||||
|
this.ifType = ifType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSoftwdsMacAddr() {
|
||||||
|
return softwdsMacAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSoftwdsMacAddr(String softwdsMacAddr) {
|
||||||
|
this.softwdsMacAddr = softwdsMacAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnabled(boolean enabled) {
|
||||||
|
this.enabled = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSofwdsWrap() {
|
||||||
|
return sofwdsWrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSofwdsWrap(boolean sofwdsWrap) {
|
||||||
|
this.sofwdsWrap = sofwdsWrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getVlanId() {
|
||||||
|
return vlanId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVlanId(int vlanId) {
|
||||||
|
this.vlanId = vlanId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNetmask() {
|
||||||
|
return netmask;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNetmask(String netmask) {
|
||||||
|
this.netmask = netmask;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isNat() {
|
||||||
|
return nat;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNat(boolean nat) {
|
||||||
|
this.nat = nat;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGreRemoteInetAddr() {
|
||||||
|
return greRemoteInetAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGreRemoteInetAddr(String greRemoteInetAddr) {
|
||||||
|
this.greRemoteInetAddr = greRemoteInetAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIfUuid() {
|
||||||
|
return ifUuid;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isEnabled() {
|
public void setIfUuid(String ifUuid) {
|
||||||
return enabled;
|
this.ifUuid = ifUuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isNat() {
|
public String getInetAddr() {
|
||||||
return nat;
|
return inetAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isNetwork() {
|
public void setInetAddr(String inetAddr) {
|
||||||
return network;
|
this.inetAddr = inetAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSofwdsWrap() {
|
public String getHwAddr() {
|
||||||
return sofwdsWrap;
|
return hwAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void set_uuid(Uuid _uuid) {
|
public void setHwAddr(String hwAddr) {
|
||||||
this._uuid = _uuid;
|
this.hwAddr = hwAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setBroadcast(String broadcast) {
|
public int getMtw() {
|
||||||
this.broadcast = broadcast;
|
return mtw;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDhcpc(Map<String, String> dhcpc) {
|
public void setMtw(int mtw) {
|
||||||
this.dhcpc = dhcpc;
|
this.mtw = mtw;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDhcpd(Map<String, String> dhcpd) {
|
public boolean isNetwork() {
|
||||||
this.dhcpd = dhcpd;
|
return network;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDns(Map<String, String> dns) {
|
public void setNetwork(boolean network) {
|
||||||
this.dns = dns;
|
this.network = network;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEnabled(boolean enabled) {
|
public Map<String, String> getDns() {
|
||||||
this.enabled = enabled;
|
return dns;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGateway(String gateway) {
|
public void setDns(Map<String, String> dns) {
|
||||||
this.gateway = gateway;
|
this.dns = dns;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGreIfName(String greIfName) {
|
public String getParentIfName() {
|
||||||
this.greIfName = greIfName;
|
return parentIfName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGreLocalInetAddr(String greLocalInetAddr) {
|
public void setParentIfName(String parentIfName) {
|
||||||
this.greLocalInetAddr = greLocalInetAddr;
|
this.parentIfName = parentIfName;
|
||||||
|
}
|
||||||
}
|
|
||||||
|
public String getGreIfName() {
|
||||||
public void setGreRemoteInetAddr(String greRemoteInetAddr) {
|
return greIfName;
|
||||||
this.greRemoteInetAddr = greRemoteInetAddr;
|
}
|
||||||
}
|
|
||||||
|
public void setGreIfName(String greIfName) {
|
||||||
public void setGreRemoteMacAddr(String greRemoteMacAddr) {
|
this.greIfName = greIfName;
|
||||||
this.greRemoteMacAddr = greRemoteMacAddr;
|
}
|
||||||
}
|
|
||||||
|
public String getBroadcast() {
|
||||||
public void setHwAddr(String hwAddr) {
|
return broadcast;
|
||||||
this.hwAddr = hwAddr;
|
}
|
||||||
}
|
|
||||||
|
public void setBroadcast(String broadcast) {
|
||||||
public void setIfName(String ifName) {
|
this.broadcast = broadcast;
|
||||||
this.ifName = ifName;
|
}
|
||||||
}
|
|
||||||
|
public Map<String, String> getDhcpc() {
|
||||||
public void setIfType(String ifType) {
|
return dhcpc;
|
||||||
this.ifType = ifType;
|
}
|
||||||
}
|
|
||||||
|
public void setDhcpc(Map<String, String> dhcpc) {
|
||||||
public void setIfUuid(String ifUuid) {
|
this.dhcpc = dhcpc;
|
||||||
this.ifUuid = ifUuid;
|
}
|
||||||
}
|
|
||||||
|
public String getGateway() {
|
||||||
public void setInetAddr(String inetAddr) {
|
return gateway;
|
||||||
this.inetAddr = inetAddr;
|
}
|
||||||
}
|
|
||||||
|
public void setGateway(String gateway) {
|
||||||
public void setInetConfig(String inetConfig) {
|
this.gateway = gateway;
|
||||||
this.inetConfig = inetConfig;
|
}
|
||||||
}
|
|
||||||
|
public String getIpAssignScheme() {
|
||||||
public void setIpAssignScheme(String ipAssignScheme) {
|
return ipAssignScheme;
|
||||||
this.ipAssignScheme = ipAssignScheme;
|
}
|
||||||
}
|
|
||||||
|
public void setIpAssignScheme(String ipAssignScheme) {
|
||||||
public void setMtw(int mtw) {
|
this.ipAssignScheme = ipAssignScheme;
|
||||||
this.mtw = mtw;
|
}
|
||||||
}
|
|
||||||
|
public String getInetConfig() {
|
||||||
public void setNat(boolean nat) {
|
return inetConfig;
|
||||||
this.nat = nat;
|
}
|
||||||
}
|
|
||||||
|
public void setInetConfig(String inetConfig) {
|
||||||
public void setNetmask(String netmask) {
|
this.inetConfig = inetConfig;
|
||||||
this.netmask = netmask;
|
}
|
||||||
}
|
|
||||||
|
public static long getSerialversionuid() {
|
||||||
public void setNetwork(boolean network) {
|
return serialVersionUID;
|
||||||
this.network = network;
|
}
|
||||||
}
|
|
||||||
|
public Uuid get_uuid() {
|
||||||
public void setParentIfName(String parentIfName) {
|
return _uuid;
|
||||||
this.parentIfName = parentIfName;
|
}
|
||||||
}
|
|
||||||
|
public void set_uuid(Uuid _uuid) {
|
||||||
public void setSoftwdsMacAddr(String softwdsMacAddr) {
|
this._uuid = _uuid;
|
||||||
this.softwdsMacAddr = softwdsMacAddr;
|
}
|
||||||
}
|
|
||||||
|
public Uuid getVersion() {
|
||||||
public void setSofwdsWrap(boolean sofwdsWrap) {
|
return version;
|
||||||
this.sofwdsWrap = sofwdsWrap;
|
}
|
||||||
}
|
|
||||||
|
public void setVersion(Uuid version) {
|
||||||
public void setUnpnpMode(String unpnpMode) {
|
this.version = version;
|
||||||
this.unpnpMode = unpnpMode;
|
}
|
||||||
}
|
|
||||||
|
public void setGreLocalInetAddr(String greLocalInetAddr) {
|
||||||
public void setVersion(Uuid version) {
|
this.greLocalInetAddr = greLocalInetAddr;
|
||||||
this.version = version;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVlanId(int vlanId) {
|
public String getGreLocalInetAddr() {
|
||||||
this.vlanId = vlanId;
|
return greLocalInetAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public void setGreRemoteMacAddr(String greRemoteMacAddr) {
|
||||||
public String toString() {
|
this.greRemoteMacAddr = greRemoteMacAddr;
|
||||||
return "OpensyncAPInetState [ifName=" + ifName + ", dhcpd=" + dhcpd + ", unpnpMode=" + unpnpMode + ", ifType="
|
}
|
||||||
+ ifType + ", softwdsMacAddr=" + softwdsMacAddr + ", enabled=" + enabled + ", sofwdsWrap=" + sofwdsWrap
|
|
||||||
+ ", vlanId=" + vlanId + ", netmask=" + netmask + ", nat=" + nat + ", greRemoteInetAddr="
|
public String getGreRemoteMacAddr(){
|
||||||
+ greRemoteInetAddr + ", ifUuid=" + ifUuid + ", inetAddr=" + inetAddr + ", hwAddr=" + hwAddr + ", mtw="
|
return this.greRemoteMacAddr;
|
||||||
+ mtw + ", network=" + network + ", dns=" + dns + ", parentIfName=" + parentIfName + ", greIfName="
|
}
|
||||||
+ greIfName + ", broadcast=" + broadcast + ", dhcpc=" + dhcpc + ", gateway=" + gateway
|
@Override
|
||||||
+ ", ipAssignScheme=" + ipAssignScheme + ", inetConfig=" + inetConfig + ", _uuid=" + _uuid
|
public int hashCode() {
|
||||||
+ ", version=" + version + ", greLocalInetAddr=" + greLocalInetAddr + ", greRemoteMacAddr="
|
final int prime = 31;
|
||||||
+ greRemoteMacAddr + "]";
|
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 + "]";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||||
|
|
||||||
public class OpensyncAPRadioConfig extends OpensyncAPBase {
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
|
|
||||||
|
public class OpensyncAPRadioConfig extends BaseJsonModel {
|
||||||
|
|
||||||
private static final long serialVersionUID = 5683558403622855381L;
|
private static final long serialVersionUID = 5683558403622855381L;
|
||||||
|
|
||||||
@@ -8,41 +10,41 @@ public class OpensyncAPRadioConfig extends OpensyncAPBase {
|
|||||||
private int radioChannel24G;
|
private int radioChannel24G;
|
||||||
private int radioChannel5LG;
|
private int radioChannel5LG;
|
||||||
private int radioChannel5HG;
|
private int radioChannel5HG;
|
||||||
|
|
||||||
@Override
|
|
||||||
public OpensyncAPRadioConfig clone() {
|
|
||||||
return (OpensyncAPRadioConfig) super.clone();
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCountry() {
|
|
||||||
return country;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getRadioChannel24G() {
|
public int getRadioChannel24G() {
|
||||||
return radioChannel24G;
|
return radioChannel24G;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRadioChannel5HG() {
|
|
||||||
return radioChannel5HG;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getRadioChannel5LG() {
|
|
||||||
return radioChannel5LG;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCountry(String country) {
|
|
||||||
this.country = country;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRadioChannel24G(int radioChannel24G) {
|
public void setRadioChannel24G(int radioChannel24G) {
|
||||||
this.radioChannel24G = radioChannel24G;
|
this.radioChannel24G = radioChannel24G;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRadioChannel5HG(int radioChannel5HG) {
|
public int getRadioChannel5LG() {
|
||||||
this.radioChannel5HG = radioChannel5HG;
|
return radioChannel5LG;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRadioChannel5LG(int radioChannel5LG) {
|
public void setRadioChannel5LG(int radioChannel5LG) {
|
||||||
this.radioChannel5LG = radioChannel5LG;
|
this.radioChannel5LG = radioChannel5LG;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getRadioChannel5HG() {
|
||||||
|
return radioChannel5HG;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRadioChannel5HG(int radioChannel5HG) {
|
||||||
|
this.radioChannel5HG = radioChannel5HG;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCountry() {
|
||||||
|
return country;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCountry(String country) {
|
||||||
|
this.country = country;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public OpensyncAPRadioConfig clone() {
|
||||||
|
return (OpensyncAPRadioConfig)super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,30 +1,27 @@
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author mikehansen
|
* @author mikehansen
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class OpensyncAPRadioState extends OpensyncAPBase {
|
public class OpensyncAPRadioState extends BaseJsonModel {
|
||||||
|
|
||||||
private static final long serialVersionUID = 5003143778489404219L;
|
private static final long serialVersionUID = 5003143778489404219L;
|
||||||
|
|
||||||
public static long getSerialversionuid() {
|
|
||||||
return serialVersionUID;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int temperatureControl;
|
public int temperatureControl;
|
||||||
public boolean thermalDowngraded;
|
public boolean thermalDowngraded;
|
||||||
public boolean dfsDemo;
|
public boolean dfsDemo;
|
||||||
@@ -51,15 +48,10 @@ public class OpensyncAPRadioState extends OpensyncAPBase {
|
|||||||
public Map<String, String> hwParams;
|
public Map<String, String> hwParams;
|
||||||
public RadioType freqBand;
|
public RadioType freqBand;
|
||||||
public int thermalIntegration;
|
public int thermalIntegration;
|
||||||
|
|
||||||
public Set<Uuid> vifStates;
|
public Set<Uuid> vifStates;
|
||||||
|
|
||||||
public String channelMode;
|
|
||||||
|
|
||||||
public Uuid _uuid;
|
|
||||||
public Uuid version;
|
|
||||||
|
|
||||||
public OpensyncAPRadioState() {
|
public OpensyncAPRadioState() {
|
||||||
|
super();
|
||||||
allowedChannels = new HashSet<>();
|
allowedChannels = new HashSet<>();
|
||||||
hwConfig = new HashMap<>();
|
hwConfig = new HashMap<>();
|
||||||
channels = new HashMap<>();
|
channels = new HashMap<>();
|
||||||
@@ -67,334 +59,252 @@ public class OpensyncAPRadioState extends OpensyncAPBase {
|
|||||||
vifStates = new HashSet<>();
|
vifStates = new HashSet<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public OpensyncAPRadioState(Row row) {
|
public String channelMode;
|
||||||
this();
|
public Uuid _uuid;
|
||||||
|
public Uuid version;
|
||||||
Map<String, Value> map = row.getColumns();
|
|
||||||
|
|
||||||
if ((map.get("mac") != null)
|
|
||||||
&& map.get("mac").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setMac(row.getStringColumn("mac"));
|
|
||||||
}
|
|
||||||
if ((map.get("channel") != null)
|
|
||||||
&& map.get("channel").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setChannel(row.getIntegerColumn("channel").intValue());
|
|
||||||
}
|
|
||||||
if ((map.get("freq_band") != null)
|
|
||||||
&& map.get("freq_band").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
String frequencyBand = row.getStringColumn("freq_band");
|
|
||||||
switch (frequencyBand) {
|
|
||||||
case "2.4G":
|
|
||||||
this.setFreqBand(RadioType.is2dot4GHz);
|
|
||||||
break;
|
|
||||||
case "5G":
|
|
||||||
this.setFreqBand(RadioType.is5GHz);
|
|
||||||
break;
|
|
||||||
case "5GL":
|
|
||||||
this.setFreqBand(RadioType.is5GHzL);
|
|
||||||
break;
|
|
||||||
case "5GU":
|
|
||||||
this.setFreqBand(RadioType.is5GHzU);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
this.setFreqBand(RadioType.UNSUPPORTED);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ((map.get("if_name") != null)
|
|
||||||
&& map.get("if_name").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setIfName(row.getStringColumn("if_name"));
|
|
||||||
}
|
|
||||||
if ((map.get("channel_mode") != null)
|
|
||||||
&& map.get("channel_mode").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setChannelMode(row.getStringColumn("channel_mode"));
|
|
||||||
}
|
|
||||||
if ((map.get("country") != null)
|
|
||||||
&& map.get("country").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setCountry(row.getStringColumn("country").toUpperCase());
|
|
||||||
}
|
|
||||||
if ((map.get("enabled") != null)
|
|
||||||
&& map.get("enabled").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setEnabled(row.getBooleanColumn("enabled"));
|
|
||||||
}
|
|
||||||
if ((map.get("ht_mode") != null)
|
|
||||||
&& map.get("ht_mode").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setHtMode(row.getStringColumn("ht_mode"));
|
|
||||||
}
|
|
||||||
if ((map.get("tx_power") != null)
|
|
||||||
&& map.get("tx_power").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setTxPower(row.getIntegerColumn("tx_power").intValue());
|
|
||||||
}
|
|
||||||
if ((map.get("hw_config") != null)
|
|
||||||
&& map.get("hw_config").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Map.class)) {
|
|
||||||
this.setHwConfig(row.getMapColumn("hw_config"));
|
|
||||||
}
|
|
||||||
if ((map.get("_version") != null)
|
|
||||||
&& map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setVersion(row.getUuidColumn("_version"));
|
|
||||||
}
|
|
||||||
if ((map.get("_uuid") != null)
|
|
||||||
&& map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setVersion(row.getUuidColumn("_uuid"));
|
|
||||||
}
|
|
||||||
if (map.get("allowed_channels") != null) {
|
|
||||||
|
|
||||||
Set<Long> allowedChannels = getSet(row, "allowed_channels");
|
|
||||||
|
|
||||||
Set<Integer> allowed = new HashSet<>();
|
|
||||||
for (Long channel : allowedChannels) {
|
|
||||||
allowed.add(channel.intValue());
|
|
||||||
}
|
|
||||||
this.setAllowedChannels(allowed);
|
|
||||||
}
|
|
||||||
if (map.get("channels") != null) {
|
|
||||||
|
|
||||||
Map<String, String> channels = row.getMapColumn("channels");
|
|
||||||
this.setChannels(channels);
|
|
||||||
}
|
|
||||||
|
|
||||||
Set<Uuid> vifStates = row.getSetColumn("vif_states");
|
|
||||||
this.setVifStates(vifStates);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public Uuid get_uuid() {
|
|
||||||
return _uuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Set<Integer> getAllowedChannels() {
|
|
||||||
return allowedChannels;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getBcnInt() {
|
|
||||||
return bcnInt;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getChannel() {
|
|
||||||
return channel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getChannelMode() {
|
|
||||||
return channelMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, String> getChannels() {
|
|
||||||
return channels;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getChannelSync() {
|
|
||||||
return channelSync;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCountry() {
|
|
||||||
return country;
|
|
||||||
}
|
|
||||||
|
|
||||||
public RadioType getFreqBand() {
|
|
||||||
return freqBand;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getHtMode() {
|
|
||||||
return htMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, String> getHwConfig() {
|
|
||||||
return hwConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getHwMode() {
|
|
||||||
return hwMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, String> getHwParams() {
|
|
||||||
return hwParams;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getHwType() {
|
|
||||||
return hwType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIfName() {
|
|
||||||
return ifName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMac() {
|
|
||||||
return mac;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRadar() {
|
|
||||||
return radar;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getTemperatureControl() {
|
public int getTemperatureControl() {
|
||||||
return temperatureControl;
|
return temperatureControl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getThermalDowngradeTemp() {
|
|
||||||
return thermalDowngradeTemp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getThermalIntegration() {
|
|
||||||
return thermalIntegration;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getThermalShutdown() {
|
|
||||||
return thermalShutdown;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getThermalTxChainmask() {
|
|
||||||
return thermalTxChainmask;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getThermalUpgradeTemp() {
|
|
||||||
return thermalUpgradeTemp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getTxChainmask() {
|
|
||||||
return txChainmask;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getTxPower() {
|
|
||||||
return txPower;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Uuid getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Set<Uuid> getVifStates() {
|
|
||||||
return vifStates;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isDfsDemo() {
|
|
||||||
return dfsDemo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isEnabled() {
|
|
||||||
return enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isThermalDowngraded() {
|
|
||||||
return thermalDowngraded;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void set_uuid(Uuid _uuid) {
|
|
||||||
this._uuid = _uuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAllowedChannels(Set<Integer> allowedChannels) {
|
|
||||||
this.allowedChannels = allowedChannels;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBcnInt(int bcnInt) {
|
|
||||||
this.bcnInt = bcnInt;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChannel(int channel) {
|
|
||||||
this.channel = channel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChannelMode(String channelMode) {
|
|
||||||
this.channelMode = channelMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChannels(Map<String, String> channels) {
|
|
||||||
this.channels = channels;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChannelSync(int channelSync) {
|
|
||||||
this.channelSync = channelSync;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCountry(String country) {
|
|
||||||
this.country = country;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDfsDemo(boolean dfsDemo) {
|
|
||||||
this.dfsDemo = dfsDemo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEnabled(boolean enabled) {
|
|
||||||
this.enabled = enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFreqBand(RadioType freqBand) {
|
|
||||||
this.freqBand = freqBand;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHtMode(String htMode) {
|
|
||||||
this.htMode = htMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHwConfig(Map<String, String> hwConfig) {
|
|
||||||
this.hwConfig = hwConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHwMode(String hwMode) {
|
|
||||||
this.hwMode = hwMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHwParams(Map<String, String> hwParams) {
|
|
||||||
this.hwParams = hwParams;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHwType(int hwType) {
|
|
||||||
this.hwType = hwType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIfName(String ifName) {
|
|
||||||
this.ifName = ifName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMac(String mac) {
|
|
||||||
this.mac = mac;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRadar(String radar) {
|
|
||||||
this.radar = radar;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTemperatureControl(int temperatureControl) {
|
public void setTemperatureControl(int temperatureControl) {
|
||||||
this.temperatureControl = temperatureControl;
|
this.temperatureControl = temperatureControl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isThermalDowngraded() {
|
||||||
|
return thermalDowngraded;
|
||||||
|
}
|
||||||
|
|
||||||
public void setThermalDowngraded(boolean thermalDowngraded) {
|
public void setThermalDowngraded(boolean thermalDowngraded) {
|
||||||
this.thermalDowngraded = thermalDowngraded;
|
this.thermalDowngraded = thermalDowngraded;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setThermalDowngradeTemp(int thermalDowngradeTemp) {
|
public boolean isDfsDemo() {
|
||||||
this.thermalDowngradeTemp = thermalDowngradeTemp;
|
return dfsDemo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setThermalIntegration(int thermalIntegration) {
|
public void setDfsDemo(boolean dfsDemo) {
|
||||||
this.thermalIntegration = thermalIntegration;
|
this.dfsDemo = dfsDemo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setThermalShutdown(int thermalShutdown) {
|
public String getIfName() {
|
||||||
this.thermalShutdown = thermalShutdown;
|
return ifName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setThermalTxChainmask(int thermalTxChainmask) {
|
public void setIfName(String ifName) {
|
||||||
this.thermalTxChainmask = thermalTxChainmask;
|
this.ifName = ifName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setThermalUpgradeTemp(int thermalUpgradeTemp) {
|
public String getMac() {
|
||||||
this.thermalUpgradeTemp = thermalUpgradeTemp;
|
return mac;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTxChainmask(int txChainmask) {
|
public void setMac(String mac) {
|
||||||
this.txChainmask = txChainmask;
|
this.mac = mac;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTxPower(int txPower) {
|
public Set<Uuid> getVifStates() {
|
||||||
this.txPower = txPower;
|
return vifStates;
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersion(Uuid version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVifStates(Set<Uuid> vifStates) {
|
public void setVifStates(Set<Uuid> vifStates) {
|
||||||
this.vifStates = vifStates;
|
this.vifStates = vifStates;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getBcnInt() {
|
||||||
|
return bcnInt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBcnInt(int bcnInt) {
|
||||||
|
this.bcnInt = bcnInt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getThermalTxChainmask() {
|
||||||
|
return thermalTxChainmask;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setThermalTxChainmask(int thermalTxChainmask) {
|
||||||
|
this.thermalTxChainmask = thermalTxChainmask;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Integer> getAllowedChannels() {
|
||||||
|
return allowedChannels;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAllowedChannels(Set<Integer> allowedChannels) {
|
||||||
|
this.allowedChannels = allowedChannels;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getThermalShutdown() {
|
||||||
|
return thermalShutdown;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setThermalShutdown(int thermalShutdown) {
|
||||||
|
this.thermalShutdown = thermalShutdown;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getChannelSync() {
|
||||||
|
return channelSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChannelSync(int channelSync) {
|
||||||
|
this.channelSync = channelSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHwType() {
|
||||||
|
return hwType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHwType(int hwType) {
|
||||||
|
this.hwType = hwType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTxChainmask() {
|
||||||
|
return txChainmask;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTxChainmask(int txChainmask) {
|
||||||
|
this.txChainmask = txChainmask;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRadar() {
|
||||||
|
return radar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRadar(String radar) {
|
||||||
|
this.radar = radar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCountry() {
|
||||||
|
return country;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCountry(String country) {
|
||||||
|
this.country = country;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getHwConfig() {
|
||||||
|
return hwConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHwConfig(Map<String, String> hwConfig) {
|
||||||
|
this.hwConfig = hwConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getChannel() {
|
||||||
|
return channel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChannel(int channel) {
|
||||||
|
this.channel = channel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTxPower() {
|
||||||
|
return txPower;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTxPower(int txPower) {
|
||||||
|
this.txPower = txPower;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHtMode() {
|
||||||
|
return htMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHtMode(String htMode) {
|
||||||
|
this.htMode = htMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getThermalDowngradeTemp() {
|
||||||
|
return thermalDowngradeTemp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setThermalDowngradeTemp(int thermalDowngradeTemp) {
|
||||||
|
this.thermalDowngradeTemp = thermalDowngradeTemp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHwMode() {
|
||||||
|
return hwMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHwMode(String hwMode) {
|
||||||
|
this.hwMode = hwMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnabled(boolean enabled) {
|
||||||
|
this.enabled = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getChannels() {
|
||||||
|
return channels;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChannels(Map<String, String> channels) {
|
||||||
|
this.channels = channels;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getThermalUpgradeTemp() {
|
||||||
|
return thermalUpgradeTemp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setThermalUpgradeTemp(int thermalUpgradeTemp) {
|
||||||
|
this.thermalUpgradeTemp = thermalUpgradeTemp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getHwParams() {
|
||||||
|
return hwParams;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHwParams(Map<String, String> hwParams) {
|
||||||
|
this.hwParams = hwParams;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RadioType getFreqBand() {
|
||||||
|
return freqBand;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFreqBand(RadioType freqBand) {
|
||||||
|
this.freqBand = freqBand;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getThermalIntegration() {
|
||||||
|
return thermalIntegration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setThermalIntegration(int thermalIntegration) {
|
||||||
|
this.thermalIntegration = thermalIntegration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getChannelMode() {
|
||||||
|
return channelMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChannelMode(String channelMode) {
|
||||||
|
this.channelMode = channelMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long getSerialversionuid() {
|
||||||
|
return serialVersionUID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Uuid get_uuid() {
|
||||||
|
return _uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void set_uuid(Uuid _uuid) {
|
||||||
|
this._uuid = _uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Uuid getVersion() {
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVersion(Uuid version) {
|
||||||
|
this.version = version;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||||
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
|
|
||||||
public class OpensyncAPSsidConfig extends OpensyncAPBase {
|
public class OpensyncAPSsidConfig extends BaseJsonModel {
|
||||||
|
|
||||||
private static final long serialVersionUID = -8540144450360788799L;
|
private static final long serialVersionUID = -8540144450360788799L;
|
||||||
|
|
||||||
@@ -12,30 +13,45 @@ public class OpensyncAPSsidConfig extends OpensyncAPBase {
|
|||||||
private String key;
|
private String key;
|
||||||
private String mode;
|
private String mode;
|
||||||
private boolean broadcast;
|
private boolean broadcast;
|
||||||
|
|
||||||
|
public RadioType getRadioType() {
|
||||||
|
return radioType;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
public void setRadioType(RadioType radioType) {
|
||||||
public OpensyncAPSsidConfig clone() {
|
this.radioType = radioType;
|
||||||
return (OpensyncAPSsidConfig) super.clone();
|
}
|
||||||
|
|
||||||
|
public String getSsid() {
|
||||||
|
return ssid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSsid(String ssid) {
|
||||||
|
this.ssid = ssid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getEncryption() {
|
public String getEncryption() {
|
||||||
return encryption;
|
return encryption;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setEncryption(String encryption) {
|
||||||
|
this.encryption = encryption;
|
||||||
|
}
|
||||||
|
|
||||||
public String getKey() {
|
public String getKey() {
|
||||||
return key;
|
return key;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setKey(String key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
public String getMode() {
|
public String getMode() {
|
||||||
return mode;
|
return mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RadioType getRadioType() {
|
public void setMode(String mode) {
|
||||||
return radioType;
|
this.mode = mode;
|
||||||
}
|
|
||||||
|
|
||||||
public String getSsid() {
|
|
||||||
return ssid;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isBroadcast() {
|
public boolean isBroadcast() {
|
||||||
@@ -46,24 +62,9 @@ public class OpensyncAPSsidConfig extends OpensyncAPBase {
|
|||||||
this.broadcast = broadcast;
|
this.broadcast = broadcast;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEncryption(String encryption) {
|
@Override
|
||||||
this.encryption = encryption;
|
public OpensyncAPSsidConfig clone() {
|
||||||
}
|
return (OpensyncAPSsidConfig)super.clone();
|
||||||
|
|
||||||
public void setKey(String key) {
|
|
||||||
this.key = key;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMode(String mode) {
|
|
||||||
this.mode = mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRadioType(RadioType radioType) {
|
|
||||||
this.radioType = radioType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSsid(String ssid) {
|
|
||||||
this.ssid = ssid;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -6,18 +6,13 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
|
||||||
|
|
||||||
public class OpensyncAPVIFState extends OpensyncAPBase {
|
public class OpensyncAPVIFState extends BaseJsonModel {
|
||||||
|
|
||||||
private static final long serialVersionUID = -4916251246542770881L;
|
private static final long serialVersionUID = -4916251246542770881L;
|
||||||
|
|
||||||
public static long getSerialversionuid() {
|
|
||||||
return serialVersionUID;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String ifName;
|
public String ifName;
|
||||||
public int vifRadioIdx;
|
public int vifRadioIdx;
|
||||||
public String parent;
|
public String parent;
|
||||||
@@ -29,8 +24,8 @@ public class OpensyncAPVIFState extends OpensyncAPBase {
|
|||||||
public String ssid;
|
public String ssid;
|
||||||
public Map<String, String> security;
|
public Map<String, String> security;
|
||||||
public String macList;
|
public String macList;
|
||||||
|
|
||||||
public List<Uuid> associatedClients;
|
public List<Uuid> associatedClients;
|
||||||
|
|
||||||
public boolean enabled;
|
public boolean enabled;
|
||||||
public int vlanId;
|
public int vlanId;
|
||||||
public int btm;
|
public int btm;
|
||||||
@@ -45,321 +40,232 @@ public class OpensyncAPVIFState extends OpensyncAPBase {
|
|||||||
public boolean dynamicBeacon;
|
public boolean dynamicBeacon;
|
||||||
public int channel;
|
public int channel;
|
||||||
public Uuid _uuid;
|
public Uuid _uuid;
|
||||||
|
|
||||||
public Uuid version;
|
public Uuid version;
|
||||||
|
|
||||||
public OpensyncAPVIFState() {
|
|
||||||
security = new HashMap<>();
|
|
||||||
associatedClients = new ArrayList<>();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public OpensyncAPVIFState(Row row) {
|
|
||||||
Map<String, Value> map = row.getColumns();
|
|
||||||
|
|
||||||
if ((map.get("mac") != null)
|
|
||||||
&& map.get("mac").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setMac(row.getStringColumn("mac"));
|
|
||||||
}
|
|
||||||
if ((map.get("bridge") != null)
|
|
||||||
&& map.get("bridge").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setBridge(row.getStringColumn("bridge"));
|
|
||||||
}
|
|
||||||
if ((map.get("btm") != null)
|
|
||||||
&& map.get("btm").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setBtm(row.getIntegerColumn("btm").intValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((map.get("channel") != null)
|
|
||||||
&& map.get("channel").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setChannel(row.getIntegerColumn("channel").intValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((map.get("enabled") != null)
|
|
||||||
&& map.get("enabled").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setEnabled(row.getBooleanColumn("enabled"));
|
|
||||||
}
|
|
||||||
|
|
||||||
Long ftPsk = getSingleValueFromSet(row, "ft_psk");
|
|
||||||
if (ftPsk != null) {
|
|
||||||
this.setFtPsk(ftPsk.intValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
Long ftMobilityDomain = getSingleValueFromSet(row, "ft_mobility_domain");
|
|
||||||
if (ftMobilityDomain != null) {
|
|
||||||
this.setFtMobilityDomain(ftMobilityDomain.intValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((map.get("group_rekey") != null)
|
|
||||||
&& map.get("group_rekey").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setGroupRekey(row.getIntegerColumn("group_rekey").intValue());
|
|
||||||
}
|
|
||||||
if ((map.get("if_name") != null)
|
|
||||||
&& map.get("if_name").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setIfName(row.getStringColumn("if_name"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((map.get("mode") != null)
|
|
||||||
&& map.get("mode").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setMode(row.getStringColumn("mode"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((map.get("rrm") != null)
|
|
||||||
&& map.get("rrm").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setRrm(row.getIntegerColumn("rrm").intValue());
|
|
||||||
}
|
|
||||||
if ((map.get("ssid") != null)
|
|
||||||
&& map.get("ssid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setSsid(row.getStringColumn("ssid"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((map.get("ssid_broadcast") != null) && map.get("ssid_broadcast").getClass()
|
|
||||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setSsidBroadcast(row.getStringColumn("ssid_broadcast"));
|
|
||||||
}
|
|
||||||
if ((map.get("uapsd_enable") != null)
|
|
||||||
&& map.get("uapsd_enable").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setUapsdEnable(row.getBooleanColumn("uapsd_enable"));
|
|
||||||
}
|
|
||||||
if ((map.get("vif_radio_idx") != null) && map.get("vif_radio_idx").getClass()
|
|
||||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setVifRadioIdx(row.getIntegerColumn("vif_radio_idx").intValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
List<Uuid> associatedClientsList = new ArrayList<>();
|
|
||||||
|
|
||||||
Set<Uuid> clients = row.getSetColumn("associated_clients");
|
|
||||||
associatedClientsList.addAll(clients);
|
|
||||||
|
|
||||||
this.setAssociatedClients(associatedClientsList);
|
|
||||||
|
|
||||||
if (map.get("security") != null) {
|
|
||||||
this.setSecurity(row.getMapColumn("security"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((map.get("_version") != null)
|
|
||||||
&& map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setVersion(row.getUuidColumn("_version"));
|
|
||||||
}
|
|
||||||
if ((map.get("_uuid") != null)
|
|
||||||
&& map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setVersion(row.getUuidColumn("_uuid"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Uuid get_uuid() {
|
|
||||||
return _uuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Uuid> getAssociatedClients() {
|
|
||||||
return associatedClients;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBridge() {
|
|
||||||
return bridge;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getBtm() {
|
|
||||||
return btm;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getChannel() {
|
|
||||||
return channel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getFtMobilityDomain() {
|
|
||||||
return ftMobilityDomain;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getFtPsk() {
|
|
||||||
return ftPsk;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getGroupRekey() {
|
|
||||||
return groupRekey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIfName() {
|
public String getIfName() {
|
||||||
return ifName;
|
return ifName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getMac() {
|
public OpensyncAPVIFState() {
|
||||||
return mac;
|
super();
|
||||||
}
|
security = new HashMap<>();
|
||||||
|
associatedClients = new ArrayList<>();
|
||||||
|
|
||||||
public String getMacList() {
|
|
||||||
return macList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMinHwMode() {
|
|
||||||
return minHwMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMode() {
|
|
||||||
return mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParent() {
|
|
||||||
return parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getRrm() {
|
|
||||||
return rrm;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, String> getSecurity() {
|
|
||||||
return security;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSsid() {
|
|
||||||
return ssid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSsidBroadcast() {
|
|
||||||
return ssidBroadcast;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getState() {
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Uuid getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getVifRadioIdx() {
|
|
||||||
return vifRadioIdx;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getVlanId() {
|
|
||||||
return vlanId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isApBridge() {
|
|
||||||
return apBridge;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isDynamicBeacon() {
|
|
||||||
return dynamicBeacon;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isEnabled() {
|
|
||||||
return enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isUapsdEnable() {
|
|
||||||
return uapsdEnable;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isWds() {
|
|
||||||
return wds;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void set_uuid(Uuid _uuid) {
|
|
||||||
this._uuid = _uuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setApBridge(boolean apBridge) {
|
|
||||||
this.apBridge = apBridge;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAssociatedClients(List<Uuid> list) {
|
|
||||||
this.associatedClients = list;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBridge(String bridge) {
|
|
||||||
this.bridge = bridge;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBtm(int btm) {
|
|
||||||
this.btm = btm;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChannel(int channel) {
|
|
||||||
this.channel = channel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDynamicBeacon(boolean dynamicBeacon) {
|
|
||||||
this.dynamicBeacon = dynamicBeacon;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEnabled(boolean enabled) {
|
|
||||||
this.enabled = enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFtMobilityDomain(int ftMobilityDomain) {
|
|
||||||
this.ftMobilityDomain = ftMobilityDomain;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFtPsk(int ftPsk) {
|
|
||||||
this.ftPsk = ftPsk;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGroupRekey(int groupRekey) {
|
|
||||||
this.groupRekey = groupRekey;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIfName(String ifName) {
|
public void setIfName(String ifName) {
|
||||||
this.ifName = ifName;
|
this.ifName = ifName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMac(String mac) {
|
public int getVifRadioIdx() {
|
||||||
this.mac = mac;
|
return vifRadioIdx;
|
||||||
}
|
|
||||||
|
|
||||||
public void setMacList(String macList) {
|
|
||||||
this.macList = macList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMinHwMode(String minHwMode) {
|
|
||||||
this.minHwMode = minHwMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMode(String mode) {
|
|
||||||
this.mode = mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParent(String parent) {
|
|
||||||
this.parent = parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRrm(int rrm) {
|
|
||||||
this.rrm = rrm;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSecurity(Map<String, String> security) {
|
|
||||||
this.security = security;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSsid(String ssid) {
|
|
||||||
this.ssid = ssid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSsidBroadcast(String ssidBroadcast) {
|
|
||||||
this.ssidBroadcast = ssidBroadcast;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setState(String state) {
|
|
||||||
this.state = state;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUapsdEnable(boolean uapsdEnable) {
|
|
||||||
this.uapsdEnable = uapsdEnable;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersion(Uuid version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVifRadioIdx(int vifRadioIdx) {
|
public void setVifRadioIdx(int vifRadioIdx) {
|
||||||
this.vifRadioIdx = vifRadioIdx;
|
this.vifRadioIdx = vifRadioIdx;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVlanId(int vlanId) {
|
public String getParent() {
|
||||||
this.vlanId = vlanId;
|
return parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setParent(String parent) {
|
||||||
|
this.parent = parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getState() {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setState(String state) {
|
||||||
|
this.state = state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMac() {
|
||||||
|
return mac;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMac(String mac) {
|
||||||
|
this.mac = mac;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isApBridge() {
|
||||||
|
return apBridge;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApBridge(boolean apBridge) {
|
||||||
|
this.apBridge = apBridge;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUapsdEnable() {
|
||||||
|
return uapsdEnable;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUapsdEnable(boolean uapsdEnable) {
|
||||||
|
this.uapsdEnable = uapsdEnable;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isWds() {
|
||||||
|
return wds;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setWds(boolean wds) {
|
public void setWds(boolean wds) {
|
||||||
this.wds = wds;
|
this.wds = wds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSsid() {
|
||||||
|
return ssid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSsid(String ssid) {
|
||||||
|
this.ssid = ssid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getSecurity() {
|
||||||
|
return security;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSecurity(Map<String, String> security) {
|
||||||
|
this.security = security;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMacList() {
|
||||||
|
return macList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMacList(String macList) {
|
||||||
|
this.macList = macList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Uuid> getAssociatedClients() {
|
||||||
|
return associatedClients;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAssociatedClients(List<Uuid> list) {
|
||||||
|
this.associatedClients = list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnabled(boolean enabled) {
|
||||||
|
this.enabled = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getVlanId() {
|
||||||
|
return vlanId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVlanId(int vlanId) {
|
||||||
|
this.vlanId = vlanId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getBtm() {
|
||||||
|
return btm;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBtm(int btm) {
|
||||||
|
this.btm = btm;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMinHwMode() {
|
||||||
|
return minHwMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMinHwMode(String minHwMode) {
|
||||||
|
this.minHwMode = minHwMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSsidBroadcast() {
|
||||||
|
return ssidBroadcast;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSsidBroadcast(String ssidBroadcast) {
|
||||||
|
this.ssidBroadcast = ssidBroadcast;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMode() {
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMode(String mode) {
|
||||||
|
this.mode = mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBridge() {
|
||||||
|
return bridge;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBridge(String bridge) {
|
||||||
|
this.bridge = bridge;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getGroupRekey() {
|
||||||
|
return groupRekey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGroupRekey(int groupRekey) {
|
||||||
|
this.groupRekey = groupRekey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getFtMobilityDomain() {
|
||||||
|
return ftMobilityDomain;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFtMobilityDomain(int ftMobilityDomain) {
|
||||||
|
this.ftMobilityDomain = ftMobilityDomain;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getFtPsk() {
|
||||||
|
return ftPsk;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFtPsk(int ftPsk) {
|
||||||
|
this.ftPsk = ftPsk;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRrm() {
|
||||||
|
return rrm;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRrm(int rrm) {
|
||||||
|
this.rrm = rrm;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isDynamicBeacon() {
|
||||||
|
return dynamicBeacon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDynamicBeacon(boolean dynamicBeacon) {
|
||||||
|
this.dynamicBeacon = dynamicBeacon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getChannel() {
|
||||||
|
return channel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChannel(int channel) {
|
||||||
|
this.channel = channel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long getSerialversionuid() {
|
||||||
|
return serialVersionUID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Uuid get_uuid() {
|
||||||
|
return _uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void set_uuid(Uuid _uuid) {
|
||||||
|
this._uuid = _uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Uuid getVersion() {
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVersion(Uuid version) {
|
||||||
|
this.version = version;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,28 +1,22 @@
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author mikehansen
|
* @author mikehansen
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class OpensyncAWLANNode extends OpensyncAPBase {
|
public class OpensyncAWLANNode extends BaseJsonModel {
|
||||||
|
|
||||||
private static final long serialVersionUID = -6172956297643126710L;
|
private static final long serialVersionUID = -6172956297643126710L;
|
||||||
|
|
||||||
public static long getSerialversionuid() {
|
|
||||||
return serialVersionUID;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<Object, Object> mqttSettings;
|
public Map<Object, Object> mqttSettings;
|
||||||
public String model;
|
public String model;
|
||||||
public String skuNumber;
|
public String skuNumber;
|
||||||
@@ -46,19 +40,11 @@ public class OpensyncAWLANNode extends OpensyncAPBase {
|
|||||||
public String revision;
|
public String revision;
|
||||||
public String managerAddr;
|
public String managerAddr;
|
||||||
public boolean factoryReset;
|
public boolean factoryReset;
|
||||||
public String referenceDesign;
|
|
||||||
public Map<String, String> qrCode;
|
|
||||||
public String modelDescription;
|
|
||||||
public String manufacturerUrl;
|
|
||||||
public String manufacturerName;
|
|
||||||
public String manufacturerDate;
|
|
||||||
public String certificationRegion;
|
|
||||||
|
|
||||||
public Uuid _uuid;
|
public Uuid _uuid;
|
||||||
|
|
||||||
public Uuid version;
|
public Uuid version;
|
||||||
|
|
||||||
public OpensyncAWLANNode() {
|
public OpensyncAWLANNode() {
|
||||||
|
super();
|
||||||
mqttSettings = new HashMap<>();
|
mqttSettings = new HashMap<>();
|
||||||
versionMatrix = new HashMap<>();
|
versionMatrix = new HashMap<>();
|
||||||
ledConfig = new HashMap<>();
|
ledConfig = new HashMap<>();
|
||||||
@@ -66,391 +52,208 @@ public class OpensyncAWLANNode extends OpensyncAPBase {
|
|||||||
mqttTopics = new HashMap<>();
|
mqttTopics = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public OpensyncAWLANNode(Row row) {
|
|
||||||
this();
|
|
||||||
|
|
||||||
// mqtt_settings {"key":"string","max":"unlimited","min":0,"value":"string"}
|
|
||||||
// model {"key":"string","min":0}
|
|
||||||
// sku_number {"key":"string","min":0}
|
|
||||||
// version_matrix {"key":"string","max":"unlimited","min":0,"value":{"maxLength":128,"type":"string"}}
|
|
||||||
// model_description "string"
|
|
||||||
// certification_region "string"
|
|
||||||
// id "string"
|
|
||||||
// firmware_version "string"
|
|
||||||
// firmware_url {"key":{"maxLength":256,"type":"string"}}
|
|
||||||
// _uuid "uuid"
|
|
||||||
// upgrade_dl_timer "integer"
|
|
||||||
// reference_design "string"
|
|
||||||
// platform_version "string"
|
|
||||||
// firmware_pass {"key":{"maxLength":256,"type":"string"}}
|
|
||||||
// upgrade_timer "integer"
|
|
||||||
// redirector_addr "string"
|
|
||||||
// led_config {"key":"string","max":"unlimited","min":0,"value":"string"}
|
|
||||||
// max_backoff "integer"
|
|
||||||
// mqtt_headers {"key":"string","max":"unlimited","min":0,"value":"string"}
|
|
||||||
// serial_number {"key":"string","min":0}
|
|
||||||
// _version "uuid"
|
|
||||||
// upgrade_status "integer"
|
|
||||||
// device_mode {"key":{"enum":["set",["battery","cloud","custom","monitor"]],"type":"string"},"min":0}
|
|
||||||
// min_backoff "integer"
|
|
||||||
// manufacturer_date "string"
|
|
||||||
// mqtt_topics {"key":"string","max":"unlimited","min":0,"value":{"maxLength":128,"type":"string"}}
|
|
||||||
// revision "string"
|
|
||||||
// manufacturer_name "string"
|
|
||||||
// manufacturer_url "string"
|
|
||||||
// manager_addr "string"
|
|
||||||
// factory_reset {"key":"boolean","min":0}
|
|
||||||
Map<String, Value> map = row.getColumns();
|
|
||||||
if (map.get("mqtt_settings") != null) {
|
|
||||||
this.setMqttSettings(row.getMapColumn("mqtt_settings"));
|
|
||||||
}
|
|
||||||
if (map.get("mqtt_headers") != null) {
|
|
||||||
this.setMqttHeaders(row.getMapColumn("mqtt_headers"));
|
|
||||||
}
|
|
||||||
if (map.get("mqtt_topics") != null) {
|
|
||||||
this.setMqttHeaders(row.getMapColumn("mqtt_topics"));
|
|
||||||
}
|
|
||||||
if ((map.get("model") != null) && map.get("model").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setModel(row.getStringColumn("model"));
|
|
||||||
}
|
|
||||||
if ((map.get("sku_number") != null) && map.get("sku_number").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setSkuNumber(row.getStringColumn("sku_number"));
|
|
||||||
}
|
|
||||||
if (map.get("id") != null) {
|
|
||||||
this.setId(getSingleValueFromSet(row, "id"));
|
|
||||||
}
|
|
||||||
if (map.get("reference_design") != null) {
|
|
||||||
this.setReferenceDesign(row.getStringColumn("reference_design"));
|
|
||||||
}
|
|
||||||
if (map.get("qr_code") != null) {
|
|
||||||
this.setQrCode(row.getMapColumn("qr_code"));
|
|
||||||
}
|
|
||||||
if ((map.get("model_description") != null)) {
|
|
||||||
this.setModelDescription(row.getStringColumn("model_description"));
|
|
||||||
}
|
|
||||||
if ((map.get("manufacturer_url") != null)) {
|
|
||||||
this.setManufacturerUrl(row.getStringColumn("manufacturer_url"));
|
|
||||||
}
|
|
||||||
if ((map.get("manufacturer_name") != null)) {
|
|
||||||
this.setManufacturerName(row.getStringColumn("manufacturer_name"));
|
|
||||||
}
|
|
||||||
if ((map.get("manufacturer_date") != null)) {
|
|
||||||
this.setManufacturerDate(row.getStringColumn("manufacturer_date"));
|
|
||||||
}
|
|
||||||
if (map.get("certification_region") != null) {
|
|
||||||
this.setCertificationRegion(row.getStringColumn("certification_region"));
|
|
||||||
}
|
|
||||||
if (map.get("version_matrix") != null) {
|
|
||||||
this.setVersionMatrix(row.getMapColumn("version_matrix"));
|
|
||||||
}
|
|
||||||
if ((map.get("firmware_version") != null) && map.get("firmware_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setFirmwareVersion(row.getStringColumn("firmware_version"));
|
|
||||||
}
|
|
||||||
if ((map.get("firmware_url") != null) && map.get("firmware_url").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setFirmwareUrl(row.getStringColumn("firmware_url"));
|
|
||||||
}
|
|
||||||
if ((map.get("_uuid") != null) && map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setVersion(row.getUuidColumn("_uuid"));
|
|
||||||
}
|
|
||||||
if ((map.get("upgrade_dl_timer") != null) && map.get("upgrade_dl_timer").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setUpgradeDlTimer(row.getIntegerColumn("upgrade_dl_timer").intValue());
|
|
||||||
}
|
|
||||||
if ((map.get("platform_version") != null) && map.get("platform_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setPlatformVersion(row.getStringColumn("platform_version"));
|
|
||||||
}
|
|
||||||
if ((map.get("firmware_pass") != null) && map.get("firmware_pass").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setFirmwarePass(row.getStringColumn("firmware_pass"));
|
|
||||||
}
|
|
||||||
if ((map.get("upgrade_timer") != null) && map.get("upgrade_timer").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setUpgradeTimer(row.getIntegerColumn("upgrade_timer").intValue());
|
|
||||||
}
|
|
||||||
if ((map.get("max_backoff") != null) && map.get("max_backoff").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setMaxBackoff(row.getIntegerColumn("max_backoff").intValue());
|
|
||||||
}
|
|
||||||
if (map.get("led_config") != null) {
|
|
||||||
this.setLedConfig(row.getMapColumn("led_config"));
|
|
||||||
}
|
|
||||||
if ((map.get("redirector_addr") != null) && map.get("redirector_addr").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setRedirectorAddr(row.getStringColumn("redirector_addr"));
|
|
||||||
}
|
|
||||||
if ((map.get("serial_number") != null) && map.get("serial_number").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setSerialNumber(row.getStringColumn("serial_number"));
|
|
||||||
}
|
|
||||||
if ((map.get("_version") != null) && map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setVersion(row.getUuidColumn("_version"));
|
|
||||||
}
|
|
||||||
this.setUpgradeStatus(row.getIntegerColumn("upgrade_status").intValue());
|
|
||||||
if ((map.get("device_mode") != null) && map.get("device_mode").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setDeviceMode(row.getStringColumn("device_mode"));
|
|
||||||
}
|
|
||||||
if ((map.get("min_backoff") != null) && map.get("min_backoff").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setMinBackoff(row.getIntegerColumn("min_backoff").intValue());
|
|
||||||
}
|
|
||||||
if ((map.get("revision") != null) && map.get("revision").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setRevision(row.getStringColumn("revision"));
|
|
||||||
}
|
|
||||||
if ((map.get("manager_addr") != null) && map.get("manager_addr").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setManagerAddr(row.getStringColumn("manager_addr"));
|
|
||||||
}
|
|
||||||
if ((map.get("factory_reset") != null) && map.get("factory_reset").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setFactoryReset(row.getBooleanColumn("factory_reset"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Uuid get_uuid() {
|
|
||||||
return _uuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDeviceMode() {
|
|
||||||
return deviceMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFirmwarePass() {
|
|
||||||
return firmwarePass;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFirmwareUrl() {
|
|
||||||
return firmwareUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFirmwareVersion() {
|
|
||||||
return firmwareVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, String> getLedConfig() {
|
|
||||||
return ledConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getManagerAddr() {
|
|
||||||
return managerAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getMaxBackoff() {
|
|
||||||
return maxBackoff;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getMinBackoff() {
|
|
||||||
return minBackoff;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getModel() {
|
|
||||||
return model;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, String> getMqttHeaders() {
|
|
||||||
return mqttHeaders;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<Object, Object> getMqttSettings() {
|
public Map<Object, Object> getMqttSettings() {
|
||||||
return mqttSettings;
|
return mqttSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, String> getMqttTopics() {
|
|
||||||
return mqttTopics;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPlatformVersion() {
|
|
||||||
return platformVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRedirectorAddr() {
|
|
||||||
return redirectorAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRevision() {
|
|
||||||
return revision;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSerialNumber() {
|
|
||||||
return serialNumber;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSkuNumber() {
|
|
||||||
return skuNumber;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getUpgradeDlTimer() {
|
|
||||||
return upgradeDlTimer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getUpgradeStatus() {
|
|
||||||
return upgradeStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getUpgradeTimer() {
|
|
||||||
return upgradeTimer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Uuid getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, String> getVersionMatrix() {
|
|
||||||
return versionMatrix;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isFactoryReset() {
|
|
||||||
return factoryReset;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getReferenceDesign() {
|
|
||||||
return referenceDesign;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setReferenceDesign(String referenceDesign) {
|
|
||||||
this.referenceDesign = referenceDesign;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, String> getQrCode() {
|
|
||||||
return qrCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQrCode(Map<String, String> qrCode) {
|
|
||||||
this.qrCode = qrCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getModelDescription() {
|
|
||||||
return modelDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setModelDescription(String modelDescription) {
|
|
||||||
this.modelDescription = modelDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getManufacturerUrl() {
|
|
||||||
return manufacturerUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setManufacturerUrl(String manufacturerUrl) {
|
|
||||||
this.manufacturerUrl = manufacturerUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getManufacturerName() {
|
|
||||||
return manufacturerName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setManufacturerName(String manufacturerName) {
|
|
||||||
this.manufacturerName = manufacturerName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getManufacturerDate() {
|
|
||||||
return manufacturerDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setManufacturerDate(String manufacturerDate) {
|
|
||||||
this.manufacturerDate = manufacturerDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCertificationRegion() {
|
|
||||||
return certificationRegion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCertificationRegion(String certificationRegion) {
|
|
||||||
this.certificationRegion = certificationRegion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void set_uuid(Uuid _uuid) {
|
|
||||||
this._uuid = _uuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDeviceMode(String deviceMode) {
|
|
||||||
this.deviceMode = deviceMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFactoryReset(boolean factoryReset) {
|
|
||||||
this.factoryReset = factoryReset;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFirmwarePass(String firmwarePass) {
|
|
||||||
this.firmwarePass = firmwarePass;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFirmwareUrl(String firmwareUrl) {
|
|
||||||
this.firmwareUrl = firmwareUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFirmwareVersion(String firmwareVersion) {
|
|
||||||
this.firmwareVersion = firmwareVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLedConfig(Map<String, String> ledConfig) {
|
|
||||||
this.ledConfig = ledConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setManagerAddr(String managerAddr) {
|
|
||||||
this.managerAddr = managerAddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMaxBackoff(int maxBackoff) {
|
|
||||||
this.maxBackoff = maxBackoff;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMinBackoff(int minBackoff) {
|
|
||||||
this.minBackoff = minBackoff;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setModel(String model) {
|
|
||||||
this.model = model;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMqttHeaders(Map<String, String> mqttHeaders) {
|
|
||||||
this.mqttHeaders = mqttHeaders;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMqttSettings(Map<Object, Object> map) {
|
public void setMqttSettings(Map<Object, Object> map) {
|
||||||
this.mqttSettings = map;
|
this.mqttSettings = map;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMqttTopics(Map<String, String> mqttTopics) {
|
public String getModel() {
|
||||||
this.mqttTopics = mqttTopics;
|
return model;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPlatformVersion(String platformVersion) {
|
public void setModel(String model) {
|
||||||
this.platformVersion = platformVersion;
|
this.model = model;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRedirectorAddr(String redirectorAddr) {
|
public String getSkuNumber() {
|
||||||
this.redirectorAddr = redirectorAddr;
|
return skuNumber;
|
||||||
}
|
|
||||||
|
|
||||||
public void setRevision(String revision) {
|
|
||||||
this.revision = revision;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSerialNumber(String serialNumber) {
|
|
||||||
this.serialNumber = serialNumber;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSkuNumber(String skuNumber) {
|
public void setSkuNumber(String skuNumber) {
|
||||||
this.skuNumber = skuNumber;
|
this.skuNumber = skuNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUpgradeDlTimer(int upgradeDlTimer) {
|
public String getId() {
|
||||||
this.upgradeDlTimer = upgradeDlTimer;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUpgradeStatus(int upgradeStatus) {
|
public void setId(String id) {
|
||||||
this.upgradeStatus = upgradeStatus;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUpgradeTimer(int upgradeTimer) {
|
public Map<String, String> getVersionMatrix() {
|
||||||
this.upgradeTimer = upgradeTimer;
|
return versionMatrix;
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersion(Uuid version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVersionMatrix(Map<String, String> versionMatrix) {
|
public void setVersionMatrix(Map<String, String> versionMatrix) {
|
||||||
this.versionMatrix = versionMatrix;
|
this.versionMatrix = versionMatrix;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getFirmwareVersion() {
|
||||||
|
return firmwareVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFirmwareVersion(String firmwareVersion) {
|
||||||
|
this.firmwareVersion = firmwareVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFirmwareUrl() {
|
||||||
|
return firmwareUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFirmwareUrl(String firmwareUrl) {
|
||||||
|
this.firmwareUrl = firmwareUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUpgradeDlTimer() {
|
||||||
|
return upgradeDlTimer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpgradeDlTimer(int upgradeDlTimer) {
|
||||||
|
this.upgradeDlTimer = upgradeDlTimer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPlatformVersion() {
|
||||||
|
return platformVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlatformVersion(String platformVersion) {
|
||||||
|
this.platformVersion = platformVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFirmwarePass() {
|
||||||
|
return firmwarePass;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFirmwarePass(String firmwarePass) {
|
||||||
|
this.firmwarePass = firmwarePass;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUpgradeTimer() {
|
||||||
|
return upgradeTimer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpgradeTimer(int upgradeTimer) {
|
||||||
|
this.upgradeTimer = upgradeTimer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMaxBackoff() {
|
||||||
|
return maxBackoff;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaxBackoff(int maxBackoff) {
|
||||||
|
this.maxBackoff = maxBackoff;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getLedConfig() {
|
||||||
|
return ledConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLedConfig(Map<String, String> ledConfig) {
|
||||||
|
this.ledConfig = ledConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRedirectorAddr() {
|
||||||
|
return redirectorAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRedirectorAddr(String redirectorAddr) {
|
||||||
|
this.redirectorAddr = redirectorAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getMqttHeaders() {
|
||||||
|
return mqttHeaders;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMqttHeaders(Map<String, String> mqttHeaders) {
|
||||||
|
this.mqttHeaders = mqttHeaders;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSerialNumber() {
|
||||||
|
return serialNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSerialNumber(String serialNumber) {
|
||||||
|
this.serialNumber = serialNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUpgradeStatus() {
|
||||||
|
return upgradeStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpgradeStatus(int upgradeStatus) {
|
||||||
|
this.upgradeStatus = upgradeStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDeviceMode() {
|
||||||
|
return deviceMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeviceMode(String deviceMode) {
|
||||||
|
this.deviceMode = deviceMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMinBackoff() {
|
||||||
|
return minBackoff;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMinBackoff(int minBackoff) {
|
||||||
|
this.minBackoff = minBackoff;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getMqttTopics() {
|
||||||
|
return mqttTopics;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMqttTopics(Map<String, String> mqttTopics) {
|
||||||
|
this.mqttTopics = mqttTopics;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRevision() {
|
||||||
|
return revision;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRevision(String revision) {
|
||||||
|
this.revision = revision;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getManagerAddr() {
|
||||||
|
return managerAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setManagerAddr(String managerAddr) {
|
||||||
|
this.managerAddr = managerAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFactoryReset() {
|
||||||
|
return factoryReset;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFactoryReset(boolean factoryReset) {
|
||||||
|
this.factoryReset = factoryReset;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long getSerialversionuid() {
|
||||||
|
return serialVersionUID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Uuid get_uuid() {
|
||||||
|
return _uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void set_uuid(Uuid _uuid) {
|
||||||
|
this._uuid = _uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Uuid getVersion() {
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVersion(Uuid version) {
|
||||||
|
this.version = version;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,28 +1,22 @@
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author mikehansen
|
* @author mikehansen
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class OpensyncWifiAssociatedClients extends OpensyncAPBase {
|
public class OpensyncWifiAssociatedClients extends BaseJsonModel {
|
||||||
|
|
||||||
private static final long serialVersionUID = -7088651136971662138L;
|
private static final long serialVersionUID = -7088651136971662138L;
|
||||||
|
|
||||||
public static long getSerialversionuid() {
|
|
||||||
return serialVersionUID;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String keyId;
|
public String keyId;
|
||||||
public String mac;
|
public String mac;
|
||||||
public String state;
|
public String state;
|
||||||
@@ -31,105 +25,83 @@ public class OpensyncWifiAssociatedClients extends OpensyncAPBase {
|
|||||||
public String kick;
|
public String kick;
|
||||||
public String oftag;
|
public String oftag;
|
||||||
public Uuid _uuid;
|
public Uuid _uuid;
|
||||||
|
|
||||||
public Uuid version;
|
public Uuid version;
|
||||||
|
|
||||||
public OpensyncWifiAssociatedClients() {
|
public OpensyncWifiAssociatedClients() {
|
||||||
|
super();
|
||||||
capabilities = new HashSet<>();
|
capabilities = new HashSet<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public OpensyncWifiAssociatedClients(Row row) {
|
|
||||||
this();
|
|
||||||
|
|
||||||
Map<String, Value> map = row.getColumns();
|
|
||||||
|
|
||||||
if ((map.get("mac") != null)
|
|
||||||
&& map.get("mac").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setMac(row.getStringColumn("mac"));
|
|
||||||
}
|
|
||||||
if (row.getSetColumn("capabilities") != null) {
|
|
||||||
this.setCapabilities(row.getSetColumn("capabilities"));
|
|
||||||
}
|
|
||||||
if ((map.get("state") != null)
|
|
||||||
&& map.get("state").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setState(row.getStringColumn("state"));
|
|
||||||
}
|
|
||||||
if ((map.get("_version") != null)
|
|
||||||
&& map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setVersion(row.getUuidColumn("_version"));
|
|
||||||
}
|
|
||||||
if ((map.get("_uuid") != null)
|
|
||||||
&& map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
|
||||||
this.setVersion(row.getUuidColumn("_uuid"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Uuid get_uuid() {
|
|
||||||
return _uuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Set<String> getCapabilities() {
|
|
||||||
return capabilities;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getKeyId() {
|
public String getKeyId() {
|
||||||
return keyId;
|
return keyId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getKick() {
|
public void setKeyId(String keyId) {
|
||||||
return kick;
|
this.keyId = keyId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getMac() {
|
public String getMac() {
|
||||||
return mac;
|
return mac;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getOftag() {
|
public void setMac(String mac) {
|
||||||
return oftag;
|
this.mac = mac;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getState() {
|
public String getState() {
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getUapsd() {
|
public void setState(String state) {
|
||||||
return uapsd;
|
this.state = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Uuid getVersion() {
|
public Set<String> getCapabilities() {
|
||||||
return version;
|
return capabilities;
|
||||||
}
|
|
||||||
|
|
||||||
public void set_uuid(Uuid _uuid) {
|
|
||||||
this._uuid = _uuid;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCapabilities(Set<String> set) {
|
public void setCapabilities(Set<String> set) {
|
||||||
this.capabilities = set;
|
this.capabilities = set;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setKeyId(String keyId) {
|
public int getUapsd() {
|
||||||
this.keyId = keyId;
|
return uapsd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUapsd(int uapsd) {
|
||||||
|
this.uapsd = uapsd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getKick() {
|
||||||
|
return kick;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setKick(String kick) {
|
public void setKick(String kick) {
|
||||||
this.kick = kick;
|
this.kick = kick;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMac(String mac) {
|
public String getOftag() {
|
||||||
this.mac = mac;
|
return oftag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOftag(String oftag) {
|
public void setOftag(String oftag) {
|
||||||
this.oftag = oftag;
|
this.oftag = oftag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setState(String state) {
|
public static long getSerialversionuid() {
|
||||||
this.state = state;
|
return serialVersionUID;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUapsd(int uapsd) {
|
public Uuid get_uuid() {
|
||||||
this.uapsd = uapsd;
|
return _uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void set_uuid(Uuid _uuid) {
|
||||||
|
this._uuid = _uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Uuid getVersion() {
|
||||||
|
return version;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVersion(Uuid version) {
|
public void setVersion(Uuid version) {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
<relativePath>../../wlan-cloud-root</relativePath>
|
<relativePath>../../wlan-cloud-root</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>opensync-ext-static</artifactId>
|
<artifactId>opensync-ext-static</artifactId>
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>opensync-gateway</artifactId>
|
<artifactId>opensync-gateway</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.telecominfraproject.wlan.opensync.external.integration;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -17,6 +18,7 @@ import com.telecominfraproject.wlan.equipment.models.Equipment;
|
|||||||
import com.telecominfraproject.wlan.location.models.Location;
|
import com.telecominfraproject.wlan.location.models.Location;
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
|
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
|
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
|
||||||
|
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPHotspot20Config;
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPInetState;
|
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPInetState;
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState;
|
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState;
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
|
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
|
||||||
@@ -45,9 +47,30 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
|||||||
@Value("${tip.wlan.ovsdb.ssidProfileFileName:/app/config/ProfileSsid.json}")
|
@Value("${tip.wlan.ovsdb.ssidProfileFileName:/app/config/ProfileSsid.json}")
|
||||||
private String ssidProfileFileName;
|
private String ssidProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.metricsProfileFileName:/app/config/ProfileMetrics.json}")
|
||||||
|
private String metricsProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.venueProfileFileName:/app/config/ProfileVenue.json}")
|
||||||
|
private String venueProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.operatorProfileFileName:/app/config/ProfileOperator.json}")
|
||||||
|
private String operatorProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.hotspot20ProfileFileName:/app/config/ProfileHotspot20.json}")
|
||||||
|
private String hotspot20ProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.idProviderProfileFileName:/app/config/ProfileIdProvider.json}")
|
||||||
|
private String idProviderProfileFileName;
|
||||||
|
|
||||||
@Value("${tip.wlan.ovsdb.radiusProfileFileName:/app/config/ProfileRadius.json}")
|
@Value("${tip.wlan.ovsdb.radiusProfileFileName:/app/config/ProfileRadius.json}")
|
||||||
private String radiusProfileFileName;
|
private String radiusProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.captiveProfileFileName:/app/config/ProfileCaptive.json}")
|
||||||
|
private String captiveProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.bonjourProfileFileName:/app/config/ProfileBonjour.json}")
|
||||||
|
private String bonjourProfileFileName;
|
||||||
|
|
||||||
@Value("${tip.wlan.ovsdb.locationFileName:/app/config/LocationBuildingExample.json}")
|
@Value("${tip.wlan.ovsdb.locationFileName:/app/config/LocationBuildingExample.json}")
|
||||||
private String locationFileName;
|
private String locationFileName;
|
||||||
|
|
||||||
@@ -62,6 +85,7 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
|||||||
serialNumber = connectNodeInfo.serialNumber;
|
serialNumber = connectNodeInfo.serialNumber;
|
||||||
LOG.info("AP {} got connected to the gateway", apId);
|
LOG.info("AP {} got connected to the gateway", apId);
|
||||||
LOG.info("ConnectNodeInfo {}", connectNodeInfo);
|
LOG.info("ConnectNodeInfo {}", connectNodeInfo);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void apDisconnected(String apId) {
|
public void apDisconnected(String apId) {
|
||||||
@@ -71,41 +95,97 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
|||||||
public OpensyncAPConfig getApConfig(String apId) {
|
public OpensyncAPConfig getApConfig(String apId) {
|
||||||
LOG.info("Retrieving config for AP {}", apId);
|
LOG.info("Retrieving config for AP {}", apId);
|
||||||
OpensyncAPConfig ret = null;
|
OpensyncAPConfig ret = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
Equipment equipment = Equipment.fromFile(customerEquipmentFileName, Equipment.class);
|
Equipment equipment = Equipment.fromFile(customerEquipmentFileName, Equipment.class);
|
||||||
equipment.setInventoryId(apId);
|
equipment.setInventoryId(apId);
|
||||||
equipment.setName(apId);
|
equipment.setName(apId);
|
||||||
equipment.setSerial(serialNumber);
|
equipment.setSerial(serialNumber);
|
||||||
|
|
||||||
com.telecominfraproject.wlan.profile.models.Profile apProfile = com.telecominfraproject.wlan.profile.models.Profile
|
com.telecominfraproject.wlan.profile.models.Profile apProfile = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
.fromFile(apProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
.fromFile(apProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
|
||||||
com.telecominfraproject.wlan.profile.models.Profile rfProfile = com.telecominfraproject.wlan.profile.models.Profile
|
com.telecominfraproject.wlan.profile.models.Profile rfProfile = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
.fromFile(rfProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
.fromFile(rfProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
|
||||||
apProfile.getChildProfileIds().add(rfProfile.getId());
|
apProfile.getChildProfileIds().add(rfProfile.getId());
|
||||||
|
|
||||||
List<com.telecominfraproject.wlan.profile.models.Profile> ssidProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
List<com.telecominfraproject.wlan.profile.models.Profile> ssidProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
.listFromFile(ssidProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
.listFromFile(ssidProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> hotspot20Profiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
|
.listFromFile(hotspot20ProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> operatorProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
|
.listFromFile(operatorProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> venueProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
|
.listFromFile(venueProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> providerProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
|
.listFromFile(idProviderProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
|
||||||
|
|
||||||
ssidProfiles.stream().forEach(p -> apProfile.getChildProfileIds().add(p.getId()));
|
ssidProfiles.stream().forEach(p -> apProfile.getChildProfileIds().add(p.getId()));
|
||||||
|
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> metricsProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
|
.listFromFile(metricsProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> radiusProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
|
.listFromFile(radiusProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
|
||||||
|
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> captiveProfiles = null;
|
||||||
|
File captiveFile = new File(captiveProfileFileName);
|
||||||
|
if (captiveFile.exists()) {
|
||||||
|
captiveProfiles = com.telecominfraproject.wlan.profile.models.Profile.listFromFile(
|
||||||
|
captiveProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
} else {
|
||||||
|
LOG.info("Captive file is not provided");
|
||||||
|
}
|
||||||
|
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> bonjourProfiles = null;
|
||||||
|
File bonjourFile = new File(bonjourProfileFileName);
|
||||||
|
if (bonjourFile.exists()) {
|
||||||
|
bonjourProfiles = com.telecominfraproject.wlan.profile.models.Profile.listFromFile(
|
||||||
|
bonjourProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
} else {
|
||||||
|
LOG.info("Bonjour file is not provided");
|
||||||
|
}
|
||||||
|
|
||||||
equipment.setProfileId(apProfile.getId());
|
equipment.setProfileId(apProfile.getId());
|
||||||
|
|
||||||
Location location = Location.fromFile(locationFileName, Location.class);
|
Location location = Location.fromFile(locationFileName, Location.class);
|
||||||
|
|
||||||
equipment.setLocationId(location.getId());
|
equipment.setLocationId(location.getId());
|
||||||
|
|
||||||
|
OpensyncAPHotspot20Config hotspotConfig = new OpensyncAPHotspot20Config();
|
||||||
|
|
||||||
|
hotspotConfig.setHotspot20ProfileSet(
|
||||||
|
new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(hotspot20Profiles));
|
||||||
|
hotspotConfig.setHotspot20OperatorSet(
|
||||||
|
new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(operatorProfiles));
|
||||||
|
hotspotConfig.setHotspot20VenueSet(
|
||||||
|
new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(venueProfiles));
|
||||||
|
hotspotConfig.setHotspot20ProviderSet(
|
||||||
|
new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(providerProfiles));
|
||||||
|
|
||||||
ret = new OpensyncAPConfig();
|
ret = new OpensyncAPConfig();
|
||||||
ret.setCustomerEquipment(equipment);
|
ret.setCustomerEquipment(equipment);
|
||||||
ret.setApProfile(apProfile);
|
ret.setApProfile(apProfile);
|
||||||
ret.setRfProfile(rfProfile);
|
ret.setRfProfile(rfProfile);
|
||||||
|
ret.setMetricsProfiles(metricsProfiles);
|
||||||
ret.setSsidProfile(ssidProfiles);
|
ret.setSsidProfile(ssidProfiles);
|
||||||
File radiusFile = new File(radiusProfileFileName);
|
ret.setRadiusProfiles(radiusProfiles);
|
||||||
if (radiusFile.exists()) {
|
|
||||||
List<com.telecominfraproject.wlan.profile.models.Profile> radiusProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
|
||||||
.listFromFile(radiusProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
|
||||||
ret.setRadiusProfiles(radiusProfiles);
|
|
||||||
} else {
|
|
||||||
LOG.debug("No radius file present at {}", radiusFile.getAbsolutePath());
|
|
||||||
}
|
|
||||||
ret.setEquipmentLocation(location);
|
ret.setEquipmentLocation(location);
|
||||||
|
ret.setCaptiveProfiles(captiveProfiles);
|
||||||
|
ret.setBonjourGatewayProfiles(bonjourProfiles);
|
||||||
|
ret.setHotspotConfig(hotspotConfig);
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
LOG.error("Cannot read config file", e);
|
LOG.error("Cannot read config file", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG.debug("Config content : {}", ret);
|
LOG.debug("Config content : {}", ret);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,6 +199,7 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
|||||||
LOG.info("Received EventReport {}", e);
|
LOG.info("Received EventReport {}", e);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void processMqttMessage(String topic, FlowReport flowReport) {
|
public void processMqttMessage(String topic, FlowReport flowReport) {
|
||||||
@@ -194,17 +275,4 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void clearEquipmentStatus(String apId) {
|
|
||||||
LOG.info("Received clearEquipmentStatus for ap {}", apId);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void apcStateDbTableUpdate(Map<String, String> apcStateAttributes, String apId,
|
|
||||||
RowUpdateOperation rowUpdateOperation) {
|
|
||||||
LOG.info("Received APC_State {} for operation {}", apcStateAttributes, rowUpdateOperation);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,472 +1,221 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Equipment",
|
"model_type": "Equipment",
|
||||||
"id": 1,
|
"id": 51,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileId": 8,
|
"profileId": 12,
|
||||||
"locationId": 8,
|
"locationId": 8,
|
||||||
|
"equipmentType": "AP",
|
||||||
|
"inventoryId": "Test_Client_21P10C68818122",
|
||||||
|
"name": "Test_Client_21P10C68818122",
|
||||||
|
"details": {
|
||||||
|
"model_type": "ApElementConfiguration",
|
||||||
|
"equipmentModel": "EA8300-CA",
|
||||||
|
"elementConfigVersion": "AP-V1",
|
||||||
"equipmentType": "AP",
|
"equipmentType": "AP",
|
||||||
"inventoryId": "Open_AP_21P10C68818122",
|
"deviceMode": "standaloneAP",
|
||||||
"name": "Open_AP_21P10C68818122",
|
"gettingIP": "dhcp",
|
||||||
"details": {
|
"staticIP": null,
|
||||||
"model_type": "ApElementConfiguration",
|
"staticIpMaskCidr": null,
|
||||||
"equipmentModel": "EA8300-CA",
|
"staticIpGw": null,
|
||||||
"elementConfigVersion": "AP-V1",
|
"gettingDNS": "dhcp",
|
||||||
"equipmentType": "AP",
|
"staticDnsIp1": null,
|
||||||
"deviceMode": "standaloneAP",
|
"staticDnsIp2": null,
|
||||||
"gettingIP": "dhcp",
|
"peerInfoList": [],
|
||||||
"staticIP": null,
|
"deviceName": "Default Device Name",
|
||||||
"staticIpMaskCidr": null,
|
"locationData": null,
|
||||||
"staticIpGw": null,
|
"locallyConfiguredMgmtVlan": 0,
|
||||||
"gettingDNS": "dhcp",
|
"locallyConfigured": false,
|
||||||
"staticDnsIp1": null,
|
"deploymentType": "CEILING",
|
||||||
"staticDnsIp2": null,
|
"syntheticClientEnabled": null,
|
||||||
"peerInfoList": [],
|
"frameReportThrottleEnabled": true,
|
||||||
"deviceName": "Open_AP_21P10C68818122",
|
"antennaType": "OMNI",
|
||||||
"locationData": null,
|
"costSavingEventsEnabled": true,
|
||||||
"locallyConfiguredMgmtVlan": 0,
|
"forwardMode": "BRIDGE",
|
||||||
"locallyConfigured": false,
|
"radioMap": {
|
||||||
"deploymentType": "CEILING",
|
"is2dot4GHz": {
|
||||||
"syntheticClientEnabled": null,
|
"model_type": "ElementRadioConfiguration",
|
||||||
"frameReportThrottleEnabled": true,
|
"radioType": "is2dot4GHz",
|
||||||
"antennaType": "OMNI",
|
"channelNumber": 6,
|
||||||
"costSavingEventsEnabled": true,
|
"manualChannelNumber": 6,
|
||||||
"forwardMode": "BRIDGE",
|
"backupChannelNumber": 11,
|
||||||
"radioMap": {
|
"bannedChannels": [],
|
||||||
"is5GHzU": {
|
"allowedChannels": [],
|
||||||
"model_type": "ElementRadioConfiguration",
|
"rxCellSizeDb": {
|
||||||
"radioType": "is5GHzU",
|
"model_type": "SourceSelectionValue",
|
||||||
"channelNumber": 149,
|
"source": "auto",
|
||||||
"manualChannelNumber": 149,
|
"value": -90
|
||||||
"backupChannelNumber": 157,
|
|
||||||
"manualBackupChannelNumber": 157,
|
|
||||||
"rxCellSizeDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"probeResponseThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"clientDisconnectThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"eirpTxPower": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": 18
|
|
||||||
},
|
|
||||||
"perimeterDetectionEnabled": true,
|
|
||||||
"bestAPSteerType": "both",
|
|
||||||
"deauthAttackDetection": null,
|
|
||||||
"allowedChannelsPowerLevels": [
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 161,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 100,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 132,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 165,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 104,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 136,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 108,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 140,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 112,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 144,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 116,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 149,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 153,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 157,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"is2dot4GHz": {
|
|
||||||
"model_type": "ElementRadioConfiguration",
|
|
||||||
"radioType": "is2dot4GHz",
|
|
||||||
"channelNumber": 6,
|
|
||||||
"manualChannelNumber": 6,
|
|
||||||
"backupChannelNumber": 11,
|
|
||||||
"manualBackupChannelNumber": 11,
|
|
||||||
"rxCellSizeDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"probeResponseThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"clientDisconnectThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"eirpTxPower": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": 18
|
|
||||||
},
|
|
||||||
"perimeterDetectionEnabled": true,
|
|
||||||
"bestAPSteerType": "both",
|
|
||||||
"deauthAttackDetection": null,
|
|
||||||
"allowedChannelsPowerLevels": [
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 1,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 2,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 3,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 4,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 5,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 6,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 7,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 8,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 9,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 10,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 11,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"is5GHzL": {
|
|
||||||
"model_type": "ElementRadioConfiguration",
|
|
||||||
"radioType": "is5GHzL",
|
|
||||||
"channelNumber": 36,
|
|
||||||
"manualChannelNumber": 36,
|
|
||||||
"backupChannelNumber": 44,
|
|
||||||
"manualBackupChannelNumber": 44,
|
|
||||||
"rxCellSizeDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"probeResponseThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"clientDisconnectThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"eirpTxPower": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": 18
|
|
||||||
},
|
|
||||||
"perimeterDetectionEnabled": true,
|
|
||||||
"bestAPSteerType": "both",
|
|
||||||
"deauthAttackDetection": null,
|
|
||||||
"allowedChannelsPowerLevels": [
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 52,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 36,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 56,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 40,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 60,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 44,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 64,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 48,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"advancedRadioMap": {
|
"probeResponseThresholdDb": {
|
||||||
"is2dot4GHz": {
|
"model_type": "SourceSelectionValue",
|
||||||
"model_type": "RadioConfiguration",
|
"source": "auto",
|
||||||
"radioType": "is2dot4GHz",
|
"value": -90
|
||||||
"radioAdminState": "enabled",
|
},
|
||||||
"fragmentationThresholdBytes": 2346,
|
"clientDisconnectThresholdDb": {
|
||||||
"uapsdState": "enabled",
|
"model_type": "SourceSelectionValue",
|
||||||
"stationIsolation": "disabled",
|
"source": "auto",
|
||||||
"multicastRate": {
|
"value": -90
|
||||||
"model_type": "SourceSelectionMulticast",
|
},
|
||||||
"source": "profile",
|
"eirpTxPower": {
|
||||||
"value": "auto"
|
"model_type": "SourceSelectionValue",
|
||||||
},
|
"source": "auto",
|
||||||
"managementRate": {
|
"value": 32
|
||||||
"model_type": "SourceSelectionManagement",
|
},
|
||||||
"source": "profile",
|
"perimeterDetectionEnabled": true,
|
||||||
"value": "auto"
|
"bestAPSteerType": "both",
|
||||||
},
|
"deauthAttackDetection": null,
|
||||||
"bestApSettings": {
|
"allowedChannelsPowerLevels": [],
|
||||||
"model_type": "SourceSelectionSteering",
|
"activeChannel": 6
|
||||||
"source": "manual",
|
},
|
||||||
"value": {
|
"is5GHzU": {
|
||||||
"model_type": "RadioBestApSettings",
|
"model_type": "ElementRadioConfiguration",
|
||||||
"mlComputed": true,
|
"radioType": "is5GHzU",
|
||||||
"dropInSnrPercentage": 20,
|
"channelNumber": 149,
|
||||||
"minLoadFactor": 50
|
"manualChannelNumber": 149,
|
||||||
}
|
"backupChannelNumber": 154,
|
||||||
},
|
"bannedChannels": [],
|
||||||
"legacyBSSRate": "enabled",
|
"allowedChannels": [],
|
||||||
"dtimPeriod": 2,
|
"rxCellSizeDb": {
|
||||||
"deauthAttackDetection": null
|
"model_type": "SourceSelectionValue",
|
||||||
},
|
"source": "auto",
|
||||||
"is5GHzU": {
|
"value": -90
|
||||||
"model_type": "RadioConfiguration",
|
},
|
||||||
"radioType": "is5GHzU",
|
"probeResponseThresholdDb": {
|
||||||
"radioAdminState": "enabled",
|
"model_type": "SourceSelectionValue",
|
||||||
"fragmentationThresholdBytes": 2346,
|
"source": "auto",
|
||||||
"uapsdState": "enabled",
|
"value": -90
|
||||||
"stationIsolation": "disabled",
|
},
|
||||||
"multicastRate": {
|
"clientDisconnectThresholdDb": {
|
||||||
"model_type": "SourceSelectionMulticast",
|
"model_type": "SourceSelectionValue",
|
||||||
"source": "profile",
|
"source": "auto",
|
||||||
"value": "auto"
|
"value": -90
|
||||||
},
|
},
|
||||||
"managementRate": {
|
"eirpTxPower": {
|
||||||
"model_type": "SourceSelectionManagement",
|
"model_type": "SourceSelectionValue",
|
||||||
"source": "profile",
|
"source": "auto",
|
||||||
"value": "auto"
|
"value": 32
|
||||||
},
|
},
|
||||||
"bestApSettings": {
|
"perimeterDetectionEnabled": true,
|
||||||
"model_type": "SourceSelectionSteering",
|
"bestAPSteerType": "both",
|
||||||
"source": "manual",
|
"deauthAttackDetection": null,
|
||||||
"value": {
|
"allowedChannelsPowerLevels": [],
|
||||||
"model_type": "RadioBestApSettings",
|
"activeChannel": 149
|
||||||
"mlComputed": true,
|
},
|
||||||
"dropInSnrPercentage": 30,
|
"is5GHzL": {
|
||||||
"minLoadFactor": 40
|
"model_type": "ElementRadioConfiguration",
|
||||||
}
|
"radioType": "is5GHzL",
|
||||||
},
|
"channelNumber": 36,
|
||||||
"legacyBSSRate": "enabled",
|
"manualChannelNumber": 36,
|
||||||
"dtimPeriod": 2,
|
"backupChannelNumber": 44,
|
||||||
"deauthAttackDetection": null
|
"bannedChannels": [],
|
||||||
},
|
"allowedChannels": [],
|
||||||
"is5GHzL": {
|
"rxCellSizeDb": {
|
||||||
"model_type": "RadioConfiguration",
|
"model_type": "SourceSelectionValue",
|
||||||
"radioType": "is5GHzL",
|
"source": "auto",
|
||||||
"radioAdminState": "enabled",
|
"value": -90
|
||||||
"fragmentationThresholdBytes": 2346,
|
},
|
||||||
"uapsdState": "enabled",
|
"probeResponseThresholdDb": {
|
||||||
"stationIsolation": "disabled",
|
"model_type": "SourceSelectionValue",
|
||||||
"multicastRate": {
|
"source": "auto",
|
||||||
"model_type": "SourceSelectionMulticast",
|
"value": -90
|
||||||
"source": "profile",
|
},
|
||||||
"value": "auto"
|
"clientDisconnectThresholdDb": {
|
||||||
},
|
"model_type": "SourceSelectionValue",
|
||||||
"managementRate": {
|
"source": "auto",
|
||||||
"model_type": "SourceSelectionManagement",
|
"value": -90
|
||||||
"source": "profile",
|
},
|
||||||
"value": "auto"
|
"eirpTxPower": {
|
||||||
},
|
"model_type": "SourceSelectionValue",
|
||||||
"bestApSettings": {
|
"source": "auto",
|
||||||
"model_type": "SourceSelectionSteering",
|
"value": 32
|
||||||
"source": "manual",
|
},
|
||||||
"value": {
|
"perimeterDetectionEnabled": true,
|
||||||
"model_type": "RadioBestApSettings",
|
"bestAPSteerType": "both",
|
||||||
"mlComputed": true,
|
"deauthAttackDetection": null,
|
||||||
"dropInSnrPercentage": 30,
|
"allowedChannelsPowerLevels": [],
|
||||||
"minLoadFactor": 40
|
"activeChannel": 36
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"legacyBSSRate": "enabled",
|
|
||||||
"dtimPeriod": 2,
|
|
||||||
"deauthAttackDetection": null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"latitude": null,
|
"advancedRadioMap": {
|
||||||
"longitude": null,
|
"is2dot4GHz": {
|
||||||
"baseMacAddress": {
|
"model_type": "RadioConfiguration",
|
||||||
"model_type": "MacAddress",
|
"radioType": "is2dot4GHz",
|
||||||
"address": "JPWi7y5T",
|
"radioAdminState": "enabled",
|
||||||
"addressAsString": "24:f5:a2:ef:2e:53"
|
"fragmentationThresholdBytes": 2346,
|
||||||
},
|
"uapsdState": "enabled",
|
||||||
"serial": "21P10C68818122",
|
"stationIsolation": "disabled",
|
||||||
"createdTimestamp": 1612285288821,
|
"managementRate": {
|
||||||
"lastModifiedTimestamp": 1612285293922
|
"model_type": "SourceSelectionManagement",
|
||||||
}
|
"source": "auto",
|
||||||
|
"value": "auto"
|
||||||
|
},
|
||||||
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
|
"model_type": "RadioBestApSettings",
|
||||||
|
"mlComputed": true,
|
||||||
|
"dropInSnrPercentage": 30,
|
||||||
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"legacyBSSRate": "enabled",
|
||||||
|
"deauthAttackDetection": null
|
||||||
|
},
|
||||||
|
"is5GHzU": {
|
||||||
|
"model_type": "RadioConfiguration",
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"radioAdminState": "enabled",
|
||||||
|
"fragmentationThresholdBytes": 2346,
|
||||||
|
"uapsdState": "enabled",
|
||||||
|
"stationIsolation": "disabled",
|
||||||
|
"managementRate": {
|
||||||
|
"model_type": "SourceSelectionManagement",
|
||||||
|
"source": "auto",
|
||||||
|
"value": "auto"
|
||||||
|
},
|
||||||
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
|
"model_type": "RadioBestApSettings",
|
||||||
|
"mlComputed": true,
|
||||||
|
"dropInSnrPercentage": 30,
|
||||||
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"legacyBSSRate": "enabled",
|
||||||
|
"deauthAttackDetection": null
|
||||||
|
},
|
||||||
|
"is5GHzL": {
|
||||||
|
"model_type": "RadioConfiguration",
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"radioAdminState": "enabled",
|
||||||
|
"fragmentationThresholdBytes": 2346,
|
||||||
|
"uapsdState": "enabled",
|
||||||
|
"stationIsolation": "disabled",
|
||||||
|
"managementRate": {
|
||||||
|
"model_type": "SourceSelectionManagement",
|
||||||
|
"source": "auto",
|
||||||
|
"value": "auto"
|
||||||
|
},
|
||||||
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
|
"model_type": "RadioBestApSettings",
|
||||||
|
"mlComputed": true,
|
||||||
|
"dropInSnrPercentage": 30,
|
||||||
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"legacyBSSRate": "enabled",
|
||||||
|
"deauthAttackDetection": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"latitude": null,
|
||||||
|
"longitude": null,
|
||||||
|
"serial": "21P10C68818122",
|
||||||
|
"createdTimestamp": 1591653239821,
|
||||||
|
"lastModifiedTimestamp": 1591653241398
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,61 +1,60 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Location",
|
"model_type" : "Location",
|
||||||
"id": 8,
|
"id" : 8,
|
||||||
"parentId": 0,
|
"parentId" : 0,
|
||||||
"locationType": "SITE",
|
"locationType" : "SITE",
|
||||||
"customerId": 2,
|
"customerId" : 2,
|
||||||
"name": "Ottawa",
|
"name" : "Ottawa",
|
||||||
"details": {
|
"details" : {
|
||||||
"model_type": "LocationDetails",
|
"model_type" : "LocationDetails",
|
||||||
"countryCode": "CA",
|
"countryCode" : "ca",
|
||||||
"dailyActivityDetails": {
|
"maintenanceWindow" : null,
|
||||||
"SUNDAY": {
|
"rrmEnabled" : true,
|
||||||
"model_type": "LocationActivityDetails",
|
"dailyActivityDetails" : {
|
||||||
"busyTime": "13:30",
|
"SUNDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"MONDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"MONDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"TUESDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"TUESDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"WEDNESDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"WEDNESDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"THURSDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"THURSDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"FRIDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"FRIDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"SATURDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"SATURDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
}
|
"quietTime" : "3:30",
|
||||||
},
|
"timezone" : "US/Eastern"
|
||||||
"maintenanceWindow": null,
|
}
|
||||||
"rrmEnabled": true,
|
}
|
||||||
"timezone": "US/Eastern"
|
},
|
||||||
},
|
"createdTimestamp" : 1590607043540,
|
||||||
"createdTimestamp": 1612285243534,
|
"lastModifiedTimestamp" : 1590607043540
|
||||||
"lastModifiedTimestamp": 1612285243534
|
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 8,
|
"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",
|
||||||
@@ -37,22 +42,15 @@
|
|||||||
"bestAPSteerType": "both"
|
"bestAPSteerType": "both"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"greTunnelConfigurations": [
|
|
||||||
{
|
|
||||||
"model_type": "GreTunnelConfiguration",
|
|
||||||
"greTunnelName": "gre1",
|
|
||||||
"greRemoteInetAddr": "192.168.1.101",
|
|
||||||
"vlanIdsInGreTunnel": [
|
|
||||||
100
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"profileType": "equipment_ap"
|
"profileType": "equipment_ap"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1612285248925,
|
"createdTimestamp": 1606778369934,
|
||||||
"lastModifiedTimestamp": 1612285628377,
|
"lastModifiedTimestamp": 1606778443413,
|
||||||
"childProfileIds": [
|
"childProfileIds": [
|
||||||
2,
|
16,
|
||||||
4
|
5,
|
||||||
|
10,
|
||||||
|
11,
|
||||||
|
15
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
29
opensync-ext-static/src/main/resources/ProfileBonjour.json
Normal file
29
opensync-ext-static/src/main/resources/ProfileBonjour.json
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 100,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "bonjour",
|
||||||
|
"name": "Bonjour-gateway",
|
||||||
|
"details": {
|
||||||
|
"model_type": "BonjourGatewayProfile",
|
||||||
|
"profileDescription": "Bonjour Gateway Configuration for Design Testing",
|
||||||
|
"profileType": "bonjour",
|
||||||
|
"bonjourServices": [
|
||||||
|
{
|
||||||
|
"model_type": "BonjourServiceSet",
|
||||||
|
"vlanId": 1,
|
||||||
|
"supportAllServices": false,
|
||||||
|
"serviceNames": [
|
||||||
|
"AirPort",
|
||||||
|
"SFTP",
|
||||||
|
"SSH"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1599234550774,
|
||||||
|
"lastModifiedTimestamp": 1599234550774,
|
||||||
|
"childProfileIds": []
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,58 +1,135 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 5,
|
"id": 14,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "captive_portal",
|
"profileType": "captive_portal",
|
||||||
"name": "Captive-portal",
|
"name": "Captive-portal",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "CaptivePortalConfiguration",
|
"model_type": "CaptivePortalConfiguration",
|
||||||
"name": "Default",
|
"name": "Captive-portal",
|
||||||
"browserTitle": "Captive-portal",
|
"browserTitle": "Access the network as Guest",
|
||||||
"headerContent": "Captive Portal",
|
"headerContent": "Captive Portal",
|
||||||
"userAcceptancePolicy": "Please agree to the following terms for using this network:",
|
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||||
"successPageMarkdownText": "You are now authorized and connected to the network.",
|
"successPageMarkdownText": "Welcome to the network",
|
||||||
"redirectURL": "https://www.google.com",
|
"redirectURL": "",
|
||||||
"externalCaptivePortalURL": null,
|
"externalCaptivePortalURL": null,
|
||||||
"sessionTimeoutInMinutes": 10,
|
"sessionTimeoutInMinutes": 60,
|
||||||
"logoFile": {
|
"logoFile": null,
|
||||||
"model_type": "ManagedFileInfo",
|
"backgroundFile": null,
|
||||||
"md5checksum": null,
|
"walledGardenAllowlist": [],
|
||||||
"lastModifiedTimestamp": null,
|
"usernamePasswordFile": {
|
||||||
"apExportUrl": "/filestore/tip-logo-mobile",
|
"model_type": "ManagedFileInfo",
|
||||||
"fileCategory": "CaptivePortalLogo",
|
"md5checksum": null,
|
||||||
"fileType": "PNG",
|
"lastModifiedTimestamp": null,
|
||||||
"altSlot": false
|
"apExportUrl": "userList",
|
||||||
},
|
"fileCategory": "UsernamePasswordList",
|
||||||
"backgroundFile": {
|
"fileType": "TEXT",
|
||||||
"model_type": "ManagedFileInfo",
|
"altSlot": true
|
||||||
"md5checksum": null,
|
},
|
||||||
"lastModifiedTimestamp": null,
|
"authenticationType": "guest",
|
||||||
"apExportUrl": "/filestore/tip-logo",
|
"radiusAuthMethod": "CHAP",
|
||||||
"fileCategory": "CaptivePortalBackground",
|
"maxUsersWithSameCredentials": 42,
|
||||||
"fileType": "PNG",
|
"externalPolicyFile": null,
|
||||||
"altSlot": false
|
"backgroundPosition": "left_top",
|
||||||
},
|
"backgroundRepeat": "no_repeat",
|
||||||
"walledGardenAllowlist": [
|
"radiusServiceName": null,
|
||||||
],
|
"expiryType": "unlimited",
|
||||||
"usernamePasswordFile": null,
|
"userList": [
|
||||||
"authenticationType": "guest",
|
{
|
||||||
"radiusAuthMethod": "CHAP",
|
"model_type": "TimedAccessUserRecord",
|
||||||
"maxUsersWithSameCredentials": 3,
|
"username": "customer",
|
||||||
"externalPolicyFile": null,
|
"password": "testing123",
|
||||||
"backgroundPosition": "left_top",
|
"activationTime": 1602183994956,
|
||||||
"backgroundRepeat": "no_repeat",
|
"expirationTime": 1602212794956,
|
||||||
"radiusServiceId": 0,
|
"numDevices": 1,
|
||||||
"expiryType": "time_limited",
|
"userDetails": {
|
||||||
"userList": [
|
"model_type": "TimedAccessUserDetails",
|
||||||
],
|
"firstName": "Pac",
|
||||||
"macAllowList": [
|
"lastName": "Man",
|
||||||
],
|
"passwordNeedsReset": false
|
||||||
"profileType": "captive_portal"
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upO",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4e"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer",
|
||||||
|
"password": "testing123",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602187594957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Q",
|
||||||
|
"lastName": "Bert",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqho",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:68"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602788794957,
|
||||||
|
"numDevices": 1,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Duke",
|
||||||
|
"lastName": "Nukem",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upN",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4d"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602270394957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Missile",
|
||||||
|
"lastName": "Commander",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqhj",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:63"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"macAllowList": [],
|
||||||
|
"profileType": "captive_portal"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1611857459118,
|
"createdTimestamp": 1602183994959,
|
||||||
"lastModifiedTimestamp": 1611857459118,
|
"lastModifiedTimestamp": 1602183994959,
|
||||||
"childProfileIds": [
|
"childProfileIds": []
|
||||||
]
|
}
|
||||||
}
|
]
|
||||||
]
|
|
||||||
71
opensync-ext-static/src/main/resources/ProfileHotspot20.json
Normal file
71
opensync-ext-static/src/main/resources/ProfileHotspot20.json
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 24,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint",
|
||||||
|
"name": "TipWlan-Passpoint-Config",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointProfile",
|
||||||
|
"enableInterworkingAndHs20": true,
|
||||||
|
"hessid": null,
|
||||||
|
"passpointAccessNetworkType": "free_public_network",
|
||||||
|
"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||||
|
"additionalStepsRequiredForAccess": 0,
|
||||||
|
"deauthRequestTimeout": 0,
|
||||||
|
"operatingClass": 0,
|
||||||
|
"termsAndConditionsFile": {
|
||||||
|
"model_type": "ManagedFileInfo",
|
||||||
|
"md5checksum": null,
|
||||||
|
"lastModifiedTimestamp": null,
|
||||||
|
"apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
|
||||||
|
"fileCategory": "ExternalPolicyConfiguration",
|
||||||
|
"fileType": "TEXT",
|
||||||
|
"altSlot": false
|
||||||
|
},
|
||||||
|
"whitelistDomain": null,
|
||||||
|
"emergencyServicesReachable": true,
|
||||||
|
"unauthenticatedEmergencyServiceAccessible": false,
|
||||||
|
"internetConnectivity": true,
|
||||||
|
"connectionCapabilitySet": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointConnectionCapability",
|
||||||
|
"connectionCapabilitiesPortNumber": 8888,
|
||||||
|
"connectionCapabilitiesStatus": "open",
|
||||||
|
"connectionCapabilitiesIpProtocol": "TCP"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ipAddressTypeAvailability": "public_IPv4_address_available",
|
||||||
|
"qosMapSetConfiguration": null,
|
||||||
|
"apGeospatialLocation": null,
|
||||||
|
"apCivicLocation": null,
|
||||||
|
"apPublicLocationIdUri": null,
|
||||||
|
"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
|
||||||
|
"anqpDomainId": 1234,
|
||||||
|
"disableDownstreamGroupAddressedForwarding": false,
|
||||||
|
"enable2pt4GHz": true,
|
||||||
|
"enable5GHz": true,
|
||||||
|
"associatedAccessSsidProfileIds": [
|
||||||
|
15
|
||||||
|
],
|
||||||
|
"osuSsidProfileId": 16,
|
||||||
|
"passpointOperatorProfileId": 17,
|
||||||
|
"passpointVenueProfileId": 18,
|
||||||
|
"passpointOsuProviderProfileIds": [
|
||||||
|
19,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
"accessNetworkType": "free_public_network",
|
||||||
|
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||||
|
"profileType": "passpoint"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1606778370807,
|
||||||
|
"lastModifiedTimestamp": 1606778370807,
|
||||||
|
"childProfileIds": [
|
||||||
|
17,
|
||||||
|
18,
|
||||||
|
19,
|
||||||
|
20
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
270
opensync-ext-static/src/main/resources/ProfileIdProvider.json
Normal file
270
opensync-ext-static/src/main/resources/ProfileIdProvider.json
Normal file
@@ -0,0 +1,270 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 19,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_osu_id_provider",
|
||||||
|
"name": "TipWlan-Passpoint-OSU-Provider",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
|
"domainName": "rogers.com",
|
||||||
|
"mccMncList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointMccMnc",
|
||||||
|
"mcc": 302,
|
||||||
|
"mnc": 720,
|
||||||
|
"iso": "ca",
|
||||||
|
"country": "Canada",
|
||||||
|
"countryCode": 1,
|
||||||
|
"network": "Rogers AT&T Wireless",
|
||||||
|
"mccMncPairing": "302,720"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"naiRealmList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
|
"naiRealms": [
|
||||||
|
"rogers.com"
|
||||||
|
],
|
||||||
|
"encoding": 0,
|
||||||
|
"eapMethods": [
|
||||||
|
"EAP-TTLS with username/password",
|
||||||
|
"EAP-TLS with certificate"
|
||||||
|
],
|
||||||
|
"eapMap": {
|
||||||
|
"EAP-TTLS with username/password": [
|
||||||
|
"Credential Type:username/password",
|
||||||
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
|
],
|
||||||
|
"EAP-TLS with certificate": [
|
||||||
|
"Credential Type:Certificate"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuIconList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_CA",
|
||||||
|
"iconName": "icon32eng",
|
||||||
|
"filePath": "/tmp/icon32eng.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "fra",
|
||||||
|
"iconLocale": "fr_CA",
|
||||||
|
"iconName": "icon32fra",
|
||||||
|
"filePath": "/tmp/icon32fra.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_US",
|
||||||
|
"iconName": "icon32usa",
|
||||||
|
"filePath": "/tmp/icon32usa.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuServerUri": "https://example.com/osu/rogers",
|
||||||
|
"osuFriendlyName": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example provider rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example provider rogers"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemple de fournisseur rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuNaiStandalone": "anonymous@rogers.com",
|
||||||
|
"osuNaiShared": "anonymous@rogers.com",
|
||||||
|
"osuMethodList": [
|
||||||
|
1,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"osuServiceDescription": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example services rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example services rogers"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemples de services rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemples de services rogers"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"roamingOi": [
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"profileType": "passpoint_osu_id_provider"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1606778370345,
|
||||||
|
"lastModifiedTimestamp": 1606778370345,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 20,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_osu_id_provider",
|
||||||
|
"name": "TipWlan-Passpoint-OSU-Provider-2",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
|
"domainName": "telus.com",
|
||||||
|
"mccMncList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointMccMnc",
|
||||||
|
"mcc": 302,
|
||||||
|
"mnc": 220,
|
||||||
|
"iso": "ca",
|
||||||
|
"country": "Canada",
|
||||||
|
"countryCode": 1,
|
||||||
|
"network": "Telus Mobility",
|
||||||
|
"mccMncPairing": "302,220"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"naiRealmList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
|
"naiRealms": [
|
||||||
|
"telus.com"
|
||||||
|
],
|
||||||
|
"encoding": 0,
|
||||||
|
"eapMethods": [
|
||||||
|
"EAP-TTLS with username/password",
|
||||||
|
"EAP-TLS with certificate"
|
||||||
|
],
|
||||||
|
"eapMap": {
|
||||||
|
"EAP-TTLS with username/password": [
|
||||||
|
"Credential Type:username/password",
|
||||||
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
|
],
|
||||||
|
"EAP-TLS with certificate": [
|
||||||
|
"Credential Type:Certificate"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuIconList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_CA",
|
||||||
|
"iconName": "icon32eng",
|
||||||
|
"filePath": "/tmp/icon32eng.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "fra",
|
||||||
|
"iconLocale": "fr_CA",
|
||||||
|
"iconName": "icon32fra",
|
||||||
|
"filePath": "/tmp/icon32fra.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_US",
|
||||||
|
"iconName": "icon32usa",
|
||||||
|
"filePath": "/tmp/icon32usa.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuServerUri": "https://example.com/osu/telus",
|
||||||
|
"osuFriendlyName": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example provider telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example provider telus"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemple de fournisseur telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemple de fournisseur telus"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuNaiStandalone": "anonymous@telus.com",
|
||||||
|
"osuNaiShared": "anonymous@telus.com",
|
||||||
|
"osuMethodList": [
|
||||||
|
1,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"osuServiceDescription": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example services telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example services telus"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemples de services telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemples de services telus"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"roamingOi": [
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"profileType": "passpoint_osu_id_provider"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1606778370351,
|
||||||
|
"lastModifiedTimestamp": 1606778370351,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
299
opensync-ext-static/src/main/resources/ProfileMetrics.json
Normal file
299
opensync-ext-static/src/main/resources/ProfileMetrics.json
Normal file
@@ -0,0 +1,299 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 10,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "service_metrics_collection_config",
|
||||||
|
"name": "Metrics-Profile-3-Radios",
|
||||||
|
"details": {
|
||||||
|
"model_type": "ServiceMetricsCollectionConfigProfile",
|
||||||
|
"radioTypes": [
|
||||||
|
"is5GHzL",
|
||||||
|
"is2dot4GHz",
|
||||||
|
"is5GHzU"
|
||||||
|
],
|
||||||
|
"serviceMetricDataTypes": [
|
||||||
|
"ApNode",
|
||||||
|
"ApSsid",
|
||||||
|
"Client",
|
||||||
|
"Channel",
|
||||||
|
"Neighbour"
|
||||||
|
],
|
||||||
|
"metricConfigParameterMap": {
|
||||||
|
"ApNode": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ApSsid": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "ApSsid"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "ApSsid"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "ApSsid"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Client": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Client"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Client"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Client"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Channel": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Neighbour": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"profileType": "service_metrics_collection_config"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1606778369931,
|
||||||
|
"lastModifiedTimestamp": 1606778369931,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
37
opensync-ext-static/src/main/resources/ProfileOperator.json
Normal file
37
opensync-ext-static/src/main/resources/ProfileOperator.json
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 17,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_operator",
|
||||||
|
"name": "TipWlan-Passpoint-Operator",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointOperatorProfile",
|
||||||
|
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||||
|
"x509CertificateLocation": "/etc/ca.pem",
|
||||||
|
"operatorFriendlyName": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Default friendly passpoint_operator name",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"profileType": "passpoint_operator"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1606778369945,
|
||||||
|
"lastModifiedTimestamp": 1606778369945,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
34
opensync-ext-static/src/main/resources/ProfileRadius.json
Normal file
34
opensync-ext-static/src/main/resources/ProfileRadius.json
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 1,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "radius",
|
||||||
|
"name": "Radius-Profile",
|
||||||
|
"details": {
|
||||||
|
"model_type": "RadiusProfile",
|
||||||
|
"subnetConfiguration": null,
|
||||||
|
"serviceRegionMap": {
|
||||||
|
"Ottawa": {
|
||||||
|
"model_type": "RadiusServiceRegion",
|
||||||
|
"serverMap": {
|
||||||
|
"Radius-Profile": [
|
||||||
|
{
|
||||||
|
"model_type": "RadiusServer",
|
||||||
|
"ipAddress": "192.168.0.1",
|
||||||
|
"secret": "testing123",
|
||||||
|
"authPort": 1812,
|
||||||
|
"timeout": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"regionName": "Ottawa"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profileType": "radius"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1601961451668,
|
||||||
|
"lastModifiedTimestamp": 1601961451668,
|
||||||
|
"childProfileIds": []
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 4,
|
"id": 11,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "rf",
|
"profileType": "rf",
|
||||||
"name": "TipWlan-rf",
|
"name": "TipWlan-rf",
|
||||||
@@ -198,7 +198,7 @@
|
|||||||
},
|
},
|
||||||
"profileType": "rf"
|
"profileType": "rf"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1612285248650,
|
"createdTimestamp": 1606778369933,
|
||||||
"lastModifiedTimestamp": 1612285248650,
|
"lastModifiedTimestamp": 1606778369933,
|
||||||
"childProfileIds": []
|
"childProfileIds": []
|
||||||
}
|
}
|
||||||
@@ -1,75 +1,203 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 2,
|
"id": 5,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "ssid",
|
"profileType": "ssid",
|
||||||
"name": "TipWlan-cloud-3-radios",
|
"name": "TipWlan-cloud-3-radios",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "SsidConfiguration",
|
"model_type": "SsidConfiguration",
|
||||||
"ssid": "TipWlan-cloud-3-radios",
|
"ssid": "TipWlan-cloud-3-radios",
|
||||||
"appliedRadios": [
|
"appliedRadios": [
|
||||||
"is5GHzU",
|
"is5GHzL",
|
||||||
"is2dot4GHz",
|
"is2dot4GHz",
|
||||||
"is5GHzL"
|
"is5GHzU"
|
||||||
],
|
],
|
||||||
"ssidAdminState": "enabled",
|
"ssidAdminState": "enabled",
|
||||||
"secureMode": "wpa2OnlyPSK",
|
"secureMode": "wpa2OnlyPSK",
|
||||||
"vlanId": 1,
|
"vlanId": 1,
|
||||||
"keyStr": "openwifi",
|
"keyStr": "openwifi",
|
||||||
"broadcastSsid": "enabled",
|
"broadcastSsid": "enabled",
|
||||||
"keyRefresh": 0,
|
"keyRefresh": 0,
|
||||||
"noLocalSubnets": false,
|
"noLocalSubnets": false,
|
||||||
"radiusServiceId": 0,
|
"radiusServiceName": null,
|
||||||
"radiusAcountingServiceInterval": 60,
|
"radiusAccountingServiceName": null,
|
||||||
"captivePortalId": null,
|
"radiusAcountingServiceInterval": null,
|
||||||
"bandwidthLimitDown": 0,
|
"captivePortalId": null,
|
||||||
"bandwidthLimitUp": 0,
|
"bandwidthLimitDown": 0,
|
||||||
"clientBandwidthLimitDown": 0,
|
"bandwidthLimitUp": 0,
|
||||||
"clientBandwidthLimitUp": 0,
|
"clientBandwidthLimitDown": 0,
|
||||||
"videoTrafficOnly": false,
|
"clientBandwidthLimitUp": 0,
|
||||||
"radioBasedConfigs": {
|
"videoTrafficOnly": false,
|
||||||
"is5GHzU": {
|
"radioBasedConfigs": {
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is5GHzL": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
},
|
"enable80211v": null
|
||||||
"is2dot4GHz": {
|
},
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is2dot4GHz": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
},
|
"enable80211v": null
|
||||||
"is5GHz": {
|
},
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is5GHz": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
},
|
"enable80211v": null
|
||||||
"is5GHzL": {
|
},
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is5GHzU": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
}
|
"enable80211v": null
|
||||||
},
|
}
|
||||||
"bonjourGatewayProfileId": null,
|
},
|
||||||
"enable80211w": null,
|
"bonjourGatewayProfileId": null,
|
||||||
"wepConfig": null,
|
"enable80211w": null,
|
||||||
"forwardMode": "BRIDGE",
|
"wepConfig": null,
|
||||||
"profileType": "ssid",
|
"forwardMode": "BRIDGE",
|
||||||
"radiusClientConfiguration": {
|
"profileType": "ssid"
|
||||||
"model_type": "RadiusNasConfiguration",
|
},
|
||||||
"nasClientId": "DEFAULT",
|
"createdTimestamp": 1606778369598,
|
||||||
"nasClientIp": "WAN_IP",
|
"lastModifiedTimestamp": 1606778369598,
|
||||||
"userDefinedNasId": null,
|
"childProfileIds": [
|
||||||
"userDefinedNasIp": null,
|
]
|
||||||
"operatorId": null
|
},
|
||||||
}
|
{
|
||||||
},
|
"model_type": "Profile",
|
||||||
"createdTimestamp": 1612285248638,
|
"id": 15,
|
||||||
"lastModifiedTimestamp": 1612285248638,
|
"customerId": 2,
|
||||||
"childProfileIds": []
|
"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": {
|
||||||
|
"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": 1606778369943,
|
||||||
|
"lastModifiedTimestamp": 1606778370811,
|
||||||
|
"childProfileIds": [
|
||||||
|
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
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
43
opensync-ext-static/src/main/resources/ProfileVenue.json
Normal file
43
opensync-ext-static/src/main/resources/ProfileVenue.json
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 18,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_venue",
|
||||||
|
"name": "TipWlan-Passpoint-Venue",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointVenueProfile",
|
||||||
|
"venueNameSet": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointVenueName",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemple de lieu",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"venueUrl": "http://www.example.com/info-fra",
|
||||||
|
"asDuple": "fra:Exemple de lieu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointVenueName",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example passpoint_venue",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"venueUrl": "http://www.example.com/info-eng",
|
||||||
|
"asDuple": "eng:Example passpoint_venue"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"venueTypeAssignment": {
|
||||||
|
"model_type": "PasspointVenueTypeAssignment",
|
||||||
|
"venueDescription": "Research and Development Facility",
|
||||||
|
"venueGroupId": 2,
|
||||||
|
"venueTypeId": 8
|
||||||
|
},
|
||||||
|
"profileType": "passpoint_venue"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1606778369950,
|
||||||
|
"lastModifiedTimestamp": 1606778369950,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
<relativePath>../../wlan-cloud-root</relativePath>
|
<relativePath>../../wlan-cloud-root</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>opensync-gateway-build</artifactId>
|
<artifactId>opensync-gateway-build</artifactId>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
<relativePath>../../wlan-cloud-root</relativePath>
|
<relativePath>../../wlan-cloud-root</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>opensync-gateway-cloud-docker</artifactId>
|
<artifactId>opensync-gateway-cloud-docker</artifactId>
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>opensync-gateway-cloud-process</artifactId>
|
<artifactId>opensync-gateway-cloud-process</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ 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}"
|
MQTT_BROKER_EXTERNAL_PORT="${MQTT_BROKER_EXTERNAL_PORT}"
|
||||||
OVSDB_EXTERNAL_PORT="${OVSDB_EXTERNAL_PORT}"
|
OVSDB_EXTERNAL_PORT="${OVSDB_EXTERNAL_PORT}"
|
||||||
OFF_CHANNEL_REPORTING_INTERVAL_SECONDS="${OFF_CHANNEL_REPORTING_INTERVAL_SECONDS:=120}"
|
|
||||||
REPORTING_INTERVAL_SECONDS="${REPORTING_INTERVAL_SECONDS:=60}"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -108,8 +106,6 @@ PROV_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_wan_type=$DEFAULT_WAN_TYPE"
|
|||||||
PROV_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_wan_name=$DEFAULT_WAN_NAME"
|
PROV_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_wan_name=$DEFAULT_WAN_NAME"
|
||||||
PROV_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_lan_type=$DEFAULT_LAN_TYPE"
|
PROV_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_lan_type=$DEFAULT_LAN_TYPE"
|
||||||
PROV_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_lan_name=$DEFAULT_LAN_NAME"
|
PROV_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_lan_name=$DEFAULT_LAN_NAME"
|
||||||
PROV_PROPS+=" -Dtip.wlan.defaultOffChannelReportingIntervalSeconds=$OFF_CHANNEL_REPORTING_INTERVAL_SECONDS"
|
|
||||||
PROV_PROPS+=" -Dtip.wlan.defaultReportingIntervalSeconds=$REPORTING_INTERVAL_SECONDS"
|
|
||||||
|
|
||||||
PROV_PROPS+=" -Dtip.wlan.ovsdb.autoProvisionedCustomerId=$AUTO_PROV_CUSTOMER_ID"
|
PROV_PROPS+=" -Dtip.wlan.ovsdb.autoProvisionedCustomerId=$AUTO_PROV_CUSTOMER_ID"
|
||||||
|
|
||||||
@@ -117,16 +113,9 @@ FILE_STORE_PROPS=" "
|
|||||||
FILE_STORE_PROPS+=" -Dtip.wlan.fileStoreDirectory=$FILE_STORE_DIRECTORY"
|
FILE_STORE_PROPS+=" -Dtip.wlan.fileStoreDirectory=$FILE_STORE_DIRECTORY"
|
||||||
FILE_STORE_PROPS+=" -Dtip.wlan.externalFileStoreURL=$FILE_STORE_EXTERNAL_URL"
|
FILE_STORE_PROPS+=" -Dtip.wlan.externalFileStoreURL=$FILE_STORE_EXTERNAL_URL"
|
||||||
|
|
||||||
REMOTE_DEBUG_PORT=${REMOTE_DEBUG_PORT:-'5005'}
|
REMOTE_DEBUG_PORT=5005
|
||||||
if [ "x$REMOTE_DEBUG_ENABLE" == "xtrue" ]
|
REMOTE_DEBUG=" -agentlib:jdwp=transport=dt_socket,server=y,address=*:$REMOTE_DEBUG_PORT,suspend=n"
|
||||||
then
|
|
||||||
REMOTE_DEBUG=" -agentlib:jdwp=transport=dt_socket,server=y,address=*:$REMOTE_DEBUG_PORT,suspend=n"
|
|
||||||
else
|
|
||||||
REMOTE_DEBUG=" "
|
|
||||||
fi
|
|
||||||
|
|
||||||
JVM_EXTRA_PROPS=" ${JVM_MEM_OPTIONS:- } "
|
export ALL_PROPS="$PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS $HOST_PROPS $PROV_PROPS $FILE_STORE_PROPS $REMOTE_DEBUG"
|
||||||
|
|
||||||
export ALL_PROPS="$JVM_EXTRA_PROPS $PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS $HOST_PROPS $PROV_PROPS $FILE_STORE_PROPS $REMOTE_DEBUG"
|
|
||||||
|
|
||||||
java $ALL_PROPS -jar app.jar
|
java $ALL_PROPS -jar app.jar
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
<relativePath>../../wlan-cloud-root</relativePath>
|
<relativePath>../../wlan-cloud-root</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>opensync-gateway-cloud-process</artifactId>
|
<artifactId>opensync-gateway-cloud-process</artifactId>
|
||||||
@@ -16,99 +18,99 @@
|
|||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!-- <dependency> <groupId>com.telecominfraproject.wlan</groupId> <artifactId>opensync-gateway</artifactId>
|
<!-- <dependency> <groupId>com.telecominfraproject.wlan</groupId> <artifactId>opensync-gateway</artifactId>
|
||||||
<version>0.0.1-SNAPSHOT</version> </dependency> -->
|
<version>${tip-wlan-cloud.release.version}</version> </dependency> -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>opensync-ext-cloud</artifactId>
|
<artifactId>opensync-ext-cloud</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>filestore-service</artifactId>
|
<artifactId>filestore-service</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>customer-service-remote</artifactId>
|
<artifactId>customer-service-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>location-service-remote</artifactId>
|
<artifactId>location-service-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>equipment-service-remote</artifactId>
|
<artifactId>equipment-service-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>profile-service-remote</artifactId>
|
<artifactId>profile-service-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>portal-user-service-remote</artifactId>
|
<artifactId>portal-user-service-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>service-metric-service-remote</artifactId>
|
<artifactId>service-metric-service-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>system-event-service-remote</artifactId>
|
<artifactId>system-event-service-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>alarm-service-remote</artifactId>
|
<artifactId>alarm-service-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>status-service-remote</artifactId>
|
<artifactId>status-service-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>client-service-remote</artifactId>
|
<artifactId>client-service-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>routing-service-remote</artifactId>
|
<artifactId>routing-service-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>firmware-service-remote</artifactId>
|
<artifactId>firmware-service-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>manufacturer-service-remote</artifactId>
|
<artifactId>manufacturer-service-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>cloud-event-dispatcher-remote</artifactId>
|
<artifactId>cloud-event-dispatcher-remote</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ tip.wlan.manufacturerServiceBaseUrl=https://localhost:9092
|
|||||||
tip.wlan.portalUserServiceBaseUrl=https://localhost:9092
|
tip.wlan.portalUserServiceBaseUrl=https://localhost:9092
|
||||||
|
|
||||||
tip.wlan.fileStoreDirectory=/tmp/tip-wlan-filestore
|
tip.wlan.fileStoreDirectory=/tmp/tip-wlan-filestore
|
||||||
tip.wlan.externalFileStoreURL=https://localhost:9092
|
tip.wlan.externalFileStoreURL=https://localhost:9096
|
||||||
|
|
||||||
#server.session-timeout= # session timeout in seconds
|
#server.session-timeout= # session timeout in seconds
|
||||||
#server.tomcat.max-threads = 0 # number of threads in protocol handler
|
#server.tomcat.max-threads = 0 # number of threads in protocol handler
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
<relativePath>../../wlan-cloud-root</relativePath>
|
<relativePath>../../wlan-cloud-root</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>opensync-gateway-static-docker</artifactId>
|
<artifactId>opensync-gateway-static-docker</artifactId>
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>opensync-gateway-static-process</artifactId>
|
<artifactId>opensync-gateway-static-process</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|||||||
@@ -1,472 +1,221 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Equipment",
|
"model_type": "Equipment",
|
||||||
"id": 1,
|
"id": 51,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileId": 8,
|
"profileId": 12,
|
||||||
"locationId": 8,
|
"locationId": 8,
|
||||||
|
"equipmentType": "AP",
|
||||||
|
"inventoryId": "Test_Client_21P10C68818122",
|
||||||
|
"name": "Test_Client_21P10C68818122",
|
||||||
|
"details": {
|
||||||
|
"model_type": "ApElementConfiguration",
|
||||||
|
"equipmentModel": "EA8300-CA",
|
||||||
|
"elementConfigVersion": "AP-V1",
|
||||||
"equipmentType": "AP",
|
"equipmentType": "AP",
|
||||||
"inventoryId": "Open_AP_21P10C68818122",
|
"deviceMode": "standaloneAP",
|
||||||
"name": "Open_AP_21P10C68818122",
|
"gettingIP": "dhcp",
|
||||||
"details": {
|
"staticIP": null,
|
||||||
"model_type": "ApElementConfiguration",
|
"staticIpMaskCidr": null,
|
||||||
"equipmentModel": "EA8300-CA",
|
"staticIpGw": null,
|
||||||
"elementConfigVersion": "AP-V1",
|
"gettingDNS": "dhcp",
|
||||||
"equipmentType": "AP",
|
"staticDnsIp1": null,
|
||||||
"deviceMode": "standaloneAP",
|
"staticDnsIp2": null,
|
||||||
"gettingIP": "dhcp",
|
"peerInfoList": [],
|
||||||
"staticIP": null,
|
"deviceName": "Default Device Name",
|
||||||
"staticIpMaskCidr": null,
|
"locationData": null,
|
||||||
"staticIpGw": null,
|
"locallyConfiguredMgmtVlan": 0,
|
||||||
"gettingDNS": "dhcp",
|
"locallyConfigured": false,
|
||||||
"staticDnsIp1": null,
|
"deploymentType": "CEILING",
|
||||||
"staticDnsIp2": null,
|
"syntheticClientEnabled": null,
|
||||||
"peerInfoList": [],
|
"frameReportThrottleEnabled": true,
|
||||||
"deviceName": "Open_AP_21P10C68818122",
|
"antennaType": "OMNI",
|
||||||
"locationData": null,
|
"costSavingEventsEnabled": true,
|
||||||
"locallyConfiguredMgmtVlan": 0,
|
"forwardMode": "BRIDGE",
|
||||||
"locallyConfigured": false,
|
"radioMap": {
|
||||||
"deploymentType": "CEILING",
|
"is2dot4GHz": {
|
||||||
"syntheticClientEnabled": null,
|
"model_type": "ElementRadioConfiguration",
|
||||||
"frameReportThrottleEnabled": true,
|
"radioType": "is2dot4GHz",
|
||||||
"antennaType": "OMNI",
|
"channelNumber": 6,
|
||||||
"costSavingEventsEnabled": true,
|
"manualChannelNumber": 6,
|
||||||
"forwardMode": "BRIDGE",
|
"backupChannelNumber": 11,
|
||||||
"radioMap": {
|
"bannedChannels": [],
|
||||||
"is5GHzU": {
|
"allowedChannels": [],
|
||||||
"model_type": "ElementRadioConfiguration",
|
"rxCellSizeDb": {
|
||||||
"radioType": "is5GHzU",
|
"model_type": "SourceSelectionValue",
|
||||||
"channelNumber": 149,
|
"source": "auto",
|
||||||
"manualChannelNumber": 149,
|
"value": -90
|
||||||
"backupChannelNumber": 157,
|
|
||||||
"manualBackupChannelNumber": 157,
|
|
||||||
"rxCellSizeDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"probeResponseThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"clientDisconnectThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"eirpTxPower": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": 18
|
|
||||||
},
|
|
||||||
"perimeterDetectionEnabled": true,
|
|
||||||
"bestAPSteerType": "both",
|
|
||||||
"deauthAttackDetection": null,
|
|
||||||
"allowedChannelsPowerLevels": [
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 161,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 100,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 132,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 165,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 104,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 136,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 108,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 140,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 112,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 144,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 116,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 149,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 153,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 157,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"is2dot4GHz": {
|
|
||||||
"model_type": "ElementRadioConfiguration",
|
|
||||||
"radioType": "is2dot4GHz",
|
|
||||||
"channelNumber": 6,
|
|
||||||
"manualChannelNumber": 6,
|
|
||||||
"backupChannelNumber": 11,
|
|
||||||
"manualBackupChannelNumber": 11,
|
|
||||||
"rxCellSizeDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"probeResponseThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"clientDisconnectThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"eirpTxPower": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": 18
|
|
||||||
},
|
|
||||||
"perimeterDetectionEnabled": true,
|
|
||||||
"bestAPSteerType": "both",
|
|
||||||
"deauthAttackDetection": null,
|
|
||||||
"allowedChannelsPowerLevels": [
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 1,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 2,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 3,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 4,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 5,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 6,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 7,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 8,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 9,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 10,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 11,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"is5GHzL": {
|
|
||||||
"model_type": "ElementRadioConfiguration",
|
|
||||||
"radioType": "is5GHzL",
|
|
||||||
"channelNumber": 36,
|
|
||||||
"manualChannelNumber": 36,
|
|
||||||
"backupChannelNumber": 44,
|
|
||||||
"manualBackupChannelNumber": 44,
|
|
||||||
"rxCellSizeDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"probeResponseThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"clientDisconnectThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"eirpTxPower": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": 18
|
|
||||||
},
|
|
||||||
"perimeterDetectionEnabled": true,
|
|
||||||
"bestAPSteerType": "both",
|
|
||||||
"deauthAttackDetection": null,
|
|
||||||
"allowedChannelsPowerLevels": [
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 52,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 36,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 56,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 40,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 60,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 44,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 64,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 48,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"advancedRadioMap": {
|
"probeResponseThresholdDb": {
|
||||||
"is2dot4GHz": {
|
"model_type": "SourceSelectionValue",
|
||||||
"model_type": "RadioConfiguration",
|
"source": "auto",
|
||||||
"radioType": "is2dot4GHz",
|
"value": -90
|
||||||
"radioAdminState": "enabled",
|
},
|
||||||
"fragmentationThresholdBytes": 2346,
|
"clientDisconnectThresholdDb": {
|
||||||
"uapsdState": "enabled",
|
"model_type": "SourceSelectionValue",
|
||||||
"stationIsolation": "disabled",
|
"source": "auto",
|
||||||
"multicastRate": {
|
"value": -90
|
||||||
"model_type": "SourceSelectionMulticast",
|
},
|
||||||
"source": "profile",
|
"eirpTxPower": {
|
||||||
"value": "auto"
|
"model_type": "SourceSelectionValue",
|
||||||
},
|
"source": "auto",
|
||||||
"managementRate": {
|
"value": 32
|
||||||
"model_type": "SourceSelectionManagement",
|
},
|
||||||
"source": "profile",
|
"perimeterDetectionEnabled": true,
|
||||||
"value": "auto"
|
"bestAPSteerType": "both",
|
||||||
},
|
"deauthAttackDetection": null,
|
||||||
"bestApSettings": {
|
"allowedChannelsPowerLevels": [],
|
||||||
"model_type": "SourceSelectionSteering",
|
"activeChannel": 6
|
||||||
"source": "manual",
|
},
|
||||||
"value": {
|
"is5GHzU": {
|
||||||
"model_type": "RadioBestApSettings",
|
"model_type": "ElementRadioConfiguration",
|
||||||
"mlComputed": true,
|
"radioType": "is5GHzU",
|
||||||
"dropInSnrPercentage": 20,
|
"channelNumber": 149,
|
||||||
"minLoadFactor": 50
|
"manualChannelNumber": 149,
|
||||||
}
|
"backupChannelNumber": 154,
|
||||||
},
|
"bannedChannels": [],
|
||||||
"legacyBSSRate": "enabled",
|
"allowedChannels": [],
|
||||||
"dtimPeriod": 2,
|
"rxCellSizeDb": {
|
||||||
"deauthAttackDetection": null
|
"model_type": "SourceSelectionValue",
|
||||||
},
|
"source": "auto",
|
||||||
"is5GHzU": {
|
"value": -90
|
||||||
"model_type": "RadioConfiguration",
|
},
|
||||||
"radioType": "is5GHzU",
|
"probeResponseThresholdDb": {
|
||||||
"radioAdminState": "enabled",
|
"model_type": "SourceSelectionValue",
|
||||||
"fragmentationThresholdBytes": 2346,
|
"source": "auto",
|
||||||
"uapsdState": "enabled",
|
"value": -90
|
||||||
"stationIsolation": "disabled",
|
},
|
||||||
"multicastRate": {
|
"clientDisconnectThresholdDb": {
|
||||||
"model_type": "SourceSelectionMulticast",
|
"model_type": "SourceSelectionValue",
|
||||||
"source": "profile",
|
"source": "auto",
|
||||||
"value": "auto"
|
"value": -90
|
||||||
},
|
},
|
||||||
"managementRate": {
|
"eirpTxPower": {
|
||||||
"model_type": "SourceSelectionManagement",
|
"model_type": "SourceSelectionValue",
|
||||||
"source": "profile",
|
"source": "auto",
|
||||||
"value": "auto"
|
"value": 32
|
||||||
},
|
},
|
||||||
"bestApSettings": {
|
"perimeterDetectionEnabled": true,
|
||||||
"model_type": "SourceSelectionSteering",
|
"bestAPSteerType": "both",
|
||||||
"source": "manual",
|
"deauthAttackDetection": null,
|
||||||
"value": {
|
"allowedChannelsPowerLevels": [],
|
||||||
"model_type": "RadioBestApSettings",
|
"activeChannel": 149
|
||||||
"mlComputed": true,
|
},
|
||||||
"dropInSnrPercentage": 30,
|
"is5GHzL": {
|
||||||
"minLoadFactor": 40
|
"model_type": "ElementRadioConfiguration",
|
||||||
}
|
"radioType": "is5GHzL",
|
||||||
},
|
"channelNumber": 36,
|
||||||
"legacyBSSRate": "enabled",
|
"manualChannelNumber": 36,
|
||||||
"dtimPeriod": 2,
|
"backupChannelNumber": 44,
|
||||||
"deauthAttackDetection": null
|
"bannedChannels": [],
|
||||||
},
|
"allowedChannels": [],
|
||||||
"is5GHzL": {
|
"rxCellSizeDb": {
|
||||||
"model_type": "RadioConfiguration",
|
"model_type": "SourceSelectionValue",
|
||||||
"radioType": "is5GHzL",
|
"source": "auto",
|
||||||
"radioAdminState": "enabled",
|
"value": -90
|
||||||
"fragmentationThresholdBytes": 2346,
|
},
|
||||||
"uapsdState": "enabled",
|
"probeResponseThresholdDb": {
|
||||||
"stationIsolation": "disabled",
|
"model_type": "SourceSelectionValue",
|
||||||
"multicastRate": {
|
"source": "auto",
|
||||||
"model_type": "SourceSelectionMulticast",
|
"value": -90
|
||||||
"source": "profile",
|
},
|
||||||
"value": "auto"
|
"clientDisconnectThresholdDb": {
|
||||||
},
|
"model_type": "SourceSelectionValue",
|
||||||
"managementRate": {
|
"source": "auto",
|
||||||
"model_type": "SourceSelectionManagement",
|
"value": -90
|
||||||
"source": "profile",
|
},
|
||||||
"value": "auto"
|
"eirpTxPower": {
|
||||||
},
|
"model_type": "SourceSelectionValue",
|
||||||
"bestApSettings": {
|
"source": "auto",
|
||||||
"model_type": "SourceSelectionSteering",
|
"value": 32
|
||||||
"source": "manual",
|
},
|
||||||
"value": {
|
"perimeterDetectionEnabled": true,
|
||||||
"model_type": "RadioBestApSettings",
|
"bestAPSteerType": "both",
|
||||||
"mlComputed": true,
|
"deauthAttackDetection": null,
|
||||||
"dropInSnrPercentage": 30,
|
"allowedChannelsPowerLevels": [],
|
||||||
"minLoadFactor": 40
|
"activeChannel": 36
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"legacyBSSRate": "enabled",
|
|
||||||
"dtimPeriod": 2,
|
|
||||||
"deauthAttackDetection": null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"latitude": null,
|
"advancedRadioMap": {
|
||||||
"longitude": null,
|
"is2dot4GHz": {
|
||||||
"baseMacAddress": {
|
"model_type": "RadioConfiguration",
|
||||||
"model_type": "MacAddress",
|
"radioType": "is2dot4GHz",
|
||||||
"address": "JPWi7y5T",
|
"radioAdminState": "enabled",
|
||||||
"addressAsString": "24:f5:a2:ef:2e:53"
|
"fragmentationThresholdBytes": 2346,
|
||||||
},
|
"uapsdState": "enabled",
|
||||||
"serial": "21P10C68818122",
|
"stationIsolation": "disabled",
|
||||||
"createdTimestamp": 1612285288821,
|
"managementRate": {
|
||||||
"lastModifiedTimestamp": 1612285293922
|
"model_type": "SourceSelectionManagement",
|
||||||
}
|
"source": "auto",
|
||||||
|
"value": "auto"
|
||||||
|
},
|
||||||
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
|
"model_type": "RadioBestApSettings",
|
||||||
|
"mlComputed": true,
|
||||||
|
"dropInSnrPercentage": 30,
|
||||||
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"legacyBSSRate": "enabled",
|
||||||
|
"deauthAttackDetection": null
|
||||||
|
},
|
||||||
|
"is5GHzU": {
|
||||||
|
"model_type": "RadioConfiguration",
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"radioAdminState": "enabled",
|
||||||
|
"fragmentationThresholdBytes": 2346,
|
||||||
|
"uapsdState": "enabled",
|
||||||
|
"stationIsolation": "disabled",
|
||||||
|
"managementRate": {
|
||||||
|
"model_type": "SourceSelectionManagement",
|
||||||
|
"source": "auto",
|
||||||
|
"value": "auto"
|
||||||
|
},
|
||||||
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
|
"model_type": "RadioBestApSettings",
|
||||||
|
"mlComputed": true,
|
||||||
|
"dropInSnrPercentage": 30,
|
||||||
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"legacyBSSRate": "enabled",
|
||||||
|
"deauthAttackDetection": null
|
||||||
|
},
|
||||||
|
"is5GHzL": {
|
||||||
|
"model_type": "RadioConfiguration",
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"radioAdminState": "enabled",
|
||||||
|
"fragmentationThresholdBytes": 2346,
|
||||||
|
"uapsdState": "enabled",
|
||||||
|
"stationIsolation": "disabled",
|
||||||
|
"managementRate": {
|
||||||
|
"model_type": "SourceSelectionManagement",
|
||||||
|
"source": "auto",
|
||||||
|
"value": "auto"
|
||||||
|
},
|
||||||
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
|
"model_type": "RadioBestApSettings",
|
||||||
|
"mlComputed": true,
|
||||||
|
"dropInSnrPercentage": 30,
|
||||||
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"legacyBSSRate": "enabled",
|
||||||
|
"deauthAttackDetection": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"latitude": null,
|
||||||
|
"longitude": null,
|
||||||
|
"serial": "21P10C68818122",
|
||||||
|
"createdTimestamp": 1591653239821,
|
||||||
|
"lastModifiedTimestamp": 1591653241398
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,61 +1,60 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Location",
|
"model_type" : "Location",
|
||||||
"id": 8,
|
"id" : 8,
|
||||||
"parentId": 0,
|
"parentId" : 0,
|
||||||
"locationType": "SITE",
|
"locationType" : "SITE",
|
||||||
"customerId": 2,
|
"customerId" : 2,
|
||||||
"name": "Ottawa",
|
"name" : "Ottawa",
|
||||||
"details": {
|
"details" : {
|
||||||
"model_type": "LocationDetails",
|
"model_type" : "LocationDetails",
|
||||||
"countryCode": "CA",
|
"countryCode" : "ca",
|
||||||
"dailyActivityDetails": {
|
"maintenanceWindow" : null,
|
||||||
"SUNDAY": {
|
"rrmEnabled" : true,
|
||||||
"model_type": "LocationActivityDetails",
|
"dailyActivityDetails" : {
|
||||||
"busyTime": "13:30",
|
"SUNDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"MONDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"MONDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"TUESDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"TUESDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"WEDNESDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"WEDNESDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"THURSDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"THURSDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"FRIDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"FRIDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"SATURDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"SATURDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
}
|
"quietTime" : "3:30",
|
||||||
},
|
"timezone" : "US/Eastern"
|
||||||
"maintenanceWindow": null,
|
}
|
||||||
"rrmEnabled": true,
|
}
|
||||||
"timezone": "US/Eastern"
|
},
|
||||||
},
|
"createdTimestamp" : 1590607043540,
|
||||||
"createdTimestamp": 1612285243534,
|
"lastModifiedTimestamp" : 1590607043540
|
||||||
"lastModifiedTimestamp": 1612285243534
|
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 8,
|
"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",
|
||||||
@@ -37,22 +42,15 @@
|
|||||||
"bestAPSteerType": "both"
|
"bestAPSteerType": "both"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"greTunnelConfigurations": [
|
|
||||||
{
|
|
||||||
"model_type": "GreTunnelConfiguration",
|
|
||||||
"greTunnelName": "gre1",
|
|
||||||
"greRemoteInetAddr": "192.168.1.101",
|
|
||||||
"vlanIdsInGreTunnel": [
|
|
||||||
100
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"profileType": "equipment_ap"
|
"profileType": "equipment_ap"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1612285248925,
|
"createdTimestamp": 1606778369934,
|
||||||
"lastModifiedTimestamp": 1612285628377,
|
"lastModifiedTimestamp": 1606778443413,
|
||||||
"childProfileIds": [
|
"childProfileIds": [
|
||||||
2,
|
16,
|
||||||
4
|
5,
|
||||||
|
10,
|
||||||
|
11,
|
||||||
|
15
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,58 +1,135 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 5,
|
"id": 14,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "captive_portal",
|
"profileType": "captive_portal",
|
||||||
"name": "Captive-portal",
|
"name": "Captive-portal",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "CaptivePortalConfiguration",
|
"model_type": "CaptivePortalConfiguration",
|
||||||
"name": "Default",
|
"name": "Captive-portal",
|
||||||
"browserTitle": "Captive-portal",
|
"browserTitle": "Access the network as Guest",
|
||||||
"headerContent": "Captive Portal",
|
"headerContent": "Captive Portal",
|
||||||
"userAcceptancePolicy": "Please agree to the following terms for using this network:",
|
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||||
"successPageMarkdownText": "You are now authorized and connected to the network.",
|
"successPageMarkdownText": "Welcome to the network",
|
||||||
"redirectURL": "https://www.google.com",
|
"redirectURL": "",
|
||||||
"externalCaptivePortalURL": null,
|
"externalCaptivePortalURL": null,
|
||||||
"sessionTimeoutInMinutes": 10,
|
"sessionTimeoutInMinutes": 60,
|
||||||
"logoFile": {
|
"logoFile": null,
|
||||||
"model_type": "ManagedFileInfo",
|
"backgroundFile": null,
|
||||||
"md5checksum": null,
|
"walledGardenAllowlist": [],
|
||||||
"lastModifiedTimestamp": null,
|
"usernamePasswordFile": {
|
||||||
"apExportUrl": "/filestore/tip-logo-mobile",
|
"model_type": "ManagedFileInfo",
|
||||||
"fileCategory": "CaptivePortalLogo",
|
"md5checksum": null,
|
||||||
"fileType": "PNG",
|
"lastModifiedTimestamp": null,
|
||||||
"altSlot": false
|
"apExportUrl": "userList",
|
||||||
},
|
"fileCategory": "UsernamePasswordList",
|
||||||
"backgroundFile": {
|
"fileType": "TEXT",
|
||||||
"model_type": "ManagedFileInfo",
|
"altSlot": true
|
||||||
"md5checksum": null,
|
},
|
||||||
"lastModifiedTimestamp": null,
|
"authenticationType": "guest",
|
||||||
"apExportUrl": "/filestore/tip-logo",
|
"radiusAuthMethod": "CHAP",
|
||||||
"fileCategory": "CaptivePortalBackground",
|
"maxUsersWithSameCredentials": 42,
|
||||||
"fileType": "PNG",
|
"externalPolicyFile": null,
|
||||||
"altSlot": false
|
"backgroundPosition": "left_top",
|
||||||
},
|
"backgroundRepeat": "no_repeat",
|
||||||
"walledGardenAllowlist": [
|
"radiusServiceName": null,
|
||||||
],
|
"expiryType": "unlimited",
|
||||||
"usernamePasswordFile": null,
|
"userList": [
|
||||||
"authenticationType": "guest",
|
{
|
||||||
"radiusAuthMethod": "CHAP",
|
"model_type": "TimedAccessUserRecord",
|
||||||
"maxUsersWithSameCredentials": 3,
|
"username": "customer",
|
||||||
"externalPolicyFile": null,
|
"password": "testing123",
|
||||||
"backgroundPosition": "left_top",
|
"activationTime": 1602183994956,
|
||||||
"backgroundRepeat": "no_repeat",
|
"expirationTime": 1602212794956,
|
||||||
"radiusServiceId": 0,
|
"numDevices": 1,
|
||||||
"expiryType": "time_limited",
|
"userDetails": {
|
||||||
"userList": [
|
"model_type": "TimedAccessUserDetails",
|
||||||
],
|
"firstName": "Pac",
|
||||||
"macAllowList": [
|
"lastName": "Man",
|
||||||
],
|
"passwordNeedsReset": false
|
||||||
"profileType": "captive_portal"
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upO",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4e"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer",
|
||||||
|
"password": "testing123",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602187594957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Q",
|
||||||
|
"lastName": "Bert",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqho",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:68"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602788794957,
|
||||||
|
"numDevices": 1,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Duke",
|
||||||
|
"lastName": "Nukem",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upN",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4d"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602270394957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Missile",
|
||||||
|
"lastName": "Commander",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqhj",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:63"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"macAllowList": [],
|
||||||
|
"profileType": "captive_portal"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1611857459118,
|
"createdTimestamp": 1602183994959,
|
||||||
"lastModifiedTimestamp": 1611857459118,
|
"lastModifiedTimestamp": 1602183994959,
|
||||||
"childProfileIds": [
|
"childProfileIds": []
|
||||||
]
|
}
|
||||||
}
|
]
|
||||||
]
|
|
||||||
@@ -1,71 +1,71 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 37,
|
"id": 24,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "passpoint",
|
"profileType": "passpoint",
|
||||||
"name": "hotspot20-profile-2021-01-21T21:28:59.171Z",
|
"name": "TipWlan-Passpoint-Config",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "PasspointProfile",
|
"model_type": "PasspointProfile",
|
||||||
"enableInterworkingAndHs20": true,
|
"enableInterworkingAndHs20": true,
|
||||||
"hessid": null,
|
"hessid": null,
|
||||||
"passpointAccessNetworkType": "free_public_network",
|
"passpointAccessNetworkType": "free_public_network",
|
||||||
"passpointNetworkAuthenticationType": "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": "PasspointConnectionCapability",
|
"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,
|
||||||
"associatedAccessSsidProfileIds": [
|
"associatedAccessSsidProfileIds": [
|
||||||
32
|
15
|
||||||
],
|
],
|
||||||
"osuSsidProfileId": 31,
|
"osuSsidProfileId": 16,
|
||||||
"passpointOperatorProfileId": 34,
|
"passpointOperatorProfileId": 17,
|
||||||
"passpointVenueProfileId": 33,
|
"passpointVenueProfileId": 18,
|
||||||
"passpointOsuProviderProfileIds": [
|
"passpointOsuProviderProfileIds": [
|
||||||
35,
|
19,
|
||||||
36
|
20
|
||||||
],
|
],
|
||||||
"accessNetworkType": "free_public_network",
|
"accessNetworkType": "free_public_network",
|
||||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||||
"profileType": "passpoint"
|
"profileType": "passpoint"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 0,
|
"createdTimestamp": 1606778370807,
|
||||||
"lastModifiedTimestamp": 1611264539331,
|
"lastModifiedTimestamp": 1606778370807,
|
||||||
"childProfileIds": [
|
"childProfileIds": [
|
||||||
33,
|
17,
|
||||||
34,
|
18,
|
||||||
35,
|
19,
|
||||||
36
|
20
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,263 +1,270 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 35,
|
"id": 19,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "passpoint_osu_id_provider",
|
"profileType": "passpoint_osu_id_provider",
|
||||||
"name": "provider1-profile-2021-01-21T21:28:59.057Z",
|
"name": "TipWlan-Passpoint-OSU-Provider",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "PasspointOsuProviderProfile",
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
"mccMncList": [
|
"domainName": "rogers.com",
|
||||||
{
|
"mccMncList": [
|
||||||
"model_type": "PasspointMccMnc",
|
{
|
||||||
"mcc": 302,
|
"model_type": "PasspointMccMnc",
|
||||||
"mnc": 720,
|
"mcc": 302,
|
||||||
"iso": "ca",
|
"mnc": 720,
|
||||||
"country": "Canada",
|
"iso": "ca",
|
||||||
"countryCode": 1,
|
"country": "Canada",
|
||||||
"network": "Rogers AT&T Wireless",
|
"countryCode": 1,
|
||||||
"mccMncPairing": "302,720"
|
"network": "Rogers AT&T Wireless",
|
||||||
}
|
"mccMncPairing": "302,720"
|
||||||
],
|
}
|
||||||
"naiRealmList": [
|
],
|
||||||
{
|
"naiRealmList": [
|
||||||
"model_type": "PasspointNaiRealmInformation",
|
{
|
||||||
"naiRealms": [
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
"rogers.com"
|
"naiRealms": [
|
||||||
],
|
"rogers.com"
|
||||||
"encoding": 0,
|
],
|
||||||
"eapMethods": [
|
"encoding": 0,
|
||||||
"EAP-TTLS with username/password",
|
"eapMethods": [
|
||||||
"EAP-TLS with certificate"
|
"EAP-TTLS with username/password",
|
||||||
],
|
"EAP-TLS with certificate"
|
||||||
"eapMap": {
|
],
|
||||||
"EAP-TTLS with username/password": [
|
"eapMap": {
|
||||||
"Credential Type:username/password",
|
"EAP-TTLS with username/password": [
|
||||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
"Credential Type:username/password",
|
||||||
],
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
"EAP-TLS with certificate": [
|
],
|
||||||
"Credential Type:Certificate"
|
"EAP-TLS with certificate": [
|
||||||
]
|
"Credential Type:Certificate"
|
||||||
}
|
]
|
||||||
}
|
}
|
||||||
],
|
}
|
||||||
"osuIconList": [
|
],
|
||||||
{
|
"osuIconList": [
|
||||||
"model_type": "PasspointOsuIcon",
|
{
|
||||||
"iconWidth": 32,
|
"model_type": "PasspointOsuIcon",
|
||||||
"iconHeight": 32,
|
"iconWidth": 32,
|
||||||
"languageCode": "eng",
|
"iconHeight": 32,
|
||||||
"iconLocale": "en_CA",
|
"languageCode": "eng",
|
||||||
"iconName": "icon32eng",
|
"iconLocale": "en_CA",
|
||||||
"filePath": "/tmp/icon32eng.png",
|
"iconName": "icon32eng",
|
||||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
"filePath": "/tmp/icon32eng.png",
|
||||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
},
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
{
|
},
|
||||||
"model_type": "PasspointOsuIcon",
|
{
|
||||||
"iconWidth": 32,
|
"model_type": "PasspointOsuIcon",
|
||||||
"iconHeight": 32,
|
"iconWidth": 32,
|
||||||
"languageCode": "fra",
|
"iconHeight": 32,
|
||||||
"iconLocale": "fr_CA",
|
"languageCode": "fra",
|
||||||
"iconName": "icon32fra",
|
"iconLocale": "fr_CA",
|
||||||
"filePath": "/tmp/icon32fra.png",
|
"iconName": "icon32fra",
|
||||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
"filePath": "/tmp/icon32fra.png",
|
||||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
},
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
{
|
},
|
||||||
"model_type": "PasspointOsuIcon",
|
{
|
||||||
"iconWidth": 32,
|
"model_type": "PasspointOsuIcon",
|
||||||
"iconHeight": 32,
|
"iconWidth": 32,
|
||||||
"languageCode": "eng",
|
"iconHeight": 32,
|
||||||
"iconLocale": "en_US",
|
"languageCode": "eng",
|
||||||
"iconName": "icon32usa",
|
"iconLocale": "en_US",
|
||||||
"filePath": "/tmp/icon32usa.png",
|
"iconName": "icon32usa",
|
||||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
"filePath": "/tmp/icon32usa.png",
|
||||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
}
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
],
|
}
|
||||||
"osuServerUri": "https://example.com/osu/rogers",
|
],
|
||||||
"osuFriendlyName": [
|
"osuServerUri": "https://example.com/osu/rogers",
|
||||||
{
|
"osuFriendlyName": [
|
||||||
"model_type": "PasspointDuple",
|
{
|
||||||
"locale": "eng",
|
"model_type": "PasspointDuple",
|
||||||
"dupleIso3Language": "eng",
|
"locale": "en_CA",
|
||||||
"dupleName": "Example provider rogers",
|
"dupleIso3Language": "eng",
|
||||||
"defaultDupleSeparator": ":",
|
"dupleName": "Example provider rogers",
|
||||||
"asDuple": "eng:Example provider rogers"
|
"defaultDupleSeparator": ":",
|
||||||
},
|
"asDuple": "eng:Example provider rogers"
|
||||||
{
|
},
|
||||||
"model_type": "PasspointDuple",
|
{
|
||||||
"locale": "fra",
|
"model_type": "PasspointDuple",
|
||||||
"dupleIso3Language": "fra",
|
"locale": "fr_CA",
|
||||||
"dupleName": "Exemple de fournisseur rogers",
|
"dupleIso3Language": "fra",
|
||||||
"defaultDupleSeparator": ":",
|
"dupleName": "Exemple de fournisseur rogers",
|
||||||
"asDuple": "fra:Exemple de fournisseur rogers"
|
"defaultDupleSeparator": ":",
|
||||||
}
|
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||||
],
|
}
|
||||||
"osuNaiStandalone": "anonymous@rogers.com",
|
],
|
||||||
"osuNaiShared": "anonymous@rogers.com",
|
"osuNaiStandalone": "anonymous@rogers.com",
|
||||||
"osuMethodList": [
|
"osuNaiShared": "anonymous@rogers.com",
|
||||||
1,
|
"osuMethodList": [
|
||||||
0
|
1,
|
||||||
],
|
0
|
||||||
"osuServiceDescription": [
|
],
|
||||||
{
|
"osuServiceDescription": [
|
||||||
"model_type": "PasspointDuple",
|
{
|
||||||
"locale": "eng",
|
"model_type": "PasspointDuple",
|
||||||
"dupleIso3Language": "eng",
|
"locale": "en_CA",
|
||||||
"dupleName": "Example services rogers",
|
"dupleIso3Language": "eng",
|
||||||
"defaultDupleSeparator": ":",
|
"dupleName": "Example services rogers",
|
||||||
"asDuple": "eng:Example services rogers"
|
"defaultDupleSeparator": ":",
|
||||||
},
|
"asDuple": "eng:Example services rogers"
|
||||||
{
|
},
|
||||||
"model_type": "PasspointDuple",
|
{
|
||||||
"locale": "fra",
|
"model_type": "PasspointDuple",
|
||||||
"dupleIso3Language": "fra",
|
"locale": "fr_CA",
|
||||||
"dupleName": "Exemples de services rogers",
|
"dupleIso3Language": "fra",
|
||||||
"defaultDupleSeparator": ":",
|
"dupleName": "Exemples de services rogers",
|
||||||
"asDuple": "fra:Exemples de services rogers"
|
"defaultDupleSeparator": ":",
|
||||||
}
|
"asDuple": "fra:Exemples de services rogers"
|
||||||
],
|
}
|
||||||
"roamingOi": [
|
],
|
||||||
"BAA2D00100",
|
"roamingOi": [
|
||||||
"BAA2D00000"
|
1,
|
||||||
],
|
2,
|
||||||
"profileType": "passpoint_osu_id_provider"
|
3,
|
||||||
},
|
4
|
||||||
"createdTimestamp": 1611264539070,
|
],
|
||||||
"lastModifiedTimestamp": 1611264539070,
|
"profileType": "passpoint_osu_id_provider"
|
||||||
"childProfileIds": []
|
},
|
||||||
},
|
"createdTimestamp": 1606778370345,
|
||||||
{
|
"lastModifiedTimestamp": 1606778370345,
|
||||||
"model_type": "Profile",
|
"childProfileIds": [
|
||||||
"id": 36,
|
]
|
||||||
"customerId": 2,
|
},
|
||||||
"profileType": "passpoint_osu_id_provider",
|
{
|
||||||
"name": "provider2-profile-2021-01-21T21:28:59.118Z",
|
"model_type": "Profile",
|
||||||
"details": {
|
"id": 20,
|
||||||
"model_type": "PasspointOsuProviderProfile",
|
"customerId": 2,
|
||||||
"mccMncList": [
|
"profileType": "passpoint_osu_id_provider",
|
||||||
{
|
"name": "TipWlan-Passpoint-OSU-Provider-2",
|
||||||
"model_type": "PasspointMccMnc",
|
"details": {
|
||||||
"mcc": 302,
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
"mnc": 220,
|
"domainName": "telus.com",
|
||||||
"iso": "ca",
|
"mccMncList": [
|
||||||
"country": "Canada",
|
{
|
||||||
"countryCode": 1,
|
"model_type": "PasspointMccMnc",
|
||||||
"network": "Telus Mobility",
|
"mcc": 302,
|
||||||
"mccMncPairing": "302,220"
|
"mnc": 220,
|
||||||
}
|
"iso": "ca",
|
||||||
],
|
"country": "Canada",
|
||||||
"naiRealmList": [
|
"countryCode": 1,
|
||||||
{
|
"network": "Telus Mobility",
|
||||||
"model_type": "PasspointNaiRealmInformation",
|
"mccMncPairing": "302,220"
|
||||||
"naiRealms": [
|
}
|
||||||
"telus.com"
|
],
|
||||||
],
|
"naiRealmList": [
|
||||||
"encoding": 0,
|
{
|
||||||
"eapMethods": [
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
"EAP-TTLS with username/password",
|
"naiRealms": [
|
||||||
"EAP-TLS with certificate"
|
"telus.com"
|
||||||
],
|
],
|
||||||
"eapMap": {
|
"encoding": 0,
|
||||||
"EAP-TTLS with username/password": [
|
"eapMethods": [
|
||||||
"Credential Type:username/password",
|
"EAP-TTLS with username/password",
|
||||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
"EAP-TLS with certificate"
|
||||||
],
|
],
|
||||||
"EAP-TLS with certificate": [
|
"eapMap": {
|
||||||
"Credential Type:Certificate"
|
"EAP-TTLS with username/password": [
|
||||||
]
|
"Credential Type:username/password",
|
||||||
}
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
}
|
],
|
||||||
],
|
"EAP-TLS with certificate": [
|
||||||
"osuIconList": [
|
"Credential Type:Certificate"
|
||||||
{
|
]
|
||||||
"model_type": "PasspointOsuIcon",
|
}
|
||||||
"iconWidth": 32,
|
}
|
||||||
"iconHeight": 32,
|
],
|
||||||
"languageCode": "eng",
|
"osuIconList": [
|
||||||
"iconLocale": "en_CA",
|
{
|
||||||
"iconName": "icon32eng",
|
"model_type": "PasspointOsuIcon",
|
||||||
"filePath": "/tmp/icon32eng.png",
|
"iconWidth": 32,
|
||||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
"iconHeight": 32,
|
||||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
"languageCode": "eng",
|
||||||
},
|
"iconLocale": "en_CA",
|
||||||
{
|
"iconName": "icon32eng",
|
||||||
"model_type": "PasspointOsuIcon",
|
"filePath": "/tmp/icon32eng.png",
|
||||||
"iconWidth": 32,
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
"iconHeight": 32,
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
"languageCode": "fra",
|
},
|
||||||
"iconLocale": "fr_CA",
|
{
|
||||||
"iconName": "icon32fra",
|
"model_type": "PasspointOsuIcon",
|
||||||
"filePath": "/tmp/icon32fra.png",
|
"iconWidth": 32,
|
||||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
"iconHeight": 32,
|
||||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
"languageCode": "fra",
|
||||||
},
|
"iconLocale": "fr_CA",
|
||||||
{
|
"iconName": "icon32fra",
|
||||||
"model_type": "PasspointOsuIcon",
|
"filePath": "/tmp/icon32fra.png",
|
||||||
"iconWidth": 32,
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
"iconHeight": 32,
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
"languageCode": "eng",
|
},
|
||||||
"iconLocale": "en_US",
|
{
|
||||||
"iconName": "icon32usa",
|
"model_type": "PasspointOsuIcon",
|
||||||
"filePath": "/tmp/icon32usa.png",
|
"iconWidth": 32,
|
||||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
"iconHeight": 32,
|
||||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
"languageCode": "eng",
|
||||||
}
|
"iconLocale": "en_US",
|
||||||
],
|
"iconName": "icon32usa",
|
||||||
"osuServerUri": "https://example.com/osu/telus",
|
"filePath": "/tmp/icon32usa.png",
|
||||||
"osuFriendlyName": [
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
{
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
"model_type": "PasspointDuple",
|
}
|
||||||
"locale": "eng",
|
],
|
||||||
"dupleIso3Language": "eng",
|
"osuServerUri": "https://example.com/osu/telus",
|
||||||
"dupleName": "Example provider telus",
|
"osuFriendlyName": [
|
||||||
"defaultDupleSeparator": ":",
|
{
|
||||||
"asDuple": "eng:Example provider telus"
|
"model_type": "PasspointDuple",
|
||||||
},
|
"locale": "en_CA",
|
||||||
{
|
"dupleIso3Language": "eng",
|
||||||
"model_type": "PasspointDuple",
|
"dupleName": "Example provider telus",
|
||||||
"locale": "fra",
|
"defaultDupleSeparator": ":",
|
||||||
"dupleIso3Language": "fra",
|
"asDuple": "eng:Example provider telus"
|
||||||
"dupleName": "Exemple de fournisseur telus",
|
},
|
||||||
"defaultDupleSeparator": ":",
|
{
|
||||||
"asDuple": "fra:Exemple de fournisseur telus"
|
"model_type": "PasspointDuple",
|
||||||
}
|
"locale": "fr_CA",
|
||||||
],
|
"dupleIso3Language": "fra",
|
||||||
"osuNaiStandalone": "anonymous@telus.com",
|
"dupleName": "Exemple de fournisseur telus",
|
||||||
"osuNaiShared": "anonymous@telus.com",
|
"defaultDupleSeparator": ":",
|
||||||
"osuMethodList": [
|
"asDuple": "fra:Exemple de fournisseur telus"
|
||||||
1,
|
}
|
||||||
0
|
],
|
||||||
],
|
"osuNaiStandalone": "anonymous@telus.com",
|
||||||
"osuServiceDescription": [
|
"osuNaiShared": "anonymous@telus.com",
|
||||||
{
|
"osuMethodList": [
|
||||||
"model_type": "PasspointDuple",
|
1,
|
||||||
"locale": "eng",
|
0
|
||||||
"dupleIso3Language": "eng",
|
],
|
||||||
"dupleName": "Example services telus",
|
"osuServiceDescription": [
|
||||||
"defaultDupleSeparator": ":",
|
{
|
||||||
"asDuple": "eng:Example services telus"
|
"model_type": "PasspointDuple",
|
||||||
},
|
"locale": "en_CA",
|
||||||
{
|
"dupleIso3Language": "eng",
|
||||||
"model_type": "PasspointDuple",
|
"dupleName": "Example services telus",
|
||||||
"locale": "fra",
|
"defaultDupleSeparator": ":",
|
||||||
"dupleIso3Language": "fra",
|
"asDuple": "eng:Example services telus"
|
||||||
"dupleName": "Exemples de services telus",
|
},
|
||||||
"defaultDupleSeparator": ":",
|
{
|
||||||
"asDuple": "fra:Exemples de services telus"
|
"model_type": "PasspointDuple",
|
||||||
}
|
"locale": "fr_CA",
|
||||||
],
|
"dupleIso3Language": "fra",
|
||||||
"roamingOi": [
|
"dupleName": "Exemples de services telus",
|
||||||
"004096",
|
"defaultDupleSeparator": ":",
|
||||||
"005014",
|
"asDuple": "fra:Exemples de services telus"
|
||||||
"F4F5E8F5F4"
|
}
|
||||||
],
|
],
|
||||||
"profileType": "passpoint_osu_id_provider"
|
"roamingOi": [
|
||||||
},
|
1,
|
||||||
"createdTimestamp": 1611264539131,
|
2,
|
||||||
"lastModifiedTimestamp": 1611264539131,
|
3,
|
||||||
"childProfileIds": []
|
4
|
||||||
}
|
],
|
||||||
]
|
"profileType": "passpoint_osu_id_provider"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1606778370351,
|
||||||
|
"lastModifiedTimestamp": 1606778370351,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|||||||
@@ -1,41 +1,37 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 34,
|
"id": 17,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "passpoint_operator",
|
"profileType": "passpoint_operator",
|
||||||
"name": "operator-profile-2021-01-21T21:28:58.994Z",
|
"name": "TipWlan-Passpoint-Operator",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "PasspointOperatorProfile",
|
"model_type": "PasspointOperatorProfile",
|
||||||
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||||
"x509CertificateLocation": "/etc/ca.pem",
|
"x509CertificateLocation": "/etc/ca.pem",
|
||||||
"operatorFriendlyName": [
|
"operatorFriendlyName": [
|
||||||
{
|
{
|
||||||
"model_type": "PasspointDuple",
|
"model_type": "PasspointDuple",
|
||||||
"locale": "fra",
|
"locale": "en_CA",
|
||||||
"dupleIso3Language": "fra",
|
"dupleIso3Language": "eng",
|
||||||
"dupleName": "Nom de l'opérateur convivial par défaut",
|
"dupleName": "Default friendly passpoint_operator name",
|
||||||
"defaultDupleSeparator": ":",
|
"defaultDupleSeparator": ":",
|
||||||
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model_type": "PasspointDuple",
|
"model_type": "PasspointDuple",
|
||||||
"locale": "eng",
|
"locale": "fr_CA",
|
||||||
"dupleIso3Language": "eng",
|
"dupleIso3Language": "fra",
|
||||||
"dupleName": "Default friendly passpoint_operator name",
|
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||||
"defaultDupleSeparator": ":",
|
"defaultDupleSeparator": ":",
|
||||||
"asDuple": "eng:Default friendly passpoint_operator name"
|
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"domainNameList": [
|
"profileType": "passpoint_operator"
|
||||||
"bell.ca",
|
},
|
||||||
"telus.com",
|
"createdTimestamp": 1606778369945,
|
||||||
"rogers.com"
|
"lastModifiedTimestamp": 1606778369945,
|
||||||
],
|
"childProfileIds": [
|
||||||
"profileType": "passpoint_operator"
|
]
|
||||||
},
|
}
|
||||||
"createdTimestamp": 1611264539004,
|
]
|
||||||
"lastModifiedTimestamp": 1611264539004,
|
|
||||||
"childProfileIds": []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|||||||
@@ -1,24 +1,34 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "radius",
|
"profileType": "radius",
|
||||||
"name": "Radius-Profile",
|
"name": "Radius-Profile",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "RadiusProfile",
|
"model_type": "RadiusProfile",
|
||||||
"primaryRadiusAuthServer": {
|
"subnetConfiguration": null,
|
||||||
"model_type": "RadiusServer",
|
"serviceRegionMap": {
|
||||||
"ipAddress": "192.168.0.1",
|
"Ottawa": {
|
||||||
"secret": "testing123",
|
"model_type": "RadiusServiceRegion",
|
||||||
"port": 1812,
|
"serverMap": {
|
||||||
"timeout": null
|
"Radius-Profile": [
|
||||||
},
|
{
|
||||||
"profileType": "radius"
|
"model_type": "RadiusServer",
|
||||||
},
|
"ipAddress": "192.168.0.1",
|
||||||
"createdTimestamp": 1611262628767,
|
"secret": "testing123",
|
||||||
"lastModifiedTimestamp": 1611262628767,
|
"authPort": 1812,
|
||||||
"childProfileIds": [
|
"timeout": null
|
||||||
]
|
}
|
||||||
}
|
]
|
||||||
]
|
},
|
||||||
|
"regionName": "Ottawa"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profileType": "radius"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1601961451668,
|
||||||
|
"lastModifiedTimestamp": 1601961451668,
|
||||||
|
"childProfileIds": []
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 4,
|
"id": 11,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "rf",
|
"profileType": "rf",
|
||||||
"name": "TipWlan-rf",
|
"name": "TipWlan-rf",
|
||||||
@@ -198,7 +198,7 @@
|
|||||||
},
|
},
|
||||||
"profileType": "rf"
|
"profileType": "rf"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1612285248650,
|
"createdTimestamp": 1606778369933,
|
||||||
"lastModifiedTimestamp": 1612285248650,
|
"lastModifiedTimestamp": 1606778369933,
|
||||||
"childProfileIds": []
|
"childProfileIds": []
|
||||||
}
|
}
|
||||||
@@ -1,75 +1,203 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 2,
|
"id": 5,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "ssid",
|
"profileType": "ssid",
|
||||||
"name": "TipWlan-cloud-3-radios",
|
"name": "TipWlan-cloud-3-radios",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "SsidConfiguration",
|
"model_type": "SsidConfiguration",
|
||||||
"ssid": "TipWlan-cloud-3-radios",
|
"ssid": "TipWlan-cloud-3-radios",
|
||||||
"appliedRadios": [
|
"appliedRadios": [
|
||||||
"is5GHzU",
|
"is5GHzL",
|
||||||
"is2dot4GHz",
|
"is2dot4GHz",
|
||||||
"is5GHzL"
|
"is5GHzU"
|
||||||
],
|
],
|
||||||
"ssidAdminState": "enabled",
|
"ssidAdminState": "enabled",
|
||||||
"secureMode": "wpa2OnlyPSK",
|
"secureMode": "wpa2OnlyPSK",
|
||||||
"vlanId": 1,
|
"vlanId": 1,
|
||||||
"keyStr": "openwifi",
|
"keyStr": "openwifi",
|
||||||
"broadcastSsid": "enabled",
|
"broadcastSsid": "enabled",
|
||||||
"keyRefresh": 0,
|
"keyRefresh": 0,
|
||||||
"noLocalSubnets": false,
|
"noLocalSubnets": false,
|
||||||
"radiusServiceId": 0,
|
"radiusServiceName": null,
|
||||||
"radiusAcountingServiceInterval": 60,
|
"radiusAccountingServiceName": null,
|
||||||
"captivePortalId": null,
|
"radiusAcountingServiceInterval": null,
|
||||||
"bandwidthLimitDown": 0,
|
"captivePortalId": null,
|
||||||
"bandwidthLimitUp": 0,
|
"bandwidthLimitDown": 0,
|
||||||
"clientBandwidthLimitDown": 0,
|
"bandwidthLimitUp": 0,
|
||||||
"clientBandwidthLimitUp": 0,
|
"clientBandwidthLimitDown": 0,
|
||||||
"videoTrafficOnly": false,
|
"clientBandwidthLimitUp": 0,
|
||||||
"radioBasedConfigs": {
|
"videoTrafficOnly": false,
|
||||||
"is5GHzU": {
|
"radioBasedConfigs": {
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is5GHzL": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
},
|
"enable80211v": null
|
||||||
"is2dot4GHz": {
|
},
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is2dot4GHz": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
},
|
"enable80211v": null
|
||||||
"is5GHz": {
|
},
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is5GHz": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
},
|
"enable80211v": null
|
||||||
"is5GHzL": {
|
},
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is5GHzU": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
}
|
"enable80211v": null
|
||||||
},
|
}
|
||||||
"bonjourGatewayProfileId": null,
|
},
|
||||||
"enable80211w": null,
|
"bonjourGatewayProfileId": null,
|
||||||
"wepConfig": null,
|
"enable80211w": null,
|
||||||
"forwardMode": "BRIDGE",
|
"wepConfig": null,
|
||||||
"profileType": "ssid",
|
"forwardMode": "BRIDGE",
|
||||||
"radiusClientConfiguration": {
|
"profileType": "ssid"
|
||||||
"model_type": "RadiusNasConfiguration",
|
},
|
||||||
"nasClientId": "DEFAULT",
|
"createdTimestamp": 1606778369598,
|
||||||
"nasClientIp": "WAN_IP",
|
"lastModifiedTimestamp": 1606778369598,
|
||||||
"userDefinedNasId": null,
|
"childProfileIds": [
|
||||||
"userDefinedNasIp": null,
|
]
|
||||||
"operatorId": null
|
},
|
||||||
}
|
{
|
||||||
},
|
"model_type": "Profile",
|
||||||
"createdTimestamp": 1612285248638,
|
"id": 15,
|
||||||
"lastModifiedTimestamp": 1612285248638,
|
"customerId": 2,
|
||||||
"childProfileIds": []
|
"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": {
|
||||||
|
"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": 1606778369943,
|
||||||
|
"lastModifiedTimestamp": 1606778370811,
|
||||||
|
"childProfileIds": [
|
||||||
|
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": 33,
|
"id": 18,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "passpoint_venue",
|
"profileType": "passpoint_venue",
|
||||||
"name": "venue-profile-2021-01-21T21:28:58.934Z",
|
"name": "TipWlan-Passpoint-Venue",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "PasspointVenueProfile",
|
"model_type": "PasspointVenueProfile",
|
||||||
"venueNameSet": [
|
"venueNameSet": [
|
||||||
{
|
{
|
||||||
"model_type": "PasspointVenueName",
|
"model_type": "PasspointVenueName",
|
||||||
"locale": "fra",
|
"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": "PasspointVenueName",
|
"model_type": "PasspointVenueName",
|
||||||
"locale": "eng",
|
"locale": "en_CA",
|
||||||
"dupleIso3Language": "eng",
|
"dupleIso3Language": "eng",
|
||||||
"dupleName": "Example passpoint_venue",
|
"dupleName": "Example passpoint_venue",
|
||||||
"defaultDupleSeparator": ":",
|
"defaultDupleSeparator": ":",
|
||||||
"venueUrl": "http://www.example.com/info-eng",
|
"venueUrl": "http://www.example.com/info-eng",
|
||||||
"asDuple": "eng:Example passpoint_venue"
|
"asDuple": "eng:Example passpoint_venue"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"venueTypeAssignment": {
|
"venueTypeAssignment": {
|
||||||
"model_type": "PasspointVenueTypeAssignment",
|
"model_type": "PasspointVenueTypeAssignment",
|
||||||
"venueDescription": "Research and Development Facility",
|
"venueDescription": "Research and Development Facility",
|
||||||
"venueGroupId": 2,
|
"venueGroupId": 2,
|
||||||
"venueTypeId": 8
|
"venueTypeId": 8
|
||||||
},
|
},
|
||||||
"profileType": "passpoint_venue"
|
"profileType": "passpoint_venue"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1611264538947,
|
"createdTimestamp": 1606778369950,
|
||||||
"lastModifiedTimestamp": 1611264538947,
|
"lastModifiedTimestamp": 1606778369950,
|
||||||
"childProfileIds": []
|
"childProfileIds": [
|
||||||
}
|
]
|
||||||
]
|
}
|
||||||
|
]
|
||||||
|
|||||||
@@ -174,9 +174,7 @@ RESTAPI_PROPS="$RESTAPI_PROPS -Dserver.port=4043"
|
|||||||
|
|
||||||
SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED"
|
SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED"
|
||||||
|
|
||||||
JVM_EXTRA_PROPS=" ${JVM_MEM_OPTIONS:- } "
|
export ALL_PROPS="$PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS "
|
||||||
|
|
||||||
export ALL_PROPS="$JVM_EXTRA_PROPS $PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS "
|
|
||||||
|
|
||||||
echo Starting opensync wifi controller
|
echo Starting opensync wifi controller
|
||||||
|
|
||||||
|
|||||||
@@ -1,472 +1,221 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Equipment",
|
"model_type": "Equipment",
|
||||||
"id": 1,
|
"id": 51,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileId": 8,
|
"profileId": 12,
|
||||||
"locationId": 8,
|
"locationId": 8,
|
||||||
|
"equipmentType": "AP",
|
||||||
|
"inventoryId": "Test_Client_21P10C68818122",
|
||||||
|
"name": "Test_Client_21P10C68818122",
|
||||||
|
"details": {
|
||||||
|
"model_type": "ApElementConfiguration",
|
||||||
|
"equipmentModel": "EA8300-CA",
|
||||||
|
"elementConfigVersion": "AP-V1",
|
||||||
"equipmentType": "AP",
|
"equipmentType": "AP",
|
||||||
"inventoryId": "Open_AP_21P10C68818122",
|
"deviceMode": "standaloneAP",
|
||||||
"name": "Open_AP_21P10C68818122",
|
"gettingIP": "dhcp",
|
||||||
"details": {
|
"staticIP": null,
|
||||||
"model_type": "ApElementConfiguration",
|
"staticIpMaskCidr": null,
|
||||||
"equipmentModel": "EA8300-CA",
|
"staticIpGw": null,
|
||||||
"elementConfigVersion": "AP-V1",
|
"gettingDNS": "dhcp",
|
||||||
"equipmentType": "AP",
|
"staticDnsIp1": null,
|
||||||
"deviceMode": "standaloneAP",
|
"staticDnsIp2": null,
|
||||||
"gettingIP": "dhcp",
|
"peerInfoList": [],
|
||||||
"staticIP": null,
|
"deviceName": "Default Device Name",
|
||||||
"staticIpMaskCidr": null,
|
"locationData": null,
|
||||||
"staticIpGw": null,
|
"locallyConfiguredMgmtVlan": 0,
|
||||||
"gettingDNS": "dhcp",
|
"locallyConfigured": false,
|
||||||
"staticDnsIp1": null,
|
"deploymentType": "CEILING",
|
||||||
"staticDnsIp2": null,
|
"syntheticClientEnabled": null,
|
||||||
"peerInfoList": [],
|
"frameReportThrottleEnabled": true,
|
||||||
"deviceName": "Open_AP_21P10C68818122",
|
"antennaType": "OMNI",
|
||||||
"locationData": null,
|
"costSavingEventsEnabled": true,
|
||||||
"locallyConfiguredMgmtVlan": 0,
|
"forwardMode": "BRIDGE",
|
||||||
"locallyConfigured": false,
|
"radioMap": {
|
||||||
"deploymentType": "CEILING",
|
"is2dot4GHz": {
|
||||||
"syntheticClientEnabled": null,
|
"model_type": "ElementRadioConfiguration",
|
||||||
"frameReportThrottleEnabled": true,
|
"radioType": "is2dot4GHz",
|
||||||
"antennaType": "OMNI",
|
"channelNumber": 6,
|
||||||
"costSavingEventsEnabled": true,
|
"manualChannelNumber": 6,
|
||||||
"forwardMode": "BRIDGE",
|
"backupChannelNumber": 11,
|
||||||
"radioMap": {
|
"bannedChannels": [],
|
||||||
"is5GHzU": {
|
"allowedChannels": [],
|
||||||
"model_type": "ElementRadioConfiguration",
|
"rxCellSizeDb": {
|
||||||
"radioType": "is5GHzU",
|
"model_type": "SourceSelectionValue",
|
||||||
"channelNumber": 149,
|
"source": "auto",
|
||||||
"manualChannelNumber": 149,
|
"value": -90
|
||||||
"backupChannelNumber": 157,
|
|
||||||
"manualBackupChannelNumber": 157,
|
|
||||||
"rxCellSizeDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"probeResponseThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"clientDisconnectThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"eirpTxPower": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": 18
|
|
||||||
},
|
|
||||||
"perimeterDetectionEnabled": true,
|
|
||||||
"bestAPSteerType": "both",
|
|
||||||
"deauthAttackDetection": null,
|
|
||||||
"allowedChannelsPowerLevels": [
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 161,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 100,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 132,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 165,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 104,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 136,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 108,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 140,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 112,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 144,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 116,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 149,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 153,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 157,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"is2dot4GHz": {
|
|
||||||
"model_type": "ElementRadioConfiguration",
|
|
||||||
"radioType": "is2dot4GHz",
|
|
||||||
"channelNumber": 6,
|
|
||||||
"manualChannelNumber": 6,
|
|
||||||
"backupChannelNumber": 11,
|
|
||||||
"manualBackupChannelNumber": 11,
|
|
||||||
"rxCellSizeDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"probeResponseThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"clientDisconnectThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"eirpTxPower": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": 18
|
|
||||||
},
|
|
||||||
"perimeterDetectionEnabled": true,
|
|
||||||
"bestAPSteerType": "both",
|
|
||||||
"deauthAttackDetection": null,
|
|
||||||
"allowedChannelsPowerLevels": [
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 1,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 2,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 3,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 4,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 5,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 6,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 7,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 8,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 9,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 10,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 11,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"is5GHzL": {
|
|
||||||
"model_type": "ElementRadioConfiguration",
|
|
||||||
"radioType": "is5GHzL",
|
|
||||||
"channelNumber": 36,
|
|
||||||
"manualChannelNumber": 36,
|
|
||||||
"backupChannelNumber": 44,
|
|
||||||
"manualBackupChannelNumber": 44,
|
|
||||||
"rxCellSizeDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"probeResponseThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"clientDisconnectThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"eirpTxPower": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": 18
|
|
||||||
},
|
|
||||||
"perimeterDetectionEnabled": true,
|
|
||||||
"bestAPSteerType": "both",
|
|
||||||
"deauthAttackDetection": null,
|
|
||||||
"allowedChannelsPowerLevels": [
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 52,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 36,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 56,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 40,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 60,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 44,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 64,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 48,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"advancedRadioMap": {
|
"probeResponseThresholdDb": {
|
||||||
"is2dot4GHz": {
|
"model_type": "SourceSelectionValue",
|
||||||
"model_type": "RadioConfiguration",
|
"source": "auto",
|
||||||
"radioType": "is2dot4GHz",
|
"value": -90
|
||||||
"radioAdminState": "enabled",
|
},
|
||||||
"fragmentationThresholdBytes": 2346,
|
"clientDisconnectThresholdDb": {
|
||||||
"uapsdState": "enabled",
|
"model_type": "SourceSelectionValue",
|
||||||
"stationIsolation": "disabled",
|
"source": "auto",
|
||||||
"multicastRate": {
|
"value": -90
|
||||||
"model_type": "SourceSelectionMulticast",
|
},
|
||||||
"source": "profile",
|
"eirpTxPower": {
|
||||||
"value": "auto"
|
"model_type": "SourceSelectionValue",
|
||||||
},
|
"source": "auto",
|
||||||
"managementRate": {
|
"value": 32
|
||||||
"model_type": "SourceSelectionManagement",
|
},
|
||||||
"source": "profile",
|
"perimeterDetectionEnabled": true,
|
||||||
"value": "auto"
|
"bestAPSteerType": "both",
|
||||||
},
|
"deauthAttackDetection": null,
|
||||||
"bestApSettings": {
|
"allowedChannelsPowerLevels": [],
|
||||||
"model_type": "SourceSelectionSteering",
|
"activeChannel": 6
|
||||||
"source": "manual",
|
},
|
||||||
"value": {
|
"is5GHzU": {
|
||||||
"model_type": "RadioBestApSettings",
|
"model_type": "ElementRadioConfiguration",
|
||||||
"mlComputed": true,
|
"radioType": "is5GHzU",
|
||||||
"dropInSnrPercentage": 20,
|
"channelNumber": 149,
|
||||||
"minLoadFactor": 50
|
"manualChannelNumber": 149,
|
||||||
}
|
"backupChannelNumber": 154,
|
||||||
},
|
"bannedChannels": [],
|
||||||
"legacyBSSRate": "enabled",
|
"allowedChannels": [],
|
||||||
"dtimPeriod": 2,
|
"rxCellSizeDb": {
|
||||||
"deauthAttackDetection": null
|
"model_type": "SourceSelectionValue",
|
||||||
},
|
"source": "auto",
|
||||||
"is5GHzU": {
|
"value": -90
|
||||||
"model_type": "RadioConfiguration",
|
},
|
||||||
"radioType": "is5GHzU",
|
"probeResponseThresholdDb": {
|
||||||
"radioAdminState": "enabled",
|
"model_type": "SourceSelectionValue",
|
||||||
"fragmentationThresholdBytes": 2346,
|
"source": "auto",
|
||||||
"uapsdState": "enabled",
|
"value": -90
|
||||||
"stationIsolation": "disabled",
|
},
|
||||||
"multicastRate": {
|
"clientDisconnectThresholdDb": {
|
||||||
"model_type": "SourceSelectionMulticast",
|
"model_type": "SourceSelectionValue",
|
||||||
"source": "profile",
|
"source": "auto",
|
||||||
"value": "auto"
|
"value": -90
|
||||||
},
|
},
|
||||||
"managementRate": {
|
"eirpTxPower": {
|
||||||
"model_type": "SourceSelectionManagement",
|
"model_type": "SourceSelectionValue",
|
||||||
"source": "profile",
|
"source": "auto",
|
||||||
"value": "auto"
|
"value": 32
|
||||||
},
|
},
|
||||||
"bestApSettings": {
|
"perimeterDetectionEnabled": true,
|
||||||
"model_type": "SourceSelectionSteering",
|
"bestAPSteerType": "both",
|
||||||
"source": "manual",
|
"deauthAttackDetection": null,
|
||||||
"value": {
|
"allowedChannelsPowerLevels": [],
|
||||||
"model_type": "RadioBestApSettings",
|
"activeChannel": 149
|
||||||
"mlComputed": true,
|
},
|
||||||
"dropInSnrPercentage": 30,
|
"is5GHzL": {
|
||||||
"minLoadFactor": 40
|
"model_type": "ElementRadioConfiguration",
|
||||||
}
|
"radioType": "is5GHzL",
|
||||||
},
|
"channelNumber": 36,
|
||||||
"legacyBSSRate": "enabled",
|
"manualChannelNumber": 36,
|
||||||
"dtimPeriod": 2,
|
"backupChannelNumber": 44,
|
||||||
"deauthAttackDetection": null
|
"bannedChannels": [],
|
||||||
},
|
"allowedChannels": [],
|
||||||
"is5GHzL": {
|
"rxCellSizeDb": {
|
||||||
"model_type": "RadioConfiguration",
|
"model_type": "SourceSelectionValue",
|
||||||
"radioType": "is5GHzL",
|
"source": "auto",
|
||||||
"radioAdminState": "enabled",
|
"value": -90
|
||||||
"fragmentationThresholdBytes": 2346,
|
},
|
||||||
"uapsdState": "enabled",
|
"probeResponseThresholdDb": {
|
||||||
"stationIsolation": "disabled",
|
"model_type": "SourceSelectionValue",
|
||||||
"multicastRate": {
|
"source": "auto",
|
||||||
"model_type": "SourceSelectionMulticast",
|
"value": -90
|
||||||
"source": "profile",
|
},
|
||||||
"value": "auto"
|
"clientDisconnectThresholdDb": {
|
||||||
},
|
"model_type": "SourceSelectionValue",
|
||||||
"managementRate": {
|
"source": "auto",
|
||||||
"model_type": "SourceSelectionManagement",
|
"value": -90
|
||||||
"source": "profile",
|
},
|
||||||
"value": "auto"
|
"eirpTxPower": {
|
||||||
},
|
"model_type": "SourceSelectionValue",
|
||||||
"bestApSettings": {
|
"source": "auto",
|
||||||
"model_type": "SourceSelectionSteering",
|
"value": 32
|
||||||
"source": "manual",
|
},
|
||||||
"value": {
|
"perimeterDetectionEnabled": true,
|
||||||
"model_type": "RadioBestApSettings",
|
"bestAPSteerType": "both",
|
||||||
"mlComputed": true,
|
"deauthAttackDetection": null,
|
||||||
"dropInSnrPercentage": 30,
|
"allowedChannelsPowerLevels": [],
|
||||||
"minLoadFactor": 40
|
"activeChannel": 36
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"legacyBSSRate": "enabled",
|
|
||||||
"dtimPeriod": 2,
|
|
||||||
"deauthAttackDetection": null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"latitude": null,
|
"advancedRadioMap": {
|
||||||
"longitude": null,
|
"is2dot4GHz": {
|
||||||
"baseMacAddress": {
|
"model_type": "RadioConfiguration",
|
||||||
"model_type": "MacAddress",
|
"radioType": "is2dot4GHz",
|
||||||
"address": "JPWi7y5T",
|
"radioAdminState": "enabled",
|
||||||
"addressAsString": "24:f5:a2:ef:2e:53"
|
"fragmentationThresholdBytes": 2346,
|
||||||
},
|
"uapsdState": "enabled",
|
||||||
"serial": "21P10C68818122",
|
"stationIsolation": "disabled",
|
||||||
"createdTimestamp": 1612285288821,
|
"managementRate": {
|
||||||
"lastModifiedTimestamp": 1612285293922
|
"model_type": "SourceSelectionManagement",
|
||||||
}
|
"source": "auto",
|
||||||
|
"value": "auto"
|
||||||
|
},
|
||||||
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
|
"model_type": "RadioBestApSettings",
|
||||||
|
"mlComputed": true,
|
||||||
|
"dropInSnrPercentage": 30,
|
||||||
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"legacyBSSRate": "enabled",
|
||||||
|
"deauthAttackDetection": null
|
||||||
|
},
|
||||||
|
"is5GHzU": {
|
||||||
|
"model_type": "RadioConfiguration",
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"radioAdminState": "enabled",
|
||||||
|
"fragmentationThresholdBytes": 2346,
|
||||||
|
"uapsdState": "enabled",
|
||||||
|
"stationIsolation": "disabled",
|
||||||
|
"managementRate": {
|
||||||
|
"model_type": "SourceSelectionManagement",
|
||||||
|
"source": "auto",
|
||||||
|
"value": "auto"
|
||||||
|
},
|
||||||
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
|
"model_type": "RadioBestApSettings",
|
||||||
|
"mlComputed": true,
|
||||||
|
"dropInSnrPercentage": 30,
|
||||||
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"legacyBSSRate": "enabled",
|
||||||
|
"deauthAttackDetection": null
|
||||||
|
},
|
||||||
|
"is5GHzL": {
|
||||||
|
"model_type": "RadioConfiguration",
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"radioAdminState": "enabled",
|
||||||
|
"fragmentationThresholdBytes": 2346,
|
||||||
|
"uapsdState": "enabled",
|
||||||
|
"stationIsolation": "disabled",
|
||||||
|
"managementRate": {
|
||||||
|
"model_type": "SourceSelectionManagement",
|
||||||
|
"source": "auto",
|
||||||
|
"value": "auto"
|
||||||
|
},
|
||||||
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
|
"model_type": "RadioBestApSettings",
|
||||||
|
"mlComputed": true,
|
||||||
|
"dropInSnrPercentage": 30,
|
||||||
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"legacyBSSRate": "enabled",
|
||||||
|
"deauthAttackDetection": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"latitude": null,
|
||||||
|
"longitude": null,
|
||||||
|
"serial": "21P10C68818122",
|
||||||
|
"createdTimestamp": 1591653239821,
|
||||||
|
"lastModifiedTimestamp": 1591653241398
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,61 +1,60 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Location",
|
"model_type" : "Location",
|
||||||
"id": 8,
|
"id" : 8,
|
||||||
"parentId": 0,
|
"parentId" : 0,
|
||||||
"locationType": "SITE",
|
"locationType" : "SITE",
|
||||||
"customerId": 2,
|
"customerId" : 2,
|
||||||
"name": "Ottawa",
|
"name" : "Ottawa",
|
||||||
"details": {
|
"details" : {
|
||||||
"model_type": "LocationDetails",
|
"model_type" : "LocationDetails",
|
||||||
"countryCode": "CA",
|
"countryCode" : "ca",
|
||||||
"dailyActivityDetails": {
|
"maintenanceWindow" : null,
|
||||||
"SUNDAY": {
|
"rrmEnabled" : true,
|
||||||
"model_type": "LocationActivityDetails",
|
"dailyActivityDetails" : {
|
||||||
"busyTime": "13:30",
|
"SUNDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"MONDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"MONDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"TUESDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"TUESDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"WEDNESDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"WEDNESDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"THURSDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"THURSDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"FRIDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"FRIDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"SATURDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"SATURDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
}
|
"quietTime" : "3:30",
|
||||||
},
|
"timezone" : "US/Eastern"
|
||||||
"maintenanceWindow": null,
|
}
|
||||||
"rrmEnabled": true,
|
}
|
||||||
"timezone": "US/Eastern"
|
},
|
||||||
},
|
"createdTimestamp" : 1590607043540,
|
||||||
"createdTimestamp": 1612285243534,
|
"lastModifiedTimestamp" : 1590607043540
|
||||||
"lastModifiedTimestamp": 1612285243534
|
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 8,
|
"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",
|
||||||
@@ -37,22 +42,15 @@
|
|||||||
"bestAPSteerType": "both"
|
"bestAPSteerType": "both"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"greTunnelConfigurations": [
|
|
||||||
{
|
|
||||||
"model_type": "GreTunnelConfiguration",
|
|
||||||
"greTunnelName": "gre1",
|
|
||||||
"greRemoteInetAddr": "192.168.1.101",
|
|
||||||
"vlanIdsInGreTunnel": [
|
|
||||||
100
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"profileType": "equipment_ap"
|
"profileType": "equipment_ap"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1612285248925,
|
"createdTimestamp": 1606778369934,
|
||||||
"lastModifiedTimestamp": 1612285628377,
|
"lastModifiedTimestamp": 1606778443413,
|
||||||
"childProfileIds": [
|
"childProfileIds": [
|
||||||
2,
|
16,
|
||||||
4
|
5,
|
||||||
|
10,
|
||||||
|
11,
|
||||||
|
15
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,58 +1,135 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 5,
|
"id": 14,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "captive_portal",
|
"profileType": "captive_portal",
|
||||||
"name": "Captive-portal",
|
"name": "Captive-portal",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "CaptivePortalConfiguration",
|
"model_type": "CaptivePortalConfiguration",
|
||||||
"name": "Default",
|
"name": "Captive-portal",
|
||||||
"browserTitle": "Captive-portal",
|
"browserTitle": "Access the network as Guest",
|
||||||
"headerContent": "Captive Portal",
|
"headerContent": "Captive Portal",
|
||||||
"userAcceptancePolicy": "Please agree to the following terms for using this network:",
|
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||||
"successPageMarkdownText": "You are now authorized and connected to the network.",
|
"successPageMarkdownText": "Welcome to the network",
|
||||||
"redirectURL": "https://www.google.com",
|
"redirectURL": "",
|
||||||
"externalCaptivePortalURL": null,
|
"externalCaptivePortalURL": null,
|
||||||
"sessionTimeoutInMinutes": 10,
|
"sessionTimeoutInMinutes": 60,
|
||||||
"logoFile": {
|
"logoFile": null,
|
||||||
"model_type": "ManagedFileInfo",
|
"backgroundFile": null,
|
||||||
"md5checksum": null,
|
"walledGardenAllowlist": [],
|
||||||
"lastModifiedTimestamp": null,
|
"usernamePasswordFile": {
|
||||||
"apExportUrl": "/filestore/tip-logo-mobile",
|
"model_type": "ManagedFileInfo",
|
||||||
"fileCategory": "CaptivePortalLogo",
|
"md5checksum": null,
|
||||||
"fileType": "PNG",
|
"lastModifiedTimestamp": null,
|
||||||
"altSlot": false
|
"apExportUrl": "userList",
|
||||||
},
|
"fileCategory": "UsernamePasswordList",
|
||||||
"backgroundFile": {
|
"fileType": "TEXT",
|
||||||
"model_type": "ManagedFileInfo",
|
"altSlot": true
|
||||||
"md5checksum": null,
|
},
|
||||||
"lastModifiedTimestamp": null,
|
"authenticationType": "guest",
|
||||||
"apExportUrl": "/filestore/tip-logo",
|
"radiusAuthMethod": "CHAP",
|
||||||
"fileCategory": "CaptivePortalBackground",
|
"maxUsersWithSameCredentials": 42,
|
||||||
"fileType": "PNG",
|
"externalPolicyFile": null,
|
||||||
"altSlot": false
|
"backgroundPosition": "left_top",
|
||||||
},
|
"backgroundRepeat": "no_repeat",
|
||||||
"walledGardenAllowlist": [
|
"radiusServiceName": null,
|
||||||
],
|
"expiryType": "unlimited",
|
||||||
"usernamePasswordFile": null,
|
"userList": [
|
||||||
"authenticationType": "guest",
|
{
|
||||||
"radiusAuthMethod": "CHAP",
|
"model_type": "TimedAccessUserRecord",
|
||||||
"maxUsersWithSameCredentials": 3,
|
"username": "customer",
|
||||||
"externalPolicyFile": null,
|
"password": "testing123",
|
||||||
"backgroundPosition": "left_top",
|
"activationTime": 1602183994956,
|
||||||
"backgroundRepeat": "no_repeat",
|
"expirationTime": 1602212794956,
|
||||||
"radiusServiceId": 0,
|
"numDevices": 1,
|
||||||
"expiryType": "time_limited",
|
"userDetails": {
|
||||||
"userList": [
|
"model_type": "TimedAccessUserDetails",
|
||||||
],
|
"firstName": "Pac",
|
||||||
"macAllowList": [
|
"lastName": "Man",
|
||||||
],
|
"passwordNeedsReset": false
|
||||||
"profileType": "captive_portal"
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upO",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4e"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer",
|
||||||
|
"password": "testing123",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602187594957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Q",
|
||||||
|
"lastName": "Bert",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqho",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:68"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602788794957,
|
||||||
|
"numDevices": 1,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Duke",
|
||||||
|
"lastName": "Nukem",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upN",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4d"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602270394957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Missile",
|
||||||
|
"lastName": "Commander",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqhj",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:63"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"macAllowList": [],
|
||||||
|
"profileType": "captive_portal"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1611857459118,
|
"createdTimestamp": 1602183994959,
|
||||||
"lastModifiedTimestamp": 1611857459118,
|
"lastModifiedTimestamp": 1602183994959,
|
||||||
"childProfileIds": [
|
"childProfileIds": []
|
||||||
]
|
}
|
||||||
}
|
]
|
||||||
]
|
|
||||||
@@ -1,71 +1,71 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 37,
|
"id": 24,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "passpoint",
|
"profileType": "passpoint",
|
||||||
"name": "hotspot20-profile-2021-01-21T21:28:59.171Z",
|
"name": "TipWlan-Passpoint-Config",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "PasspointProfile",
|
"model_type": "PasspointProfile",
|
||||||
"enableInterworkingAndHs20": true,
|
"enableInterworkingAndHs20": true,
|
||||||
"hessid": null,
|
"hessid": null,
|
||||||
"passpointAccessNetworkType": "free_public_network",
|
"passpointAccessNetworkType": "free_public_network",
|
||||||
"passpointNetworkAuthenticationType": "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": "PasspointConnectionCapability",
|
"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,
|
||||||
"associatedAccessSsidProfileIds": [
|
"associatedAccessSsidProfileIds": [
|
||||||
32
|
15
|
||||||
],
|
],
|
||||||
"osuSsidProfileId": 31,
|
"osuSsidProfileId": 16,
|
||||||
"passpointOperatorProfileId": 34,
|
"passpointOperatorProfileId": 17,
|
||||||
"passpointVenueProfileId": 33,
|
"passpointVenueProfileId": 18,
|
||||||
"passpointOsuProviderProfileIds": [
|
"passpointOsuProviderProfileIds": [
|
||||||
35,
|
19,
|
||||||
36
|
20
|
||||||
],
|
],
|
||||||
"accessNetworkType": "free_public_network",
|
"accessNetworkType": "free_public_network",
|
||||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||||
"profileType": "passpoint"
|
"profileType": "passpoint"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 0,
|
"createdTimestamp": 1606778370807,
|
||||||
"lastModifiedTimestamp": 1611264539331,
|
"lastModifiedTimestamp": 1606778370807,
|
||||||
"childProfileIds": [
|
"childProfileIds": [
|
||||||
33,
|
17,
|
||||||
34,
|
18,
|
||||||
35,
|
19,
|
||||||
36
|
20
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,263 +1,270 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 35,
|
"id": 19,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "passpoint_osu_id_provider",
|
"profileType": "passpoint_osu_id_provider",
|
||||||
"name": "provider1-profile-2021-01-21T21:28:59.057Z",
|
"name": "TipWlan-Passpoint-OSU-Provider",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "PasspointOsuProviderProfile",
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
"mccMncList": [
|
"domainName": "rogers.com",
|
||||||
{
|
"mccMncList": [
|
||||||
"model_type": "PasspointMccMnc",
|
{
|
||||||
"mcc": 302,
|
"model_type": "PasspointMccMnc",
|
||||||
"mnc": 720,
|
"mcc": 302,
|
||||||
"iso": "ca",
|
"mnc": 720,
|
||||||
"country": "Canada",
|
"iso": "ca",
|
||||||
"countryCode": 1,
|
"country": "Canada",
|
||||||
"network": "Rogers AT&T Wireless",
|
"countryCode": 1,
|
||||||
"mccMncPairing": "302,720"
|
"network": "Rogers AT&T Wireless",
|
||||||
}
|
"mccMncPairing": "302,720"
|
||||||
],
|
}
|
||||||
"naiRealmList": [
|
],
|
||||||
{
|
"naiRealmList": [
|
||||||
"model_type": "PasspointNaiRealmInformation",
|
{
|
||||||
"naiRealms": [
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
"rogers.com"
|
"naiRealms": [
|
||||||
],
|
"rogers.com"
|
||||||
"encoding": 0,
|
],
|
||||||
"eapMethods": [
|
"encoding": 0,
|
||||||
"EAP-TTLS with username/password",
|
"eapMethods": [
|
||||||
"EAP-TLS with certificate"
|
"EAP-TTLS with username/password",
|
||||||
],
|
"EAP-TLS with certificate"
|
||||||
"eapMap": {
|
],
|
||||||
"EAP-TTLS with username/password": [
|
"eapMap": {
|
||||||
"Credential Type:username/password",
|
"EAP-TTLS with username/password": [
|
||||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
"Credential Type:username/password",
|
||||||
],
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
"EAP-TLS with certificate": [
|
],
|
||||||
"Credential Type:Certificate"
|
"EAP-TLS with certificate": [
|
||||||
]
|
"Credential Type:Certificate"
|
||||||
}
|
]
|
||||||
}
|
}
|
||||||
],
|
}
|
||||||
"osuIconList": [
|
],
|
||||||
{
|
"osuIconList": [
|
||||||
"model_type": "PasspointOsuIcon",
|
{
|
||||||
"iconWidth": 32,
|
"model_type": "PasspointOsuIcon",
|
||||||
"iconHeight": 32,
|
"iconWidth": 32,
|
||||||
"languageCode": "eng",
|
"iconHeight": 32,
|
||||||
"iconLocale": "en_CA",
|
"languageCode": "eng",
|
||||||
"iconName": "icon32eng",
|
"iconLocale": "en_CA",
|
||||||
"filePath": "/tmp/icon32eng.png",
|
"iconName": "icon32eng",
|
||||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
"filePath": "/tmp/icon32eng.png",
|
||||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
},
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
{
|
},
|
||||||
"model_type": "PasspointOsuIcon",
|
{
|
||||||
"iconWidth": 32,
|
"model_type": "PasspointOsuIcon",
|
||||||
"iconHeight": 32,
|
"iconWidth": 32,
|
||||||
"languageCode": "fra",
|
"iconHeight": 32,
|
||||||
"iconLocale": "fr_CA",
|
"languageCode": "fra",
|
||||||
"iconName": "icon32fra",
|
"iconLocale": "fr_CA",
|
||||||
"filePath": "/tmp/icon32fra.png",
|
"iconName": "icon32fra",
|
||||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
"filePath": "/tmp/icon32fra.png",
|
||||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
},
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
{
|
},
|
||||||
"model_type": "PasspointOsuIcon",
|
{
|
||||||
"iconWidth": 32,
|
"model_type": "PasspointOsuIcon",
|
||||||
"iconHeight": 32,
|
"iconWidth": 32,
|
||||||
"languageCode": "eng",
|
"iconHeight": 32,
|
||||||
"iconLocale": "en_US",
|
"languageCode": "eng",
|
||||||
"iconName": "icon32usa",
|
"iconLocale": "en_US",
|
||||||
"filePath": "/tmp/icon32usa.png",
|
"iconName": "icon32usa",
|
||||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
"filePath": "/tmp/icon32usa.png",
|
||||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
}
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
],
|
}
|
||||||
"osuServerUri": "https://example.com/osu/rogers",
|
],
|
||||||
"osuFriendlyName": [
|
"osuServerUri": "https://example.com/osu/rogers",
|
||||||
{
|
"osuFriendlyName": [
|
||||||
"model_type": "PasspointDuple",
|
{
|
||||||
"locale": "eng",
|
"model_type": "PasspointDuple",
|
||||||
"dupleIso3Language": "eng",
|
"locale": "en_CA",
|
||||||
"dupleName": "Example provider rogers",
|
"dupleIso3Language": "eng",
|
||||||
"defaultDupleSeparator": ":",
|
"dupleName": "Example provider rogers",
|
||||||
"asDuple": "eng:Example provider rogers"
|
"defaultDupleSeparator": ":",
|
||||||
},
|
"asDuple": "eng:Example provider rogers"
|
||||||
{
|
},
|
||||||
"model_type": "PasspointDuple",
|
{
|
||||||
"locale": "fra",
|
"model_type": "PasspointDuple",
|
||||||
"dupleIso3Language": "fra",
|
"locale": "fr_CA",
|
||||||
"dupleName": "Exemple de fournisseur rogers",
|
"dupleIso3Language": "fra",
|
||||||
"defaultDupleSeparator": ":",
|
"dupleName": "Exemple de fournisseur rogers",
|
||||||
"asDuple": "fra:Exemple de fournisseur rogers"
|
"defaultDupleSeparator": ":",
|
||||||
}
|
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||||
],
|
}
|
||||||
"osuNaiStandalone": "anonymous@rogers.com",
|
],
|
||||||
"osuNaiShared": "anonymous@rogers.com",
|
"osuNaiStandalone": "anonymous@rogers.com",
|
||||||
"osuMethodList": [
|
"osuNaiShared": "anonymous@rogers.com",
|
||||||
1,
|
"osuMethodList": [
|
||||||
0
|
1,
|
||||||
],
|
0
|
||||||
"osuServiceDescription": [
|
],
|
||||||
{
|
"osuServiceDescription": [
|
||||||
"model_type": "PasspointDuple",
|
{
|
||||||
"locale": "eng",
|
"model_type": "PasspointDuple",
|
||||||
"dupleIso3Language": "eng",
|
"locale": "en_CA",
|
||||||
"dupleName": "Example services rogers",
|
"dupleIso3Language": "eng",
|
||||||
"defaultDupleSeparator": ":",
|
"dupleName": "Example services rogers",
|
||||||
"asDuple": "eng:Example services rogers"
|
"defaultDupleSeparator": ":",
|
||||||
},
|
"asDuple": "eng:Example services rogers"
|
||||||
{
|
},
|
||||||
"model_type": "PasspointDuple",
|
{
|
||||||
"locale": "fra",
|
"model_type": "PasspointDuple",
|
||||||
"dupleIso3Language": "fra",
|
"locale": "fr_CA",
|
||||||
"dupleName": "Exemples de services rogers",
|
"dupleIso3Language": "fra",
|
||||||
"defaultDupleSeparator": ":",
|
"dupleName": "Exemples de services rogers",
|
||||||
"asDuple": "fra:Exemples de services rogers"
|
"defaultDupleSeparator": ":",
|
||||||
}
|
"asDuple": "fra:Exemples de services rogers"
|
||||||
],
|
}
|
||||||
"roamingOi": [
|
],
|
||||||
"BAA2D00100",
|
"roamingOi": [
|
||||||
"BAA2D00000"
|
1,
|
||||||
],
|
2,
|
||||||
"profileType": "passpoint_osu_id_provider"
|
3,
|
||||||
},
|
4
|
||||||
"createdTimestamp": 1611264539070,
|
],
|
||||||
"lastModifiedTimestamp": 1611264539070,
|
"profileType": "passpoint_osu_id_provider"
|
||||||
"childProfileIds": []
|
},
|
||||||
},
|
"createdTimestamp": 1606778370345,
|
||||||
{
|
"lastModifiedTimestamp": 1606778370345,
|
||||||
"model_type": "Profile",
|
"childProfileIds": [
|
||||||
"id": 36,
|
]
|
||||||
"customerId": 2,
|
},
|
||||||
"profileType": "passpoint_osu_id_provider",
|
{
|
||||||
"name": "provider2-profile-2021-01-21T21:28:59.118Z",
|
"model_type": "Profile",
|
||||||
"details": {
|
"id": 20,
|
||||||
"model_type": "PasspointOsuProviderProfile",
|
"customerId": 2,
|
||||||
"mccMncList": [
|
"profileType": "passpoint_osu_id_provider",
|
||||||
{
|
"name": "TipWlan-Passpoint-OSU-Provider-2",
|
||||||
"model_type": "PasspointMccMnc",
|
"details": {
|
||||||
"mcc": 302,
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
"mnc": 220,
|
"domainName": "telus.com",
|
||||||
"iso": "ca",
|
"mccMncList": [
|
||||||
"country": "Canada",
|
{
|
||||||
"countryCode": 1,
|
"model_type": "PasspointMccMnc",
|
||||||
"network": "Telus Mobility",
|
"mcc": 302,
|
||||||
"mccMncPairing": "302,220"
|
"mnc": 220,
|
||||||
}
|
"iso": "ca",
|
||||||
],
|
"country": "Canada",
|
||||||
"naiRealmList": [
|
"countryCode": 1,
|
||||||
{
|
"network": "Telus Mobility",
|
||||||
"model_type": "PasspointNaiRealmInformation",
|
"mccMncPairing": "302,220"
|
||||||
"naiRealms": [
|
}
|
||||||
"telus.com"
|
],
|
||||||
],
|
"naiRealmList": [
|
||||||
"encoding": 0,
|
{
|
||||||
"eapMethods": [
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
"EAP-TTLS with username/password",
|
"naiRealms": [
|
||||||
"EAP-TLS with certificate"
|
"telus.com"
|
||||||
],
|
],
|
||||||
"eapMap": {
|
"encoding": 0,
|
||||||
"EAP-TTLS with username/password": [
|
"eapMethods": [
|
||||||
"Credential Type:username/password",
|
"EAP-TTLS with username/password",
|
||||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
"EAP-TLS with certificate"
|
||||||
],
|
],
|
||||||
"EAP-TLS with certificate": [
|
"eapMap": {
|
||||||
"Credential Type:Certificate"
|
"EAP-TTLS with username/password": [
|
||||||
]
|
"Credential Type:username/password",
|
||||||
}
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
}
|
],
|
||||||
],
|
"EAP-TLS with certificate": [
|
||||||
"osuIconList": [
|
"Credential Type:Certificate"
|
||||||
{
|
]
|
||||||
"model_type": "PasspointOsuIcon",
|
}
|
||||||
"iconWidth": 32,
|
}
|
||||||
"iconHeight": 32,
|
],
|
||||||
"languageCode": "eng",
|
"osuIconList": [
|
||||||
"iconLocale": "en_CA",
|
{
|
||||||
"iconName": "icon32eng",
|
"model_type": "PasspointOsuIcon",
|
||||||
"filePath": "/tmp/icon32eng.png",
|
"iconWidth": 32,
|
||||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
"iconHeight": 32,
|
||||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
"languageCode": "eng",
|
||||||
},
|
"iconLocale": "en_CA",
|
||||||
{
|
"iconName": "icon32eng",
|
||||||
"model_type": "PasspointOsuIcon",
|
"filePath": "/tmp/icon32eng.png",
|
||||||
"iconWidth": 32,
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
"iconHeight": 32,
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
"languageCode": "fra",
|
},
|
||||||
"iconLocale": "fr_CA",
|
{
|
||||||
"iconName": "icon32fra",
|
"model_type": "PasspointOsuIcon",
|
||||||
"filePath": "/tmp/icon32fra.png",
|
"iconWidth": 32,
|
||||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
"iconHeight": 32,
|
||||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
"languageCode": "fra",
|
||||||
},
|
"iconLocale": "fr_CA",
|
||||||
{
|
"iconName": "icon32fra",
|
||||||
"model_type": "PasspointOsuIcon",
|
"filePath": "/tmp/icon32fra.png",
|
||||||
"iconWidth": 32,
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
"iconHeight": 32,
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
"languageCode": "eng",
|
},
|
||||||
"iconLocale": "en_US",
|
{
|
||||||
"iconName": "icon32usa",
|
"model_type": "PasspointOsuIcon",
|
||||||
"filePath": "/tmp/icon32usa.png",
|
"iconWidth": 32,
|
||||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
"iconHeight": 32,
|
||||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
"languageCode": "eng",
|
||||||
}
|
"iconLocale": "en_US",
|
||||||
],
|
"iconName": "icon32usa",
|
||||||
"osuServerUri": "https://example.com/osu/telus",
|
"filePath": "/tmp/icon32usa.png",
|
||||||
"osuFriendlyName": [
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
{
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
"model_type": "PasspointDuple",
|
}
|
||||||
"locale": "eng",
|
],
|
||||||
"dupleIso3Language": "eng",
|
"osuServerUri": "https://example.com/osu/telus",
|
||||||
"dupleName": "Example provider telus",
|
"osuFriendlyName": [
|
||||||
"defaultDupleSeparator": ":",
|
{
|
||||||
"asDuple": "eng:Example provider telus"
|
"model_type": "PasspointDuple",
|
||||||
},
|
"locale": "en_CA",
|
||||||
{
|
"dupleIso3Language": "eng",
|
||||||
"model_type": "PasspointDuple",
|
"dupleName": "Example provider telus",
|
||||||
"locale": "fra",
|
"defaultDupleSeparator": ":",
|
||||||
"dupleIso3Language": "fra",
|
"asDuple": "eng:Example provider telus"
|
||||||
"dupleName": "Exemple de fournisseur telus",
|
},
|
||||||
"defaultDupleSeparator": ":",
|
{
|
||||||
"asDuple": "fra:Exemple de fournisseur telus"
|
"model_type": "PasspointDuple",
|
||||||
}
|
"locale": "fr_CA",
|
||||||
],
|
"dupleIso3Language": "fra",
|
||||||
"osuNaiStandalone": "anonymous@telus.com",
|
"dupleName": "Exemple de fournisseur telus",
|
||||||
"osuNaiShared": "anonymous@telus.com",
|
"defaultDupleSeparator": ":",
|
||||||
"osuMethodList": [
|
"asDuple": "fra:Exemple de fournisseur telus"
|
||||||
1,
|
}
|
||||||
0
|
],
|
||||||
],
|
"osuNaiStandalone": "anonymous@telus.com",
|
||||||
"osuServiceDescription": [
|
"osuNaiShared": "anonymous@telus.com",
|
||||||
{
|
"osuMethodList": [
|
||||||
"model_type": "PasspointDuple",
|
1,
|
||||||
"locale": "eng",
|
0
|
||||||
"dupleIso3Language": "eng",
|
],
|
||||||
"dupleName": "Example services telus",
|
"osuServiceDescription": [
|
||||||
"defaultDupleSeparator": ":",
|
{
|
||||||
"asDuple": "eng:Example services telus"
|
"model_type": "PasspointDuple",
|
||||||
},
|
"locale": "en_CA",
|
||||||
{
|
"dupleIso3Language": "eng",
|
||||||
"model_type": "PasspointDuple",
|
"dupleName": "Example services telus",
|
||||||
"locale": "fra",
|
"defaultDupleSeparator": ":",
|
||||||
"dupleIso3Language": "fra",
|
"asDuple": "eng:Example services telus"
|
||||||
"dupleName": "Exemples de services telus",
|
},
|
||||||
"defaultDupleSeparator": ":",
|
{
|
||||||
"asDuple": "fra:Exemples de services telus"
|
"model_type": "PasspointDuple",
|
||||||
}
|
"locale": "fr_CA",
|
||||||
],
|
"dupleIso3Language": "fra",
|
||||||
"roamingOi": [
|
"dupleName": "Exemples de services telus",
|
||||||
"004096",
|
"defaultDupleSeparator": ":",
|
||||||
"005014",
|
"asDuple": "fra:Exemples de services telus"
|
||||||
"F4F5E8F5F4"
|
}
|
||||||
],
|
],
|
||||||
"profileType": "passpoint_osu_id_provider"
|
"roamingOi": [
|
||||||
},
|
1,
|
||||||
"createdTimestamp": 1611264539131,
|
2,
|
||||||
"lastModifiedTimestamp": 1611264539131,
|
3,
|
||||||
"childProfileIds": []
|
4
|
||||||
}
|
],
|
||||||
]
|
"profileType": "passpoint_osu_id_provider"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1606778370351,
|
||||||
|
"lastModifiedTimestamp": 1606778370351,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|||||||
@@ -1,41 +1,37 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 34,
|
"id": 17,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "passpoint_operator",
|
"profileType": "passpoint_operator",
|
||||||
"name": "operator-profile-2021-01-21T21:28:58.994Z",
|
"name": "TipWlan-Passpoint-Operator",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "PasspointOperatorProfile",
|
"model_type": "PasspointOperatorProfile",
|
||||||
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||||
"x509CertificateLocation": "/etc/ca.pem",
|
"x509CertificateLocation": "/etc/ca.pem",
|
||||||
"operatorFriendlyName": [
|
"operatorFriendlyName": [
|
||||||
{
|
{
|
||||||
"model_type": "PasspointDuple",
|
"model_type": "PasspointDuple",
|
||||||
"locale": "fra",
|
"locale": "en_CA",
|
||||||
"dupleIso3Language": "fra",
|
"dupleIso3Language": "eng",
|
||||||
"dupleName": "Nom de l'opérateur convivial par défaut",
|
"dupleName": "Default friendly passpoint_operator name",
|
||||||
"defaultDupleSeparator": ":",
|
"defaultDupleSeparator": ":",
|
||||||
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model_type": "PasspointDuple",
|
"model_type": "PasspointDuple",
|
||||||
"locale": "eng",
|
"locale": "fr_CA",
|
||||||
"dupleIso3Language": "eng",
|
"dupleIso3Language": "fra",
|
||||||
"dupleName": "Default friendly passpoint_operator name",
|
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||||
"defaultDupleSeparator": ":",
|
"defaultDupleSeparator": ":",
|
||||||
"asDuple": "eng:Default friendly passpoint_operator name"
|
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"domainNameList": [
|
"profileType": "passpoint_operator"
|
||||||
"bell.ca",
|
},
|
||||||
"telus.com",
|
"createdTimestamp": 1606778369945,
|
||||||
"rogers.com"
|
"lastModifiedTimestamp": 1606778369945,
|
||||||
],
|
"childProfileIds": [
|
||||||
"profileType": "passpoint_operator"
|
]
|
||||||
},
|
}
|
||||||
"createdTimestamp": 1611264539004,
|
]
|
||||||
"lastModifiedTimestamp": 1611264539004,
|
|
||||||
"childProfileIds": []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|||||||
@@ -1,24 +1,34 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "radius",
|
"profileType": "radius",
|
||||||
"name": "Radius-Profile",
|
"name": "Radius-Profile",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "RadiusProfile",
|
"model_type": "RadiusProfile",
|
||||||
"primaryRadiusAuthServer": {
|
"subnetConfiguration": null,
|
||||||
"model_type": "RadiusServer",
|
"serviceRegionMap": {
|
||||||
"ipAddress": "192.168.0.1",
|
"Ottawa": {
|
||||||
"secret": "testing123",
|
"model_type": "RadiusServiceRegion",
|
||||||
"port": 1812,
|
"serverMap": {
|
||||||
"timeout": null
|
"Radius-Profile": [
|
||||||
},
|
{
|
||||||
"profileType": "radius"
|
"model_type": "RadiusServer",
|
||||||
},
|
"ipAddress": "192.168.0.1",
|
||||||
"createdTimestamp": 1611262628767,
|
"secret": "testing123",
|
||||||
"lastModifiedTimestamp": 1611262628767,
|
"authPort": 1812,
|
||||||
"childProfileIds": [
|
"timeout": null
|
||||||
]
|
}
|
||||||
}
|
]
|
||||||
]
|
},
|
||||||
|
"regionName": "Ottawa"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profileType": "radius"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1601961451668,
|
||||||
|
"lastModifiedTimestamp": 1601961451668,
|
||||||
|
"childProfileIds": []
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 4,
|
"id": 11,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "rf",
|
"profileType": "rf",
|
||||||
"name": "TipWlan-rf",
|
"name": "TipWlan-rf",
|
||||||
@@ -198,7 +198,7 @@
|
|||||||
},
|
},
|
||||||
"profileType": "rf"
|
"profileType": "rf"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1612285248650,
|
"createdTimestamp": 1606778369933,
|
||||||
"lastModifiedTimestamp": 1612285248650,
|
"lastModifiedTimestamp": 1606778369933,
|
||||||
"childProfileIds": []
|
"childProfileIds": []
|
||||||
}
|
}
|
||||||
@@ -1,75 +1,203 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 2,
|
"id": 5,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "ssid",
|
"profileType": "ssid",
|
||||||
"name": "TipWlan-cloud-3-radios",
|
"name": "TipWlan-cloud-3-radios",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "SsidConfiguration",
|
"model_type": "SsidConfiguration",
|
||||||
"ssid": "TipWlan-cloud-3-radios",
|
"ssid": "TipWlan-cloud-3-radios",
|
||||||
"appliedRadios": [
|
"appliedRadios": [
|
||||||
"is5GHzU",
|
"is5GHzL",
|
||||||
"is2dot4GHz",
|
"is2dot4GHz",
|
||||||
"is5GHzL"
|
"is5GHzU"
|
||||||
],
|
],
|
||||||
"ssidAdminState": "enabled",
|
"ssidAdminState": "enabled",
|
||||||
"secureMode": "wpa2OnlyPSK",
|
"secureMode": "wpa2OnlyPSK",
|
||||||
"vlanId": 1,
|
"vlanId": 1,
|
||||||
"keyStr": "openwifi",
|
"keyStr": "openwifi",
|
||||||
"broadcastSsid": "enabled",
|
"broadcastSsid": "enabled",
|
||||||
"keyRefresh": 0,
|
"keyRefresh": 0,
|
||||||
"noLocalSubnets": false,
|
"noLocalSubnets": false,
|
||||||
"radiusServiceId": 0,
|
"radiusServiceName": null,
|
||||||
"radiusAcountingServiceInterval": 60,
|
"radiusAccountingServiceName": null,
|
||||||
"captivePortalId": null,
|
"radiusAcountingServiceInterval": null,
|
||||||
"bandwidthLimitDown": 0,
|
"captivePortalId": null,
|
||||||
"bandwidthLimitUp": 0,
|
"bandwidthLimitDown": 0,
|
||||||
"clientBandwidthLimitDown": 0,
|
"bandwidthLimitUp": 0,
|
||||||
"clientBandwidthLimitUp": 0,
|
"clientBandwidthLimitDown": 0,
|
||||||
"videoTrafficOnly": false,
|
"clientBandwidthLimitUp": 0,
|
||||||
"radioBasedConfigs": {
|
"videoTrafficOnly": false,
|
||||||
"is5GHzU": {
|
"radioBasedConfigs": {
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is5GHzL": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
},
|
"enable80211v": null
|
||||||
"is2dot4GHz": {
|
},
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is2dot4GHz": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
},
|
"enable80211v": null
|
||||||
"is5GHz": {
|
},
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is5GHz": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
},
|
"enable80211v": null
|
||||||
"is5GHzL": {
|
},
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is5GHzU": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
}
|
"enable80211v": null
|
||||||
},
|
}
|
||||||
"bonjourGatewayProfileId": null,
|
},
|
||||||
"enable80211w": null,
|
"bonjourGatewayProfileId": null,
|
||||||
"wepConfig": null,
|
"enable80211w": null,
|
||||||
"forwardMode": "BRIDGE",
|
"wepConfig": null,
|
||||||
"profileType": "ssid",
|
"forwardMode": "BRIDGE",
|
||||||
"radiusClientConfiguration": {
|
"profileType": "ssid"
|
||||||
"model_type": "RadiusNasConfiguration",
|
},
|
||||||
"nasClientId": "DEFAULT",
|
"createdTimestamp": 1606778369598,
|
||||||
"nasClientIp": "WAN_IP",
|
"lastModifiedTimestamp": 1606778369598,
|
||||||
"userDefinedNasId": null,
|
"childProfileIds": [
|
||||||
"userDefinedNasIp": null,
|
]
|
||||||
"operatorId": null
|
},
|
||||||
}
|
{
|
||||||
},
|
"model_type": "Profile",
|
||||||
"createdTimestamp": 1612285248638,
|
"id": 15,
|
||||||
"lastModifiedTimestamp": 1612285248638,
|
"customerId": 2,
|
||||||
"childProfileIds": []
|
"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": {
|
||||||
|
"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": 1606778369943,
|
||||||
|
"lastModifiedTimestamp": 1606778370811,
|
||||||
|
"childProfileIds": [
|
||||||
|
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": 33,
|
"id": 18,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "passpoint_venue",
|
"profileType": "passpoint_venue",
|
||||||
"name": "venue-profile-2021-01-21T21:28:58.934Z",
|
"name": "TipWlan-Passpoint-Venue",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "PasspointVenueProfile",
|
"model_type": "PasspointVenueProfile",
|
||||||
"venueNameSet": [
|
"venueNameSet": [
|
||||||
{
|
{
|
||||||
"model_type": "PasspointVenueName",
|
"model_type": "PasspointVenueName",
|
||||||
"locale": "fra",
|
"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": "PasspointVenueName",
|
"model_type": "PasspointVenueName",
|
||||||
"locale": "eng",
|
"locale": "en_CA",
|
||||||
"dupleIso3Language": "eng",
|
"dupleIso3Language": "eng",
|
||||||
"dupleName": "Example passpoint_venue",
|
"dupleName": "Example passpoint_venue",
|
||||||
"defaultDupleSeparator": ":",
|
"defaultDupleSeparator": ":",
|
||||||
"venueUrl": "http://www.example.com/info-eng",
|
"venueUrl": "http://www.example.com/info-eng",
|
||||||
"asDuple": "eng:Example passpoint_venue"
|
"asDuple": "eng:Example passpoint_venue"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"venueTypeAssignment": {
|
"venueTypeAssignment": {
|
||||||
"model_type": "PasspointVenueTypeAssignment",
|
"model_type": "PasspointVenueTypeAssignment",
|
||||||
"venueDescription": "Research and Development Facility",
|
"venueDescription": "Research and Development Facility",
|
||||||
"venueGroupId": 2,
|
"venueGroupId": 2,
|
||||||
"venueTypeId": 8
|
"venueTypeId": 8
|
||||||
},
|
},
|
||||||
"profileType": "passpoint_venue"
|
"profileType": "passpoint_venue"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1611264538947,
|
"createdTimestamp": 1606778369950,
|
||||||
"lastModifiedTimestamp": 1611264538947,
|
"lastModifiedTimestamp": 1606778369950,
|
||||||
"childProfileIds": []
|
"childProfileIds": [
|
||||||
}
|
]
|
||||||
]
|
}
|
||||||
|
]
|
||||||
|
|||||||
@@ -56,8 +56,6 @@ RESTAPI_PROPS+=" -Dserver.port=443"
|
|||||||
|
|
||||||
SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED"
|
SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED"
|
||||||
|
|
||||||
JVM_EXTRA_PROPS=" ${JVM_MEM_OPTIONS:- } "
|
export ALL_PROPS="$PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS"
|
||||||
|
|
||||||
export ALL_PROPS="$JVM_EXTRA_PROPS $PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS"
|
|
||||||
|
|
||||||
java $ALL_PROPS -jar app.jar
|
java $ALL_PROPS -jar app.jar
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
<relativePath>../../wlan-cloud-root</relativePath>
|
<relativePath>../../wlan-cloud-root</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>opensync-gateway-static-process</artifactId>
|
<artifactId>opensync-gateway-static-process</artifactId>
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>opensync-ext-static</artifactId>
|
<artifactId>opensync-ext-static</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|||||||
@@ -1,472 +1,221 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Equipment",
|
"model_type": "Equipment",
|
||||||
"id": 1,
|
"id": 51,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileId": 8,
|
"profileId": 12,
|
||||||
"locationId": 8,
|
"locationId": 8,
|
||||||
|
"equipmentType": "AP",
|
||||||
|
"inventoryId": "Test_Client_21P10C68818122",
|
||||||
|
"name": "Test_Client_21P10C68818122",
|
||||||
|
"details": {
|
||||||
|
"model_type": "ApElementConfiguration",
|
||||||
|
"equipmentModel": "EA8300-CA",
|
||||||
|
"elementConfigVersion": "AP-V1",
|
||||||
"equipmentType": "AP",
|
"equipmentType": "AP",
|
||||||
"inventoryId": "Open_AP_21P10C68818122",
|
"deviceMode": "standaloneAP",
|
||||||
"name": "Open_AP_21P10C68818122",
|
"gettingIP": "dhcp",
|
||||||
"details": {
|
"staticIP": null,
|
||||||
"model_type": "ApElementConfiguration",
|
"staticIpMaskCidr": null,
|
||||||
"equipmentModel": "EA8300-CA",
|
"staticIpGw": null,
|
||||||
"elementConfigVersion": "AP-V1",
|
"gettingDNS": "dhcp",
|
||||||
"equipmentType": "AP",
|
"staticDnsIp1": null,
|
||||||
"deviceMode": "standaloneAP",
|
"staticDnsIp2": null,
|
||||||
"gettingIP": "dhcp",
|
"peerInfoList": [],
|
||||||
"staticIP": null,
|
"deviceName": "Default Device Name",
|
||||||
"staticIpMaskCidr": null,
|
"locationData": null,
|
||||||
"staticIpGw": null,
|
"locallyConfiguredMgmtVlan": 0,
|
||||||
"gettingDNS": "dhcp",
|
"locallyConfigured": false,
|
||||||
"staticDnsIp1": null,
|
"deploymentType": "CEILING",
|
||||||
"staticDnsIp2": null,
|
"syntheticClientEnabled": null,
|
||||||
"peerInfoList": [],
|
"frameReportThrottleEnabled": true,
|
||||||
"deviceName": "Open_AP_21P10C68818122",
|
"antennaType": "OMNI",
|
||||||
"locationData": null,
|
"costSavingEventsEnabled": true,
|
||||||
"locallyConfiguredMgmtVlan": 0,
|
"forwardMode": "BRIDGE",
|
||||||
"locallyConfigured": false,
|
"radioMap": {
|
||||||
"deploymentType": "CEILING",
|
"is2dot4GHz": {
|
||||||
"syntheticClientEnabled": null,
|
"model_type": "ElementRadioConfiguration",
|
||||||
"frameReportThrottleEnabled": true,
|
"radioType": "is2dot4GHz",
|
||||||
"antennaType": "OMNI",
|
"channelNumber": 6,
|
||||||
"costSavingEventsEnabled": true,
|
"manualChannelNumber": 6,
|
||||||
"forwardMode": "BRIDGE",
|
"backupChannelNumber": 11,
|
||||||
"radioMap": {
|
"bannedChannels": [],
|
||||||
"is5GHzU": {
|
"allowedChannels": [],
|
||||||
"model_type": "ElementRadioConfiguration",
|
"rxCellSizeDb": {
|
||||||
"radioType": "is5GHzU",
|
"model_type": "SourceSelectionValue",
|
||||||
"channelNumber": 149,
|
"source": "auto",
|
||||||
"manualChannelNumber": 149,
|
"value": -90
|
||||||
"backupChannelNumber": 157,
|
|
||||||
"manualBackupChannelNumber": 157,
|
|
||||||
"rxCellSizeDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"probeResponseThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"clientDisconnectThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"eirpTxPower": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": 18
|
|
||||||
},
|
|
||||||
"perimeterDetectionEnabled": true,
|
|
||||||
"bestAPSteerType": "both",
|
|
||||||
"deauthAttackDetection": null,
|
|
||||||
"allowedChannelsPowerLevels": [
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 161,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 100,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 132,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 165,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 104,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 136,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 108,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 140,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 112,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 144,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 116,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 149,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 153,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 157,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"is2dot4GHz": {
|
|
||||||
"model_type": "ElementRadioConfiguration",
|
|
||||||
"radioType": "is2dot4GHz",
|
|
||||||
"channelNumber": 6,
|
|
||||||
"manualChannelNumber": 6,
|
|
||||||
"backupChannelNumber": 11,
|
|
||||||
"manualBackupChannelNumber": 11,
|
|
||||||
"rxCellSizeDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"probeResponseThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"clientDisconnectThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"eirpTxPower": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": 18
|
|
||||||
},
|
|
||||||
"perimeterDetectionEnabled": true,
|
|
||||||
"bestAPSteerType": "both",
|
|
||||||
"deauthAttackDetection": null,
|
|
||||||
"allowedChannelsPowerLevels": [
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 1,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 2,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 3,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 4,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 5,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 6,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 7,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 8,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 9,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 10,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 11,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 20
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"is5GHzL": {
|
|
||||||
"model_type": "ElementRadioConfiguration",
|
|
||||||
"radioType": "is5GHzL",
|
|
||||||
"channelNumber": 36,
|
|
||||||
"manualChannelNumber": 36,
|
|
||||||
"backupChannelNumber": 44,
|
|
||||||
"manualBackupChannelNumber": 44,
|
|
||||||
"rxCellSizeDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"probeResponseThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"clientDisconnectThresholdDb": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": -90
|
|
||||||
},
|
|
||||||
"eirpTxPower": {
|
|
||||||
"model_type": "SourceSelectionValue",
|
|
||||||
"source": "profile",
|
|
||||||
"value": 18
|
|
||||||
},
|
|
||||||
"perimeterDetectionEnabled": true,
|
|
||||||
"bestAPSteerType": "both",
|
|
||||||
"deauthAttackDetection": null,
|
|
||||||
"allowedChannelsPowerLevels": [
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 52,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 36,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 56,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 40,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 60,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 44,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 64,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": true,
|
|
||||||
"channelWidth": 80
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "ChannelPowerLevel",
|
|
||||||
"channelNumber": 48,
|
|
||||||
"powerLevel": 18,
|
|
||||||
"dfs": false,
|
|
||||||
"channelWidth": 80
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"advancedRadioMap": {
|
"probeResponseThresholdDb": {
|
||||||
"is2dot4GHz": {
|
"model_type": "SourceSelectionValue",
|
||||||
"model_type": "RadioConfiguration",
|
"source": "auto",
|
||||||
"radioType": "is2dot4GHz",
|
"value": -90
|
||||||
"radioAdminState": "enabled",
|
},
|
||||||
"fragmentationThresholdBytes": 2346,
|
"clientDisconnectThresholdDb": {
|
||||||
"uapsdState": "enabled",
|
"model_type": "SourceSelectionValue",
|
||||||
"stationIsolation": "disabled",
|
"source": "auto",
|
||||||
"multicastRate": {
|
"value": -90
|
||||||
"model_type": "SourceSelectionMulticast",
|
},
|
||||||
"source": "profile",
|
"eirpTxPower": {
|
||||||
"value": "auto"
|
"model_type": "SourceSelectionValue",
|
||||||
},
|
"source": "auto",
|
||||||
"managementRate": {
|
"value": 32
|
||||||
"model_type": "SourceSelectionManagement",
|
},
|
||||||
"source": "profile",
|
"perimeterDetectionEnabled": true,
|
||||||
"value": "auto"
|
"bestAPSteerType": "both",
|
||||||
},
|
"deauthAttackDetection": null,
|
||||||
"bestApSettings": {
|
"allowedChannelsPowerLevels": [],
|
||||||
"model_type": "SourceSelectionSteering",
|
"activeChannel": 6
|
||||||
"source": "manual",
|
},
|
||||||
"value": {
|
"is5GHzU": {
|
||||||
"model_type": "RadioBestApSettings",
|
"model_type": "ElementRadioConfiguration",
|
||||||
"mlComputed": true,
|
"radioType": "is5GHzU",
|
||||||
"dropInSnrPercentage": 20,
|
"channelNumber": 149,
|
||||||
"minLoadFactor": 50
|
"manualChannelNumber": 149,
|
||||||
}
|
"backupChannelNumber": 154,
|
||||||
},
|
"bannedChannels": [],
|
||||||
"legacyBSSRate": "enabled",
|
"allowedChannels": [],
|
||||||
"dtimPeriod": 2,
|
"rxCellSizeDb": {
|
||||||
"deauthAttackDetection": null
|
"model_type": "SourceSelectionValue",
|
||||||
},
|
"source": "auto",
|
||||||
"is5GHzU": {
|
"value": -90
|
||||||
"model_type": "RadioConfiguration",
|
},
|
||||||
"radioType": "is5GHzU",
|
"probeResponseThresholdDb": {
|
||||||
"radioAdminState": "enabled",
|
"model_type": "SourceSelectionValue",
|
||||||
"fragmentationThresholdBytes": 2346,
|
"source": "auto",
|
||||||
"uapsdState": "enabled",
|
"value": -90
|
||||||
"stationIsolation": "disabled",
|
},
|
||||||
"multicastRate": {
|
"clientDisconnectThresholdDb": {
|
||||||
"model_type": "SourceSelectionMulticast",
|
"model_type": "SourceSelectionValue",
|
||||||
"source": "profile",
|
"source": "auto",
|
||||||
"value": "auto"
|
"value": -90
|
||||||
},
|
},
|
||||||
"managementRate": {
|
"eirpTxPower": {
|
||||||
"model_type": "SourceSelectionManagement",
|
"model_type": "SourceSelectionValue",
|
||||||
"source": "profile",
|
"source": "auto",
|
||||||
"value": "auto"
|
"value": 32
|
||||||
},
|
},
|
||||||
"bestApSettings": {
|
"perimeterDetectionEnabled": true,
|
||||||
"model_type": "SourceSelectionSteering",
|
"bestAPSteerType": "both",
|
||||||
"source": "manual",
|
"deauthAttackDetection": null,
|
||||||
"value": {
|
"allowedChannelsPowerLevels": [],
|
||||||
"model_type": "RadioBestApSettings",
|
"activeChannel": 149
|
||||||
"mlComputed": true,
|
},
|
||||||
"dropInSnrPercentage": 30,
|
"is5GHzL": {
|
||||||
"minLoadFactor": 40
|
"model_type": "ElementRadioConfiguration",
|
||||||
}
|
"radioType": "is5GHzL",
|
||||||
},
|
"channelNumber": 36,
|
||||||
"legacyBSSRate": "enabled",
|
"manualChannelNumber": 36,
|
||||||
"dtimPeriod": 2,
|
"backupChannelNumber": 44,
|
||||||
"deauthAttackDetection": null
|
"bannedChannels": [],
|
||||||
},
|
"allowedChannels": [],
|
||||||
"is5GHzL": {
|
"rxCellSizeDb": {
|
||||||
"model_type": "RadioConfiguration",
|
"model_type": "SourceSelectionValue",
|
||||||
"radioType": "is5GHzL",
|
"source": "auto",
|
||||||
"radioAdminState": "enabled",
|
"value": -90
|
||||||
"fragmentationThresholdBytes": 2346,
|
},
|
||||||
"uapsdState": "enabled",
|
"probeResponseThresholdDb": {
|
||||||
"stationIsolation": "disabled",
|
"model_type": "SourceSelectionValue",
|
||||||
"multicastRate": {
|
"source": "auto",
|
||||||
"model_type": "SourceSelectionMulticast",
|
"value": -90
|
||||||
"source": "profile",
|
},
|
||||||
"value": "auto"
|
"clientDisconnectThresholdDb": {
|
||||||
},
|
"model_type": "SourceSelectionValue",
|
||||||
"managementRate": {
|
"source": "auto",
|
||||||
"model_type": "SourceSelectionManagement",
|
"value": -90
|
||||||
"source": "profile",
|
},
|
||||||
"value": "auto"
|
"eirpTxPower": {
|
||||||
},
|
"model_type": "SourceSelectionValue",
|
||||||
"bestApSettings": {
|
"source": "auto",
|
||||||
"model_type": "SourceSelectionSteering",
|
"value": 32
|
||||||
"source": "manual",
|
},
|
||||||
"value": {
|
"perimeterDetectionEnabled": true,
|
||||||
"model_type": "RadioBestApSettings",
|
"bestAPSteerType": "both",
|
||||||
"mlComputed": true,
|
"deauthAttackDetection": null,
|
||||||
"dropInSnrPercentage": 30,
|
"allowedChannelsPowerLevels": [],
|
||||||
"minLoadFactor": 40
|
"activeChannel": 36
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"legacyBSSRate": "enabled",
|
|
||||||
"dtimPeriod": 2,
|
|
||||||
"deauthAttackDetection": null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"latitude": null,
|
"advancedRadioMap": {
|
||||||
"longitude": null,
|
"is2dot4GHz": {
|
||||||
"baseMacAddress": {
|
"model_type": "RadioConfiguration",
|
||||||
"model_type": "MacAddress",
|
"radioType": "is2dot4GHz",
|
||||||
"address": "JPWi7y5T",
|
"radioAdminState": "enabled",
|
||||||
"addressAsString": "24:f5:a2:ef:2e:53"
|
"fragmentationThresholdBytes": 2346,
|
||||||
},
|
"uapsdState": "enabled",
|
||||||
"serial": "21P10C68818122",
|
"stationIsolation": "disabled",
|
||||||
"createdTimestamp": 1612285288821,
|
"managementRate": {
|
||||||
"lastModifiedTimestamp": 1612285293922
|
"model_type": "SourceSelectionManagement",
|
||||||
}
|
"source": "auto",
|
||||||
|
"value": "auto"
|
||||||
|
},
|
||||||
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
|
"model_type": "RadioBestApSettings",
|
||||||
|
"mlComputed": true,
|
||||||
|
"dropInSnrPercentage": 30,
|
||||||
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"legacyBSSRate": "enabled",
|
||||||
|
"deauthAttackDetection": null
|
||||||
|
},
|
||||||
|
"is5GHzU": {
|
||||||
|
"model_type": "RadioConfiguration",
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"radioAdminState": "enabled",
|
||||||
|
"fragmentationThresholdBytes": 2346,
|
||||||
|
"uapsdState": "enabled",
|
||||||
|
"stationIsolation": "disabled",
|
||||||
|
"managementRate": {
|
||||||
|
"model_type": "SourceSelectionManagement",
|
||||||
|
"source": "auto",
|
||||||
|
"value": "auto"
|
||||||
|
},
|
||||||
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
|
"model_type": "RadioBestApSettings",
|
||||||
|
"mlComputed": true,
|
||||||
|
"dropInSnrPercentage": 30,
|
||||||
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"legacyBSSRate": "enabled",
|
||||||
|
"deauthAttackDetection": null
|
||||||
|
},
|
||||||
|
"is5GHzL": {
|
||||||
|
"model_type": "RadioConfiguration",
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"radioAdminState": "enabled",
|
||||||
|
"fragmentationThresholdBytes": 2346,
|
||||||
|
"uapsdState": "enabled",
|
||||||
|
"stationIsolation": "disabled",
|
||||||
|
"managementRate": {
|
||||||
|
"model_type": "SourceSelectionManagement",
|
||||||
|
"source": "auto",
|
||||||
|
"value": "auto"
|
||||||
|
},
|
||||||
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
|
"model_type": "RadioBestApSettings",
|
||||||
|
"mlComputed": true,
|
||||||
|
"dropInSnrPercentage": 30,
|
||||||
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"legacyBSSRate": "enabled",
|
||||||
|
"deauthAttackDetection": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"latitude": null,
|
||||||
|
"longitude": null,
|
||||||
|
"serial": "21P10C68818122",
|
||||||
|
"createdTimestamp": 1591653239821,
|
||||||
|
"lastModifiedTimestamp": 1591653241398
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,61 +1,60 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Location",
|
"model_type" : "Location",
|
||||||
"id": 8,
|
"id" : 8,
|
||||||
"parentId": 0,
|
"parentId" : 0,
|
||||||
"locationType": "SITE",
|
"locationType" : "SITE",
|
||||||
"customerId": 2,
|
"customerId" : 2,
|
||||||
"name": "Ottawa",
|
"name" : "Ottawa",
|
||||||
"details": {
|
"details" : {
|
||||||
"model_type": "LocationDetails",
|
"model_type" : "LocationDetails",
|
||||||
"countryCode": "CA",
|
"countryCode" : "ca",
|
||||||
"dailyActivityDetails": {
|
"maintenanceWindow" : null,
|
||||||
"SUNDAY": {
|
"rrmEnabled" : true,
|
||||||
"model_type": "LocationActivityDetails",
|
"dailyActivityDetails" : {
|
||||||
"busyTime": "13:30",
|
"SUNDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"MONDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"MONDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"TUESDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"TUESDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"WEDNESDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"WEDNESDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"THURSDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"THURSDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"FRIDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"FRIDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
},
|
"quietTime" : "3:30",
|
||||||
"SATURDAY": {
|
"timezone" : "US/Eastern"
|
||||||
"model_type": "LocationActivityDetails",
|
},
|
||||||
"busyTime": "13:30",
|
"SATURDAY" : {
|
||||||
"quietTime": "3:00",
|
"model_type" : "LocationActivityDetails",
|
||||||
"timezone": "US/Eastern"
|
"busyTime" : "13:30",
|
||||||
}
|
"quietTime" : "3:30",
|
||||||
},
|
"timezone" : "US/Eastern"
|
||||||
"maintenanceWindow": null,
|
}
|
||||||
"rrmEnabled": true,
|
}
|
||||||
"timezone": "US/Eastern"
|
},
|
||||||
},
|
"createdTimestamp" : 1590607043540,
|
||||||
"createdTimestamp": 1612285243534,
|
"lastModifiedTimestamp" : 1590607043540
|
||||||
"lastModifiedTimestamp": 1612285243534
|
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 8,
|
"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",
|
||||||
@@ -37,22 +42,15 @@
|
|||||||
"bestAPSteerType": "both"
|
"bestAPSteerType": "both"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"greTunnelConfigurations": [
|
|
||||||
{
|
|
||||||
"model_type": "GreTunnelConfiguration",
|
|
||||||
"greTunnelName": "gre1",
|
|
||||||
"greRemoteInetAddr": "192.168.1.101",
|
|
||||||
"vlanIdsInGreTunnel": [
|
|
||||||
100
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"profileType": "equipment_ap"
|
"profileType": "equipment_ap"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1612285248925,
|
"createdTimestamp": 1606778369934,
|
||||||
"lastModifiedTimestamp": 1612285628377,
|
"lastModifiedTimestamp": 1606778443413,
|
||||||
"childProfileIds": [
|
"childProfileIds": [
|
||||||
2,
|
16,
|
||||||
4
|
5,
|
||||||
|
10,
|
||||||
|
11,
|
||||||
|
15
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,58 +1,135 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 5,
|
"id": 14,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "captive_portal",
|
"profileType": "captive_portal",
|
||||||
"name": "Captive-portal",
|
"name": "Captive-portal",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "CaptivePortalConfiguration",
|
"model_type": "CaptivePortalConfiguration",
|
||||||
"name": "Default",
|
"name": "Captive-portal",
|
||||||
"browserTitle": "Captive-portal",
|
"browserTitle": "Access the network as Guest",
|
||||||
"headerContent": "Captive Portal",
|
"headerContent": "Captive Portal",
|
||||||
"userAcceptancePolicy": "Please agree to the following terms for using this network:",
|
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||||
"successPageMarkdownText": "You are now authorized and connected to the network.",
|
"successPageMarkdownText": "Welcome to the network",
|
||||||
"redirectURL": "https://www.google.com",
|
"redirectURL": "",
|
||||||
"externalCaptivePortalURL": null,
|
"externalCaptivePortalURL": null,
|
||||||
"sessionTimeoutInMinutes": 10,
|
"sessionTimeoutInMinutes": 60,
|
||||||
"logoFile": {
|
"logoFile": null,
|
||||||
"model_type": "ManagedFileInfo",
|
"backgroundFile": null,
|
||||||
"md5checksum": null,
|
"walledGardenAllowlist": [],
|
||||||
"lastModifiedTimestamp": null,
|
"usernamePasswordFile": {
|
||||||
"apExportUrl": "/filestore/tip-logo-mobile",
|
"model_type": "ManagedFileInfo",
|
||||||
"fileCategory": "CaptivePortalLogo",
|
"md5checksum": null,
|
||||||
"fileType": "PNG",
|
"lastModifiedTimestamp": null,
|
||||||
"altSlot": false
|
"apExportUrl": "userList",
|
||||||
},
|
"fileCategory": "UsernamePasswordList",
|
||||||
"backgroundFile": {
|
"fileType": "TEXT",
|
||||||
"model_type": "ManagedFileInfo",
|
"altSlot": true
|
||||||
"md5checksum": null,
|
},
|
||||||
"lastModifiedTimestamp": null,
|
"authenticationType": "guest",
|
||||||
"apExportUrl": "/filestore/tip-logo",
|
"radiusAuthMethod": "CHAP",
|
||||||
"fileCategory": "CaptivePortalBackground",
|
"maxUsersWithSameCredentials": 42,
|
||||||
"fileType": "PNG",
|
"externalPolicyFile": null,
|
||||||
"altSlot": false
|
"backgroundPosition": "left_top",
|
||||||
},
|
"backgroundRepeat": "no_repeat",
|
||||||
"walledGardenAllowlist": [
|
"radiusServiceName": null,
|
||||||
],
|
"expiryType": "unlimited",
|
||||||
"usernamePasswordFile": null,
|
"userList": [
|
||||||
"authenticationType": "guest",
|
{
|
||||||
"radiusAuthMethod": "CHAP",
|
"model_type": "TimedAccessUserRecord",
|
||||||
"maxUsersWithSameCredentials": 3,
|
"username": "customer",
|
||||||
"externalPolicyFile": null,
|
"password": "testing123",
|
||||||
"backgroundPosition": "left_top",
|
"activationTime": 1602183994956,
|
||||||
"backgroundRepeat": "no_repeat",
|
"expirationTime": 1602212794956,
|
||||||
"radiusServiceId": 0,
|
"numDevices": 1,
|
||||||
"expiryType": "time_limited",
|
"userDetails": {
|
||||||
"userList": [
|
"model_type": "TimedAccessUserDetails",
|
||||||
],
|
"firstName": "Pac",
|
||||||
"macAllowList": [
|
"lastName": "Man",
|
||||||
],
|
"passwordNeedsReset": false
|
||||||
"profileType": "captive_portal"
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upO",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4e"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer",
|
||||||
|
"password": "testing123",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602187594957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Q",
|
||||||
|
"lastName": "Bert",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqho",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:68"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602788794957,
|
||||||
|
"numDevices": 1,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Duke",
|
||||||
|
"lastName": "Nukem",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upN",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4d"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602270394957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Missile",
|
||||||
|
"lastName": "Commander",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqhj",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:63"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"macAllowList": [],
|
||||||
|
"profileType": "captive_portal"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1611857459118,
|
"createdTimestamp": 1602183994959,
|
||||||
"lastModifiedTimestamp": 1611857459118,
|
"lastModifiedTimestamp": 1602183994959,
|
||||||
"childProfileIds": [
|
"childProfileIds": []
|
||||||
]
|
}
|
||||||
}
|
]
|
||||||
]
|
|
||||||
@@ -1,71 +1,71 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 37,
|
"id": 24,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "passpoint",
|
"profileType": "passpoint",
|
||||||
"name": "hotspot20-profile-2021-01-21T21:28:59.171Z",
|
"name": "TipWlan-Passpoint-Config",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "PasspointProfile",
|
"model_type": "PasspointProfile",
|
||||||
"enableInterworkingAndHs20": true,
|
"enableInterworkingAndHs20": true,
|
||||||
"hessid": null,
|
"hessid": null,
|
||||||
"passpointAccessNetworkType": "free_public_network",
|
"passpointAccessNetworkType": "free_public_network",
|
||||||
"passpointNetworkAuthenticationType": "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": "PasspointConnectionCapability",
|
"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,
|
||||||
"associatedAccessSsidProfileIds": [
|
"associatedAccessSsidProfileIds": [
|
||||||
32
|
15
|
||||||
],
|
],
|
||||||
"osuSsidProfileId": 31,
|
"osuSsidProfileId": 16,
|
||||||
"passpointOperatorProfileId": 34,
|
"passpointOperatorProfileId": 17,
|
||||||
"passpointVenueProfileId": 33,
|
"passpointVenueProfileId": 18,
|
||||||
"passpointOsuProviderProfileIds": [
|
"passpointOsuProviderProfileIds": [
|
||||||
35,
|
19,
|
||||||
36
|
20
|
||||||
],
|
],
|
||||||
"accessNetworkType": "free_public_network",
|
"accessNetworkType": "free_public_network",
|
||||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||||
"profileType": "passpoint"
|
"profileType": "passpoint"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 0,
|
"createdTimestamp": 1606778370807,
|
||||||
"lastModifiedTimestamp": 1611264539331,
|
"lastModifiedTimestamp": 1606778370807,
|
||||||
"childProfileIds": [
|
"childProfileIds": [
|
||||||
33,
|
17,
|
||||||
34,
|
18,
|
||||||
35,
|
19,
|
||||||
36
|
20
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,263 +1,270 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 35,
|
"id": 19,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "passpoint_osu_id_provider",
|
"profileType": "passpoint_osu_id_provider",
|
||||||
"name": "provider1-profile-2021-01-21T21:28:59.057Z",
|
"name": "TipWlan-Passpoint-OSU-Provider",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "PasspointOsuProviderProfile",
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
"mccMncList": [
|
"domainName": "rogers.com",
|
||||||
{
|
"mccMncList": [
|
||||||
"model_type": "PasspointMccMnc",
|
{
|
||||||
"mcc": 302,
|
"model_type": "PasspointMccMnc",
|
||||||
"mnc": 720,
|
"mcc": 302,
|
||||||
"iso": "ca",
|
"mnc": 720,
|
||||||
"country": "Canada",
|
"iso": "ca",
|
||||||
"countryCode": 1,
|
"country": "Canada",
|
||||||
"network": "Rogers AT&T Wireless",
|
"countryCode": 1,
|
||||||
"mccMncPairing": "302,720"
|
"network": "Rogers AT&T Wireless",
|
||||||
}
|
"mccMncPairing": "302,720"
|
||||||
],
|
}
|
||||||
"naiRealmList": [
|
],
|
||||||
{
|
"naiRealmList": [
|
||||||
"model_type": "PasspointNaiRealmInformation",
|
{
|
||||||
"naiRealms": [
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
"rogers.com"
|
"naiRealms": [
|
||||||
],
|
"rogers.com"
|
||||||
"encoding": 0,
|
],
|
||||||
"eapMethods": [
|
"encoding": 0,
|
||||||
"EAP-TTLS with username/password",
|
"eapMethods": [
|
||||||
"EAP-TLS with certificate"
|
"EAP-TTLS with username/password",
|
||||||
],
|
"EAP-TLS with certificate"
|
||||||
"eapMap": {
|
],
|
||||||
"EAP-TTLS with username/password": [
|
"eapMap": {
|
||||||
"Credential Type:username/password",
|
"EAP-TTLS with username/password": [
|
||||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
"Credential Type:username/password",
|
||||||
],
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
"EAP-TLS with certificate": [
|
],
|
||||||
"Credential Type:Certificate"
|
"EAP-TLS with certificate": [
|
||||||
]
|
"Credential Type:Certificate"
|
||||||
}
|
]
|
||||||
}
|
}
|
||||||
],
|
}
|
||||||
"osuIconList": [
|
],
|
||||||
{
|
"osuIconList": [
|
||||||
"model_type": "PasspointOsuIcon",
|
{
|
||||||
"iconWidth": 32,
|
"model_type": "PasspointOsuIcon",
|
||||||
"iconHeight": 32,
|
"iconWidth": 32,
|
||||||
"languageCode": "eng",
|
"iconHeight": 32,
|
||||||
"iconLocale": "en_CA",
|
"languageCode": "eng",
|
||||||
"iconName": "icon32eng",
|
"iconLocale": "en_CA",
|
||||||
"filePath": "/tmp/icon32eng.png",
|
"iconName": "icon32eng",
|
||||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
"filePath": "/tmp/icon32eng.png",
|
||||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
},
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
{
|
},
|
||||||
"model_type": "PasspointOsuIcon",
|
{
|
||||||
"iconWidth": 32,
|
"model_type": "PasspointOsuIcon",
|
||||||
"iconHeight": 32,
|
"iconWidth": 32,
|
||||||
"languageCode": "fra",
|
"iconHeight": 32,
|
||||||
"iconLocale": "fr_CA",
|
"languageCode": "fra",
|
||||||
"iconName": "icon32fra",
|
"iconLocale": "fr_CA",
|
||||||
"filePath": "/tmp/icon32fra.png",
|
"iconName": "icon32fra",
|
||||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
"filePath": "/tmp/icon32fra.png",
|
||||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
},
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
{
|
},
|
||||||
"model_type": "PasspointOsuIcon",
|
{
|
||||||
"iconWidth": 32,
|
"model_type": "PasspointOsuIcon",
|
||||||
"iconHeight": 32,
|
"iconWidth": 32,
|
||||||
"languageCode": "eng",
|
"iconHeight": 32,
|
||||||
"iconLocale": "en_US",
|
"languageCode": "eng",
|
||||||
"iconName": "icon32usa",
|
"iconLocale": "en_US",
|
||||||
"filePath": "/tmp/icon32usa.png",
|
"iconName": "icon32usa",
|
||||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
"filePath": "/tmp/icon32usa.png",
|
||||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
}
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
],
|
}
|
||||||
"osuServerUri": "https://example.com/osu/rogers",
|
],
|
||||||
"osuFriendlyName": [
|
"osuServerUri": "https://example.com/osu/rogers",
|
||||||
{
|
"osuFriendlyName": [
|
||||||
"model_type": "PasspointDuple",
|
{
|
||||||
"locale": "eng",
|
"model_type": "PasspointDuple",
|
||||||
"dupleIso3Language": "eng",
|
"locale": "en_CA",
|
||||||
"dupleName": "Example provider rogers",
|
"dupleIso3Language": "eng",
|
||||||
"defaultDupleSeparator": ":",
|
"dupleName": "Example provider rogers",
|
||||||
"asDuple": "eng:Example provider rogers"
|
"defaultDupleSeparator": ":",
|
||||||
},
|
"asDuple": "eng:Example provider rogers"
|
||||||
{
|
},
|
||||||
"model_type": "PasspointDuple",
|
{
|
||||||
"locale": "fra",
|
"model_type": "PasspointDuple",
|
||||||
"dupleIso3Language": "fra",
|
"locale": "fr_CA",
|
||||||
"dupleName": "Exemple de fournisseur rogers",
|
"dupleIso3Language": "fra",
|
||||||
"defaultDupleSeparator": ":",
|
"dupleName": "Exemple de fournisseur rogers",
|
||||||
"asDuple": "fra:Exemple de fournisseur rogers"
|
"defaultDupleSeparator": ":",
|
||||||
}
|
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||||
],
|
}
|
||||||
"osuNaiStandalone": "anonymous@rogers.com",
|
],
|
||||||
"osuNaiShared": "anonymous@rogers.com",
|
"osuNaiStandalone": "anonymous@rogers.com",
|
||||||
"osuMethodList": [
|
"osuNaiShared": "anonymous@rogers.com",
|
||||||
1,
|
"osuMethodList": [
|
||||||
0
|
1,
|
||||||
],
|
0
|
||||||
"osuServiceDescription": [
|
],
|
||||||
{
|
"osuServiceDescription": [
|
||||||
"model_type": "PasspointDuple",
|
{
|
||||||
"locale": "eng",
|
"model_type": "PasspointDuple",
|
||||||
"dupleIso3Language": "eng",
|
"locale": "en_CA",
|
||||||
"dupleName": "Example services rogers",
|
"dupleIso3Language": "eng",
|
||||||
"defaultDupleSeparator": ":",
|
"dupleName": "Example services rogers",
|
||||||
"asDuple": "eng:Example services rogers"
|
"defaultDupleSeparator": ":",
|
||||||
},
|
"asDuple": "eng:Example services rogers"
|
||||||
{
|
},
|
||||||
"model_type": "PasspointDuple",
|
{
|
||||||
"locale": "fra",
|
"model_type": "PasspointDuple",
|
||||||
"dupleIso3Language": "fra",
|
"locale": "fr_CA",
|
||||||
"dupleName": "Exemples de services rogers",
|
"dupleIso3Language": "fra",
|
||||||
"defaultDupleSeparator": ":",
|
"dupleName": "Exemples de services rogers",
|
||||||
"asDuple": "fra:Exemples de services rogers"
|
"defaultDupleSeparator": ":",
|
||||||
}
|
"asDuple": "fra:Exemples de services rogers"
|
||||||
],
|
}
|
||||||
"roamingOi": [
|
],
|
||||||
"BAA2D00100",
|
"roamingOi": [
|
||||||
"BAA2D00000"
|
1,
|
||||||
],
|
2,
|
||||||
"profileType": "passpoint_osu_id_provider"
|
3,
|
||||||
},
|
4
|
||||||
"createdTimestamp": 1611264539070,
|
],
|
||||||
"lastModifiedTimestamp": 1611264539070,
|
"profileType": "passpoint_osu_id_provider"
|
||||||
"childProfileIds": []
|
},
|
||||||
},
|
"createdTimestamp": 1606778370345,
|
||||||
{
|
"lastModifiedTimestamp": 1606778370345,
|
||||||
"model_type": "Profile",
|
"childProfileIds": [
|
||||||
"id": 36,
|
]
|
||||||
"customerId": 2,
|
},
|
||||||
"profileType": "passpoint_osu_id_provider",
|
{
|
||||||
"name": "provider2-profile-2021-01-21T21:28:59.118Z",
|
"model_type": "Profile",
|
||||||
"details": {
|
"id": 20,
|
||||||
"model_type": "PasspointOsuProviderProfile",
|
"customerId": 2,
|
||||||
"mccMncList": [
|
"profileType": "passpoint_osu_id_provider",
|
||||||
{
|
"name": "TipWlan-Passpoint-OSU-Provider-2",
|
||||||
"model_type": "PasspointMccMnc",
|
"details": {
|
||||||
"mcc": 302,
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
"mnc": 220,
|
"domainName": "telus.com",
|
||||||
"iso": "ca",
|
"mccMncList": [
|
||||||
"country": "Canada",
|
{
|
||||||
"countryCode": 1,
|
"model_type": "PasspointMccMnc",
|
||||||
"network": "Telus Mobility",
|
"mcc": 302,
|
||||||
"mccMncPairing": "302,220"
|
"mnc": 220,
|
||||||
}
|
"iso": "ca",
|
||||||
],
|
"country": "Canada",
|
||||||
"naiRealmList": [
|
"countryCode": 1,
|
||||||
{
|
"network": "Telus Mobility",
|
||||||
"model_type": "PasspointNaiRealmInformation",
|
"mccMncPairing": "302,220"
|
||||||
"naiRealms": [
|
}
|
||||||
"telus.com"
|
],
|
||||||
],
|
"naiRealmList": [
|
||||||
"encoding": 0,
|
{
|
||||||
"eapMethods": [
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
"EAP-TTLS with username/password",
|
"naiRealms": [
|
||||||
"EAP-TLS with certificate"
|
"telus.com"
|
||||||
],
|
],
|
||||||
"eapMap": {
|
"encoding": 0,
|
||||||
"EAP-TTLS with username/password": [
|
"eapMethods": [
|
||||||
"Credential Type:username/password",
|
"EAP-TTLS with username/password",
|
||||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
"EAP-TLS with certificate"
|
||||||
],
|
],
|
||||||
"EAP-TLS with certificate": [
|
"eapMap": {
|
||||||
"Credential Type:Certificate"
|
"EAP-TTLS with username/password": [
|
||||||
]
|
"Credential Type:username/password",
|
||||||
}
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
}
|
],
|
||||||
],
|
"EAP-TLS with certificate": [
|
||||||
"osuIconList": [
|
"Credential Type:Certificate"
|
||||||
{
|
]
|
||||||
"model_type": "PasspointOsuIcon",
|
}
|
||||||
"iconWidth": 32,
|
}
|
||||||
"iconHeight": 32,
|
],
|
||||||
"languageCode": "eng",
|
"osuIconList": [
|
||||||
"iconLocale": "en_CA",
|
{
|
||||||
"iconName": "icon32eng",
|
"model_type": "PasspointOsuIcon",
|
||||||
"filePath": "/tmp/icon32eng.png",
|
"iconWidth": 32,
|
||||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
"iconHeight": 32,
|
||||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
"languageCode": "eng",
|
||||||
},
|
"iconLocale": "en_CA",
|
||||||
{
|
"iconName": "icon32eng",
|
||||||
"model_type": "PasspointOsuIcon",
|
"filePath": "/tmp/icon32eng.png",
|
||||||
"iconWidth": 32,
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
"iconHeight": 32,
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
"languageCode": "fra",
|
},
|
||||||
"iconLocale": "fr_CA",
|
{
|
||||||
"iconName": "icon32fra",
|
"model_type": "PasspointOsuIcon",
|
||||||
"filePath": "/tmp/icon32fra.png",
|
"iconWidth": 32,
|
||||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
"iconHeight": 32,
|
||||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
"languageCode": "fra",
|
||||||
},
|
"iconLocale": "fr_CA",
|
||||||
{
|
"iconName": "icon32fra",
|
||||||
"model_type": "PasspointOsuIcon",
|
"filePath": "/tmp/icon32fra.png",
|
||||||
"iconWidth": 32,
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
"iconHeight": 32,
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
"languageCode": "eng",
|
},
|
||||||
"iconLocale": "en_US",
|
{
|
||||||
"iconName": "icon32usa",
|
"model_type": "PasspointOsuIcon",
|
||||||
"filePath": "/tmp/icon32usa.png",
|
"iconWidth": 32,
|
||||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
"iconHeight": 32,
|
||||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
"languageCode": "eng",
|
||||||
}
|
"iconLocale": "en_US",
|
||||||
],
|
"iconName": "icon32usa",
|
||||||
"osuServerUri": "https://example.com/osu/telus",
|
"filePath": "/tmp/icon32usa.png",
|
||||||
"osuFriendlyName": [
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
{
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
"model_type": "PasspointDuple",
|
}
|
||||||
"locale": "eng",
|
],
|
||||||
"dupleIso3Language": "eng",
|
"osuServerUri": "https://example.com/osu/telus",
|
||||||
"dupleName": "Example provider telus",
|
"osuFriendlyName": [
|
||||||
"defaultDupleSeparator": ":",
|
{
|
||||||
"asDuple": "eng:Example provider telus"
|
"model_type": "PasspointDuple",
|
||||||
},
|
"locale": "en_CA",
|
||||||
{
|
"dupleIso3Language": "eng",
|
||||||
"model_type": "PasspointDuple",
|
"dupleName": "Example provider telus",
|
||||||
"locale": "fra",
|
"defaultDupleSeparator": ":",
|
||||||
"dupleIso3Language": "fra",
|
"asDuple": "eng:Example provider telus"
|
||||||
"dupleName": "Exemple de fournisseur telus",
|
},
|
||||||
"defaultDupleSeparator": ":",
|
{
|
||||||
"asDuple": "fra:Exemple de fournisseur telus"
|
"model_type": "PasspointDuple",
|
||||||
}
|
"locale": "fr_CA",
|
||||||
],
|
"dupleIso3Language": "fra",
|
||||||
"osuNaiStandalone": "anonymous@telus.com",
|
"dupleName": "Exemple de fournisseur telus",
|
||||||
"osuNaiShared": "anonymous@telus.com",
|
"defaultDupleSeparator": ":",
|
||||||
"osuMethodList": [
|
"asDuple": "fra:Exemple de fournisseur telus"
|
||||||
1,
|
}
|
||||||
0
|
],
|
||||||
],
|
"osuNaiStandalone": "anonymous@telus.com",
|
||||||
"osuServiceDescription": [
|
"osuNaiShared": "anonymous@telus.com",
|
||||||
{
|
"osuMethodList": [
|
||||||
"model_type": "PasspointDuple",
|
1,
|
||||||
"locale": "eng",
|
0
|
||||||
"dupleIso3Language": "eng",
|
],
|
||||||
"dupleName": "Example services telus",
|
"osuServiceDescription": [
|
||||||
"defaultDupleSeparator": ":",
|
{
|
||||||
"asDuple": "eng:Example services telus"
|
"model_type": "PasspointDuple",
|
||||||
},
|
"locale": "en_CA",
|
||||||
{
|
"dupleIso3Language": "eng",
|
||||||
"model_type": "PasspointDuple",
|
"dupleName": "Example services telus",
|
||||||
"locale": "fra",
|
"defaultDupleSeparator": ":",
|
||||||
"dupleIso3Language": "fra",
|
"asDuple": "eng:Example services telus"
|
||||||
"dupleName": "Exemples de services telus",
|
},
|
||||||
"defaultDupleSeparator": ":",
|
{
|
||||||
"asDuple": "fra:Exemples de services telus"
|
"model_type": "PasspointDuple",
|
||||||
}
|
"locale": "fr_CA",
|
||||||
],
|
"dupleIso3Language": "fra",
|
||||||
"roamingOi": [
|
"dupleName": "Exemples de services telus",
|
||||||
"004096",
|
"defaultDupleSeparator": ":",
|
||||||
"005014",
|
"asDuple": "fra:Exemples de services telus"
|
||||||
"F4F5E8F5F4"
|
}
|
||||||
],
|
],
|
||||||
"profileType": "passpoint_osu_id_provider"
|
"roamingOi": [
|
||||||
},
|
1,
|
||||||
"createdTimestamp": 1611264539131,
|
2,
|
||||||
"lastModifiedTimestamp": 1611264539131,
|
3,
|
||||||
"childProfileIds": []
|
4
|
||||||
}
|
],
|
||||||
]
|
"profileType": "passpoint_osu_id_provider"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1606778370351,
|
||||||
|
"lastModifiedTimestamp": 1606778370351,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|||||||
@@ -1,41 +1,37 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 34,
|
"id": 17,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "passpoint_operator",
|
"profileType": "passpoint_operator",
|
||||||
"name": "operator-profile-2021-01-21T21:28:58.994Z",
|
"name": "TipWlan-Passpoint-Operator",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "PasspointOperatorProfile",
|
"model_type": "PasspointOperatorProfile",
|
||||||
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||||
"x509CertificateLocation": "/etc/ca.pem",
|
"x509CertificateLocation": "/etc/ca.pem",
|
||||||
"operatorFriendlyName": [
|
"operatorFriendlyName": [
|
||||||
{
|
{
|
||||||
"model_type": "PasspointDuple",
|
"model_type": "PasspointDuple",
|
||||||
"locale": "fra",
|
"locale": "en_CA",
|
||||||
"dupleIso3Language": "fra",
|
"dupleIso3Language": "eng",
|
||||||
"dupleName": "Nom de l'opérateur convivial par défaut",
|
"dupleName": "Default friendly passpoint_operator name",
|
||||||
"defaultDupleSeparator": ":",
|
"defaultDupleSeparator": ":",
|
||||||
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model_type": "PasspointDuple",
|
"model_type": "PasspointDuple",
|
||||||
"locale": "eng",
|
"locale": "fr_CA",
|
||||||
"dupleIso3Language": "eng",
|
"dupleIso3Language": "fra",
|
||||||
"dupleName": "Default friendly passpoint_operator name",
|
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||||
"defaultDupleSeparator": ":",
|
"defaultDupleSeparator": ":",
|
||||||
"asDuple": "eng:Default friendly passpoint_operator name"
|
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"domainNameList": [
|
"profileType": "passpoint_operator"
|
||||||
"bell.ca",
|
},
|
||||||
"telus.com",
|
"createdTimestamp": 1606778369945,
|
||||||
"rogers.com"
|
"lastModifiedTimestamp": 1606778369945,
|
||||||
],
|
"childProfileIds": [
|
||||||
"profileType": "passpoint_operator"
|
]
|
||||||
},
|
}
|
||||||
"createdTimestamp": 1611264539004,
|
]
|
||||||
"lastModifiedTimestamp": 1611264539004,
|
|
||||||
"childProfileIds": []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|||||||
@@ -1,24 +1,34 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "radius",
|
"profileType": "radius",
|
||||||
"name": "Radius-Profile",
|
"name": "Radius-Profile",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "RadiusProfile",
|
"model_type": "RadiusProfile",
|
||||||
"primaryRadiusAuthServer": {
|
"subnetConfiguration": null,
|
||||||
"model_type": "RadiusServer",
|
"serviceRegionMap": {
|
||||||
"ipAddress": "192.168.0.1",
|
"Ottawa": {
|
||||||
"secret": "testing123",
|
"model_type": "RadiusServiceRegion",
|
||||||
"port": 1812,
|
"serverMap": {
|
||||||
"timeout": null
|
"Radius-Profile": [
|
||||||
},
|
{
|
||||||
"profileType": "radius"
|
"model_type": "RadiusServer",
|
||||||
},
|
"ipAddress": "192.168.0.1",
|
||||||
"createdTimestamp": 1611262628767,
|
"secret": "testing123",
|
||||||
"lastModifiedTimestamp": 1611262628767,
|
"authPort": 1812,
|
||||||
"childProfileIds": [
|
"timeout": null
|
||||||
]
|
}
|
||||||
}
|
]
|
||||||
]
|
},
|
||||||
|
"regionName": "Ottawa"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profileType": "radius"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1601961451668,
|
||||||
|
"lastModifiedTimestamp": 1601961451668,
|
||||||
|
"childProfileIds": []
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 4,
|
"id": 11,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "rf",
|
"profileType": "rf",
|
||||||
"name": "TipWlan-rf",
|
"name": "TipWlan-rf",
|
||||||
@@ -198,7 +198,7 @@
|
|||||||
},
|
},
|
||||||
"profileType": "rf"
|
"profileType": "rf"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1612285248650,
|
"createdTimestamp": 1606778369933,
|
||||||
"lastModifiedTimestamp": 1612285248650,
|
"lastModifiedTimestamp": 1606778369933,
|
||||||
"childProfileIds": []
|
"childProfileIds": []
|
||||||
}
|
}
|
||||||
@@ -1,75 +1,203 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 2,
|
"id": 5,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "ssid",
|
"profileType": "ssid",
|
||||||
"name": "TipWlan-cloud-3-radios",
|
"name": "TipWlan-cloud-3-radios",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "SsidConfiguration",
|
"model_type": "SsidConfiguration",
|
||||||
"ssid": "TipWlan-cloud-3-radios",
|
"ssid": "TipWlan-cloud-3-radios",
|
||||||
"appliedRadios": [
|
"appliedRadios": [
|
||||||
"is5GHzU",
|
"is5GHzL",
|
||||||
"is2dot4GHz",
|
"is2dot4GHz",
|
||||||
"is5GHzL"
|
"is5GHzU"
|
||||||
],
|
],
|
||||||
"ssidAdminState": "enabled",
|
"ssidAdminState": "enabled",
|
||||||
"secureMode": "wpa2OnlyPSK",
|
"secureMode": "wpa2OnlyPSK",
|
||||||
"vlanId": 1,
|
"vlanId": 1,
|
||||||
"keyStr": "openwifi",
|
"keyStr": "openwifi",
|
||||||
"broadcastSsid": "enabled",
|
"broadcastSsid": "enabled",
|
||||||
"keyRefresh": 0,
|
"keyRefresh": 0,
|
||||||
"noLocalSubnets": false,
|
"noLocalSubnets": false,
|
||||||
"radiusServiceId": 0,
|
"radiusServiceName": null,
|
||||||
"radiusAcountingServiceInterval": 60,
|
"radiusAccountingServiceName": null,
|
||||||
"captivePortalId": null,
|
"radiusAcountingServiceInterval": null,
|
||||||
"bandwidthLimitDown": 0,
|
"captivePortalId": null,
|
||||||
"bandwidthLimitUp": 0,
|
"bandwidthLimitDown": 0,
|
||||||
"clientBandwidthLimitDown": 0,
|
"bandwidthLimitUp": 0,
|
||||||
"clientBandwidthLimitUp": 0,
|
"clientBandwidthLimitDown": 0,
|
||||||
"videoTrafficOnly": false,
|
"clientBandwidthLimitUp": 0,
|
||||||
"radioBasedConfigs": {
|
"videoTrafficOnly": false,
|
||||||
"is5GHzU": {
|
"radioBasedConfigs": {
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is5GHzL": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
},
|
"enable80211v": null
|
||||||
"is2dot4GHz": {
|
},
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is2dot4GHz": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
},
|
"enable80211v": null
|
||||||
"is5GHz": {
|
},
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is5GHz": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
},
|
"enable80211v": null
|
||||||
"is5GHzL": {
|
},
|
||||||
"model_type": "RadioBasedSsidConfiguration",
|
"is5GHzU": {
|
||||||
"enable80211r": null,
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
"enable80211k": null,
|
"enable80211r": null,
|
||||||
"enable80211v": null
|
"enable80211k": null,
|
||||||
}
|
"enable80211v": null
|
||||||
},
|
}
|
||||||
"bonjourGatewayProfileId": null,
|
},
|
||||||
"enable80211w": null,
|
"bonjourGatewayProfileId": null,
|
||||||
"wepConfig": null,
|
"enable80211w": null,
|
||||||
"forwardMode": "BRIDGE",
|
"wepConfig": null,
|
||||||
"profileType": "ssid",
|
"forwardMode": "BRIDGE",
|
||||||
"radiusClientConfiguration": {
|
"profileType": "ssid"
|
||||||
"model_type": "RadiusNasConfiguration",
|
},
|
||||||
"nasClientId": "DEFAULT",
|
"createdTimestamp": 1606778369598,
|
||||||
"nasClientIp": "WAN_IP",
|
"lastModifiedTimestamp": 1606778369598,
|
||||||
"userDefinedNasId": null,
|
"childProfileIds": [
|
||||||
"userDefinedNasIp": null,
|
]
|
||||||
"operatorId": null
|
},
|
||||||
}
|
{
|
||||||
},
|
"model_type": "Profile",
|
||||||
"createdTimestamp": 1612285248638,
|
"id": 15,
|
||||||
"lastModifiedTimestamp": 1612285248638,
|
"customerId": 2,
|
||||||
"childProfileIds": []
|
"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": {
|
||||||
|
"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": 1606778369943,
|
||||||
|
"lastModifiedTimestamp": 1606778370811,
|
||||||
|
"childProfileIds": [
|
||||||
|
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": 33,
|
"id": 18,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "passpoint_venue",
|
"profileType": "passpoint_venue",
|
||||||
"name": "venue-profile-2021-01-21T21:28:58.934Z",
|
"name": "TipWlan-Passpoint-Venue",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "PasspointVenueProfile",
|
"model_type": "PasspointVenueProfile",
|
||||||
"venueNameSet": [
|
"venueNameSet": [
|
||||||
{
|
{
|
||||||
"model_type": "PasspointVenueName",
|
"model_type": "PasspointVenueName",
|
||||||
"locale": "fra",
|
"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": "PasspointVenueName",
|
"model_type": "PasspointVenueName",
|
||||||
"locale": "eng",
|
"locale": "en_CA",
|
||||||
"dupleIso3Language": "eng",
|
"dupleIso3Language": "eng",
|
||||||
"dupleName": "Example passpoint_venue",
|
"dupleName": "Example passpoint_venue",
|
||||||
"defaultDupleSeparator": ":",
|
"defaultDupleSeparator": ":",
|
||||||
"venueUrl": "http://www.example.com/info-eng",
|
"venueUrl": "http://www.example.com/info-eng",
|
||||||
"asDuple": "eng:Example passpoint_venue"
|
"asDuple": "eng:Example passpoint_venue"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"venueTypeAssignment": {
|
"venueTypeAssignment": {
|
||||||
"model_type": "PasspointVenueTypeAssignment",
|
"model_type": "PasspointVenueTypeAssignment",
|
||||||
"venueDescription": "Research and Development Facility",
|
"venueDescription": "Research and Development Facility",
|
||||||
"venueGroupId": 2,
|
"venueGroupId": 2,
|
||||||
"venueTypeId": 8
|
"venueTypeId": 8
|
||||||
},
|
},
|
||||||
"profileType": "passpoint_venue"
|
"profileType": "passpoint_venue"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1611264538947,
|
"createdTimestamp": 1606778369950,
|
||||||
"lastModifiedTimestamp": 1611264538947,
|
"lastModifiedTimestamp": 1606778369950,
|
||||||
"childProfileIds": []
|
"childProfileIds": [
|
||||||
}
|
]
|
||||||
]
|
}
|
||||||
|
]
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
<relativePath>../../wlan-cloud-root</relativePath>
|
<relativePath>../../wlan-cloud-root</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>opensync-gateway</artifactId>
|
<artifactId>opensync-gateway</artifactId>
|
||||||
@@ -14,22 +16,22 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>base-container</artifactId>
|
<artifactId>base-container</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>opensync-ext-interface</artifactId>
|
<artifactId>opensync-ext-interface</artifactId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>client-models</artifactId>
|
<artifactId>client-models</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>customer-models</artifactId>
|
<artifactId>customer-models</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.vmware.ovsdb</groupId>
|
<groupId>com.vmware.ovsdb</groupId>
|
||||||
@@ -47,13 +49,13 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>service-metric-service-interface</artifactId>
|
<artifactId>service-metric-service-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>status-service-interface</artifactId>
|
<artifactId>status-service-interface</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>1.1.0-SNAPSHOT</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java-util -->
|
<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java-util -->
|
||||||
|
|||||||
@@ -23,15 +23,6 @@ import com.google.protobuf.Descriptors;
|
|||||||
import com.google.protobuf.MessageOrBuilder;
|
import com.google.protobuf.MessageOrBuilder;
|
||||||
import com.google.protobuf.util.JsonFormat;
|
import com.google.protobuf.util.JsonFormat;
|
||||||
import com.google.protobuf.util.JsonFormat.TypeRegistry;
|
import com.google.protobuf.util.JsonFormat.TypeRegistry;
|
||||||
import com.netflix.servo.DefaultMonitorRegistry;
|
|
||||||
import com.netflix.servo.monitor.BasicCounter;
|
|
||||||
import com.netflix.servo.monitor.BasicTimer;
|
|
||||||
import com.netflix.servo.monitor.Counter;
|
|
||||||
import com.netflix.servo.monitor.MonitorConfig;
|
|
||||||
import com.netflix.servo.monitor.Stopwatch;
|
|
||||||
import com.netflix.servo.monitor.Timer;
|
|
||||||
import com.netflix.servo.tag.TagList;
|
|
||||||
import com.telecominfraproject.wlan.cloudmetrics.CloudMetricsTags;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.OpensyncExternalIntegrationInterface;
|
import com.telecominfraproject.wlan.opensync.external.integration.OpensyncExternalIntegrationInterface;
|
||||||
import com.telecominfraproject.wlan.opensync.util.ZlibUtil;
|
import com.telecominfraproject.wlan.opensync.util.ZlibUtil;
|
||||||
|
|
||||||
@@ -52,30 +43,9 @@ public class OpensyncMqttClient implements ApplicationListener<ContextClosedEven
|
|||||||
|
|
||||||
public static Charset utf8 = Charset.forName("UTF-8");
|
public static Charset utf8 = Charset.forName("UTF-8");
|
||||||
|
|
||||||
private final TagList tags = CloudMetricsTags.commonTags;
|
|
||||||
|
|
||||||
private final Counter messagesReceived = new BasicCounter(
|
|
||||||
MonitorConfig.builder("osgw-mqtt-messagesReceived").withTags(tags).build());
|
|
||||||
|
|
||||||
private final Counter messageBytesReceived = new BasicCounter(
|
|
||||||
MonitorConfig.builder("osgw-mqtt-messageBytesReceived").withTags(tags).build());
|
|
||||||
|
|
||||||
private final Timer timerMessageProcess = new BasicTimer(
|
|
||||||
MonitorConfig.builder("osgw-mqtt-messageProcessTimer").withTags(tags).build());
|
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private OpensyncExternalIntegrationInterface extIntegrationInterface;
|
private OpensyncExternalIntegrationInterface extIntegrationInterface;
|
||||||
|
|
||||||
// dtop: use anonymous constructor to ensure that the following code always
|
|
||||||
// get executed,
|
|
||||||
// even when somebody adds another constructor in here
|
|
||||||
{
|
|
||||||
DefaultMonitorRegistry.getInstance().register(messagesReceived);
|
|
||||||
DefaultMonitorRegistry.getInstance().register(messageBytesReceived);
|
|
||||||
DefaultMonitorRegistry.getInstance().register(timerMessageProcess);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// See https://github.com/fusesource/mqtt-client for the docs
|
// See https://github.com/fusesource/mqtt-client for the docs
|
||||||
//
|
//
|
||||||
@@ -171,7 +141,7 @@ public class OpensyncMqttClient implements ApplicationListener<ContextClosedEven
|
|||||||
// new Topic("#", QoS.AT_LEAST_ONCE),
|
// new Topic("#", QoS.AT_LEAST_ONCE),
|
||||||
// new Topic("test/#", QoS.EXACTLY_ONCE),
|
// new Topic("test/#", QoS.EXACTLY_ONCE),
|
||||||
// new Topic("foo/+/bar", QoS.AT_LEAST_ONCE)
|
// new Topic("foo/+/bar", QoS.AT_LEAST_ONCE)
|
||||||
Topic[] topics = { new Topic("#", QoS.AT_LEAST_ONCE), };
|
Topic[] topics = { new Topic("/ap/+/opensync", QoS.AT_LEAST_ONCE), };
|
||||||
|
|
||||||
futureConnection.subscribe(topics);
|
futureConnection.subscribe(topics);
|
||||||
LOG.info("Subscribed to mqtt topics {}", Arrays.asList(topics));
|
LOG.info("Subscribed to mqtt topics {}", Arrays.asList(topics));
|
||||||
@@ -210,10 +180,6 @@ public class OpensyncMqttClient implements ApplicationListener<ContextClosedEven
|
|||||||
// queue
|
// queue
|
||||||
mqttMsg.ack();
|
mqttMsg.ack();
|
||||||
|
|
||||||
messagesReceived.increment();
|
|
||||||
messageBytesReceived.increment(payload.length);
|
|
||||||
Stopwatch stopwatchTimerMessageProcess = timerMessageProcess.start();
|
|
||||||
|
|
||||||
LOG.trace("received message on topic {} size {}", mqttMsg.getTopic(), payload.length);
|
LOG.trace("received message on topic {} size {}", mqttMsg.getTopic(), payload.length);
|
||||||
|
|
||||||
if (payload[0] == 0x78) {
|
if (payload[0] == 0x78) {
|
||||||
@@ -223,7 +189,6 @@ public class OpensyncMqttClient implements ApplicationListener<ContextClosedEven
|
|||||||
payload = ZlibUtil.decompress(payload);
|
payload = ZlibUtil.decompress(payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// attempt to parse the message as protobuf
|
// attempt to parse the message as protobuf
|
||||||
MessageOrBuilder encodedMsg = null;
|
MessageOrBuilder encodedMsg = null;
|
||||||
try {
|
try {
|
||||||
@@ -233,6 +198,7 @@ public class OpensyncMqttClient implements ApplicationListener<ContextClosedEven
|
|||||||
MQTT_LOG.info("topic = {} Report = {}", mqttMsg.getTopic(),
|
MQTT_LOG.info("topic = {} Report = {}", mqttMsg.getTopic(),
|
||||||
jsonPrinter.print(encodedMsg));
|
jsonPrinter.print(encodedMsg));
|
||||||
|
|
||||||
|
|
||||||
extIntegrationInterface.processMqttMessage(mqttMsg.getTopic(), (Report) encodedMsg);
|
extIntegrationInterface.processMqttMessage(mqttMsg.getTopic(), (Report) encodedMsg);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -265,8 +231,6 @@ public class OpensyncMqttClient implements ApplicationListener<ContextClosedEven
|
|||||||
MQTT_LOG.info("topic = {} message = {}", mqttMsg.getTopic(), msgStr);
|
MQTT_LOG.info("topic = {} message = {}", mqttMsg.getTopic(), msgStr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} finally {
|
|
||||||
stopwatchTimerMessageProcess.stop();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,24 +1,13 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.ovsdb;
|
package com.telecominfraproject.wlan.opensync.ovsdb;
|
||||||
|
|
||||||
import java.util.concurrent.RejectedExecutionHandler;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.concurrent.ScheduledThreadPoolExecutor;
|
|
||||||
import java.util.concurrent.ThreadFactory;
|
|
||||||
import java.util.concurrent.ThreadPoolExecutor;
|
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
import com.netflix.servo.DefaultMonitorRegistry;
|
|
||||||
import com.netflix.servo.monitor.BasicCounter;
|
|
||||||
import com.netflix.servo.monitor.Counter;
|
|
||||||
import com.netflix.servo.monitor.MonitorConfig;
|
|
||||||
import com.netflix.servo.monitor.NumberGauge;
|
|
||||||
import com.netflix.servo.tag.TagList;
|
|
||||||
import com.telecominfraproject.wlan.cloudmetrics.CloudMetricsTags;
|
|
||||||
import com.vmware.ovsdb.service.OvsdbPassiveConnectionListener;
|
import com.vmware.ovsdb.service.OvsdbPassiveConnectionListener;
|
||||||
import com.vmware.ovsdb.service.impl.OvsdbPassiveConnectionListenerImpl;
|
import com.vmware.ovsdb.service.impl.OvsdbPassiveConnectionListenerImpl;
|
||||||
|
|
||||||
@@ -27,68 +16,12 @@ public class OvsdbListenerConfig {
|
|||||||
|
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(OvsdbListenerConfig.class);
|
private static final Logger LOG = LoggerFactory.getLogger(OvsdbListenerConfig.class);
|
||||||
|
|
||||||
private final TagList tags = CloudMetricsTags.commonTags;
|
|
||||||
|
|
||||||
final Counter rejectedTasks = new BasicCounter(MonitorConfig.builder("osgw-ovsdb-rejectedTasks").withTags(tags).build());
|
|
||||||
final Counter submittedTasks = new BasicCounter(MonitorConfig.builder("osgw-ovsdb-submittedTasks").withTags(tags).build());
|
|
||||||
final Counter completedTasks = new BasicCounter(MonitorConfig.builder("osgw-ovsdb-completedTasks").withTags(tags).build());
|
|
||||||
|
|
||||||
private AtomicInteger tasksInFlight = new AtomicInteger(0);
|
|
||||||
|
|
||||||
private final NumberGauge tasksInFlightGauge = new NumberGauge(
|
|
||||||
MonitorConfig.builder("osgw-ovsdb-tasksInFlight").withTags(tags).build(), tasksInFlight);
|
|
||||||
|
|
||||||
// dtop: use anonymous constructor to ensure that the following code always
|
|
||||||
// get executed,
|
|
||||||
// even when somebody adds another constructor in here
|
|
||||||
{
|
|
||||||
DefaultMonitorRegistry.getInstance().register(rejectedTasks);
|
|
||||||
DefaultMonitorRegistry.getInstance().register(submittedTasks);
|
|
||||||
DefaultMonitorRegistry.getInstance().register(completedTasks);
|
|
||||||
DefaultMonitorRegistry.getInstance().register(tasksInFlightGauge);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public OvsdbPassiveConnectionListener ovsdbPassiveConnectionListener(
|
public OvsdbPassiveConnectionListener ovsdbPassiveConnectionListener(
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.listener.threadPoolSize:10}")
|
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.listener.threadPoolSize:10}")
|
||||||
int threadPoolSize) {
|
int threadPoolSize) {
|
||||||
LOG.debug("Configuring OvsdbPassiveConnectionListener with thread pool size {}", threadPoolSize);
|
LOG.debug("Configuring OvsdbPassiveConnectionListener with thread pool size {}", threadPoolSize);
|
||||||
|
ScheduledExecutorService executorService = Executors.newScheduledThreadPool(threadPoolSize);
|
||||||
ThreadFactory threadFactory = new ThreadFactory() {
|
|
||||||
private AtomicInteger thrNum = new AtomicInteger();
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Thread newThread(Runnable r) {
|
|
||||||
Thread thr = new Thread(r, "ovsdb-exec-pool-" + thrNum.incrementAndGet());
|
|
||||||
thr.setDaemon(true);
|
|
||||||
return thr;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
RejectedExecutionHandler rejectedExecHandler = new ThreadPoolExecutor.AbortPolicy() {
|
|
||||||
@Override
|
|
||||||
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
|
|
||||||
rejectedTasks.increment();
|
|
||||||
super.rejectedExecution(r, executor);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(threadPoolSize, threadFactory, rejectedExecHandler) {
|
|
||||||
@Override
|
|
||||||
protected void beforeExecute(Thread t, Runnable r) {
|
|
||||||
submittedTasks.increment();
|
|
||||||
tasksInFlight.incrementAndGet();
|
|
||||||
super.beforeExecute(t, r);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void afterExecute(Runnable r, Throwable t) {
|
|
||||||
completedTasks.increment();
|
|
||||||
tasksInFlight.decrementAndGet();
|
|
||||||
super.afterExecute(r, t);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
OvsdbPassiveConnectionListener listener = new OvsdbPassiveConnectionListenerImpl(executorService);
|
OvsdbPassiveConnectionListener listener = new OvsdbPassiveConnectionListenerImpl(executorService);
|
||||||
return listener;
|
return listener;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,14 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.ovsdb;
|
package com.telecominfraproject.wlan.opensync.ovsdb;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Map.Entry;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.Map.Entry;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.netflix.servo.DefaultMonitorRegistry;
|
|
||||||
import com.netflix.servo.monitor.MonitorConfig;
|
|
||||||
import com.netflix.servo.monitor.Monitors;
|
|
||||||
import com.netflix.servo.monitor.NumberGauge;
|
|
||||||
import com.netflix.servo.tag.TagList;
|
|
||||||
import com.telecominfraproject.wlan.cloudmetrics.CloudMetricsTags;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSession;
|
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSession;
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSessionMapInterface;
|
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSessionMapInterface;
|
||||||
import com.vmware.ovsdb.service.OvsdbClient;
|
import com.vmware.ovsdb.service.OvsdbClient;
|
||||||
@@ -24,23 +17,9 @@ import com.vmware.ovsdb.service.OvsdbClient;
|
|||||||
public class OvsdbSessionMap implements OvsdbSessionMapInterface {
|
public class OvsdbSessionMap implements OvsdbSessionMapInterface {
|
||||||
|
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(OvsdbSessionMap.class);
|
private static final Logger LOG = LoggerFactory.getLogger(OvsdbSessionMap.class);
|
||||||
|
|
||||||
private final TagList tags = CloudMetricsTags.commonTags;
|
|
||||||
|
|
||||||
private AtomicInteger totalEquipmentConnections = new AtomicInteger(0);
|
|
||||||
|
|
||||||
private final NumberGauge totalEquipmentConnectionsGauge = new NumberGauge(
|
|
||||||
MonitorConfig.builder("osgw-totalEquipmentConnections").withTags(tags).build(), totalEquipmentConnections);
|
|
||||||
|
|
||||||
private final ConcurrentHashMap<String, OvsdbSession> connectedClients = new ConcurrentHashMap<>();
|
private final ConcurrentHashMap<String, OvsdbSession> connectedClients = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
// dtop: use anonymous constructor to ensure that the following code always
|
|
||||||
// get executed,
|
|
||||||
// even when somebody adds another constructor in here
|
|
||||||
{
|
|
||||||
DefaultMonitorRegistry.getInstance().register(totalEquipmentConnectionsGauge);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OvsdbSession getSession(String apId) {
|
public OvsdbSession getSession(String apId) {
|
||||||
LOG.info("Get session for AP {}", apId);
|
LOG.info("Get session for AP {}", apId);
|
||||||
@@ -50,11 +29,7 @@ public class OvsdbSessionMap implements OvsdbSessionMapInterface {
|
|||||||
@Override
|
@Override
|
||||||
public OvsdbSession removeSession(String apId) {
|
public OvsdbSession removeSession(String apId) {
|
||||||
LOG.info("Removing session for AP {}", apId);
|
LOG.info("Removing session for AP {}", apId);
|
||||||
OvsdbSession ret = connectedClients.remove(apId);
|
return connectedClients.remove(apId);
|
||||||
if(ret!=null) {
|
|
||||||
totalEquipmentConnections.decrementAndGet();
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -62,7 +37,7 @@ public class OvsdbSessionMap implements OvsdbSessionMapInterface {
|
|||||||
try {
|
try {
|
||||||
LOG.info("Close session for AP {}", apId);
|
LOG.info("Close session for AP {}", apId);
|
||||||
connectedClients.get(apId).getOvsdbClient().shutdown();
|
connectedClients.get(apId).getOvsdbClient().shutdown();
|
||||||
removeSession(apId);
|
connectedClients.remove(apId);
|
||||||
LOG.info("Closed ovsdb session for {}", apId);
|
LOG.info("Closed ovsdb session for {}", apId);
|
||||||
}catch (Exception e) {
|
}catch (Exception e) {
|
||||||
// do nothing
|
// do nothing
|
||||||
@@ -83,8 +58,6 @@ public class OvsdbSessionMap implements OvsdbSessionMapInterface {
|
|||||||
}catch (Exception e) {
|
}catch (Exception e) {
|
||||||
// do nothing
|
// do nothing
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
totalEquipmentConnections.incrementAndGet();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG.info("Created new ovsdb session for {}", apId);
|
LOG.info("Created new ovsdb session for {}", apId);
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -10,13 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.context.annotation.Profile;
|
import org.springframework.context.annotation.Profile;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.netflix.servo.DefaultMonitorRegistry;
|
|
||||||
import com.netflix.servo.monitor.BasicCounter;
|
|
||||||
import com.netflix.servo.monitor.Counter;
|
|
||||||
import com.netflix.servo.monitor.MonitorConfig;
|
|
||||||
import com.netflix.servo.monitor.Monitors;
|
|
||||||
import com.netflix.servo.tag.TagList;
|
|
||||||
import com.telecominfraproject.wlan.cloudmetrics.CloudMetricsTags;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDao;
|
import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDao;
|
||||||
import com.telecominfraproject.wlan.opensync.util.SslUtil;
|
import com.telecominfraproject.wlan.opensync.util.SslUtil;
|
||||||
import com.vmware.ovsdb.callback.ConnectionCallback;
|
import com.vmware.ovsdb.callback.ConnectionCallback;
|
||||||
@@ -31,20 +24,6 @@ public class TipWlanOvsdbRedirector {
|
|||||||
|
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(TipWlanOvsdbRedirector.class);
|
private static final Logger LOG = LoggerFactory.getLogger(TipWlanOvsdbRedirector.class);
|
||||||
|
|
||||||
private final TagList tags = CloudMetricsTags.commonTags;
|
|
||||||
|
|
||||||
private final Counter connectionsAttempted = new BasicCounter(
|
|
||||||
MonitorConfig.builder("osgw-redirector-connectionsAttempted").withTags(tags).build());
|
|
||||||
|
|
||||||
private final Counter connectionsFailed = new BasicCounter(
|
|
||||||
MonitorConfig.builder("osgw-redirector-connectionsFailed").withTags(tags).build());
|
|
||||||
|
|
||||||
private final Counter connectionsCreated = new BasicCounter(
|
|
||||||
MonitorConfig.builder("osgw-redirector-connectionsCreated").withTags(tags).build());
|
|
||||||
|
|
||||||
private final Counter connectionsDropped = new BasicCounter(
|
|
||||||
MonitorConfig.builder("osgw-redirector-connectionsDropped").withTags(tags).build());
|
|
||||||
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.redirector.listenPort:6643}")
|
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.redirector.listenPort:6643}")
|
||||||
private int ovsdbRedirectorListenPort;
|
private int ovsdbRedirectorListenPort;
|
||||||
|
|
||||||
@@ -62,21 +41,10 @@ public class TipWlanOvsdbRedirector {
|
|||||||
listenForConnections();
|
listenForConnections();
|
||||||
}
|
}
|
||||||
|
|
||||||
// dtop: use anonymous constructor to ensure that the following code always
|
|
||||||
// get executed,
|
|
||||||
// even when somebody adds another constructor in here
|
|
||||||
{
|
|
||||||
DefaultMonitorRegistry.getInstance().register(connectionsAttempted);
|
|
||||||
DefaultMonitorRegistry.getInstance().register(connectionsCreated);
|
|
||||||
DefaultMonitorRegistry.getInstance().register(connectionsDropped);
|
|
||||||
DefaultMonitorRegistry.getInstance().register(connectionsFailed);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void listenForConnections() {
|
public void listenForConnections() {
|
||||||
|
|
||||||
ConnectionCallback connectionCallback = new ConnectionCallback() {
|
ConnectionCallback connectionCallback = new ConnectionCallback() {
|
||||||
public void connected(OvsdbClient ovsdbClient) {
|
public void connected(OvsdbClient ovsdbClient) {
|
||||||
connectionsAttempted.increment();
|
|
||||||
String remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress();
|
String remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress();
|
||||||
int localPort = ovsdbClient.getConnectionInfo().getLocalPort();
|
int localPort = ovsdbClient.getConnectionInfo().getLocalPort();
|
||||||
String subjectDn = null;
|
String subjectDn = null;
|
||||||
@@ -86,9 +54,8 @@ public class TipWlanOvsdbRedirector {
|
|||||||
String clientCn = SslUtil.extractCN(subjectDn);
|
String clientCn = SslUtil.extractCN(subjectDn);
|
||||||
LOG.info("ovsdbClient redirector connected from {} on port {} clientCn {}", remoteHost, localPort, clientCn);
|
LOG.info("ovsdbClient redirector connected from {} on port {} clientCn {}", remoteHost, localPort, clientCn);
|
||||||
ovsdbDao.performRedirect(ovsdbClient, clientCn);
|
ovsdbDao.performRedirect(ovsdbClient, clientCn);
|
||||||
connectionsCreated.increment();
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
connectionsFailed.increment();
|
|
||||||
//something is wrong with the SSL or with the redirect
|
//something is wrong with the SSL or with the redirect
|
||||||
ovsdbClient.shutdown();
|
ovsdbClient.shutdown();
|
||||||
return;
|
return;
|
||||||
@@ -96,7 +63,6 @@ public class TipWlanOvsdbRedirector {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void disconnected(OvsdbClient ovsdbClient) {
|
public void disconnected(OvsdbClient ovsdbClient) {
|
||||||
connectionsDropped.increment();
|
|
||||||
String remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress();
|
String remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress();
|
||||||
int localPort = ovsdbClient.getConnectionInfo().getLocalPort();
|
int localPort = ovsdbClient.getConnectionInfo().getLocalPort();
|
||||||
String subjectDn = null;
|
String subjectDn = null;
|
||||||
|
|||||||
@@ -1,81 +0,0 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.TimeoutException;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Insert;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Update;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Function;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
|
||||||
import com.vmware.ovsdb.service.OvsdbClient;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class OvsdbCommandConfig extends OvsdbDaoBase {
|
|
||||||
@Autowired
|
|
||||||
OvsdbGet ovsdbGet;
|
|
||||||
|
|
||||||
void configureCommands(OvsdbClient ovsdbClient, String command, Map<String, String> payload, Long delay,
|
|
||||||
Long duration) {
|
|
||||||
LOG.debug("OvsdbCommandConfig::configureCommands command {}, payload {}, delay {} duration {}", command,
|
|
||||||
payload, delay, duration);
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
Map<String, Value> commandConfigColumns = new HashMap<>();
|
|
||||||
conditions.add(new Condition("command", Function.EQUALS, new Atom<>(command)));
|
|
||||||
commandConfigColumns.put("command", new Atom<>(command));
|
|
||||||
commandConfigColumns.put("payload", com.vmware.ovsdb.protocol.operation.notation.Map.of(payload));
|
|
||||||
commandConfigColumns.put("delay", new Atom<>(delay));
|
|
||||||
commandConfigColumns.put("duration", new Atom<>(duration));
|
|
||||||
commandConfigColumns.put("timestamp", new Atom<>(System.currentTimeMillis()));
|
|
||||||
Row row = new Row(commandConfigColumns);
|
|
||||||
insertOrUpdate(ovsdbClient, command, operations, conditions, row, commandConfigDbTable);
|
|
||||||
try {
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
LOG.debug(
|
|
||||||
"OvsdbCommandConfig::configureCommands successfully configured command {} for duration {} payload {}",
|
|
||||||
command, duration, payload);
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
|
||||||
LOG.error("OvsdbCommandConfig::configureCommands failed.", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update an existing entry, or insert a new one if entry not found
|
|
||||||
* satisfying conditions
|
|
||||||
*
|
|
||||||
* @param ovsdbClient
|
|
||||||
* @param command
|
|
||||||
* @param operations
|
|
||||||
* @param conditions
|
|
||||||
* @param row
|
|
||||||
* @param ovsdbTableName TODO
|
|
||||||
*/
|
|
||||||
void insertOrUpdate(OvsdbClient ovsdbClient, String command, List<Operation> operations, List<Condition> conditions,
|
|
||||||
Row row, String ovsdbTableName) {
|
|
||||||
if (ovsdbGet.getOvsdbTableRowsForCondition(ovsdbClient,commandConfigDbTable,conditions).isEmpty()) {
|
|
||||||
operations.add(new Insert(ovsdbTableName, row));
|
|
||||||
} else {
|
|
||||||
operations.add(new Update(ovsdbTableName, conditions, row));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,306 +0,0 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Map.Entry;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.TimeoutException;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDbStatus;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDeviceType;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpManufId;
|
|
||||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Insert;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Select;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Update;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Function;
|
|
||||||
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.ErrorResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.InsertResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.SelectResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.UpdateResult;
|
|
||||||
import com.vmware.ovsdb.service.OvsdbClient;
|
|
||||||
|
|
||||||
public class OvsdbDaoBase {
|
|
||||||
|
|
||||||
static final int MAX_VIF_PER_FREQ = 8;
|
|
||||||
static final Logger LOG = LoggerFactory.getLogger(OvsdbDaoBase.class);
|
|
||||||
public static final String wifiRouteStateDbTable = "Wifi_Route_State";
|
|
||||||
public static final String wifiMasterStateDbTable = "Wifi_Master_State";
|
|
||||||
public static final String HTTP = "http";
|
|
||||||
public static final String ovsdbName = "Open_vSwitch";
|
|
||||||
public static final String awlanNodeDbTable = "AWLAN_Node";
|
|
||||||
public static final String wifiStatsConfigDbTable = "Wifi_Stats_Config";
|
|
||||||
public static final String interfaceDbTable = "Interface";
|
|
||||||
public static final String portDbTable = "Port";
|
|
||||||
public static final String bridgeDbTable = "Bridge";
|
|
||||||
public static final String wifiRadioConfigDbTable = "Wifi_Radio_Config";
|
|
||||||
public static final String wifiRadioStateDbTable = "Wifi_Radio_State";
|
|
||||||
public static final String wifiVifConfigDbTable = "Wifi_VIF_Config";
|
|
||||||
public static final String wifiVifStateDbTable = "Wifi_VIF_State";
|
|
||||||
public static final String wifiInetConfigDbTable = "Wifi_Inet_Config";
|
|
||||||
public static final String wifiInetStateDbTable = "Wifi_Inet_State";
|
|
||||||
public static final String wifiAssociatedClientsDbTable = "Wifi_Associated_Clients";
|
|
||||||
public static final String wifiRrmConfigDbTable = "Wifi_RRM_Config";
|
|
||||||
public static final String nodeConfigTable = "Node_Config";
|
|
||||||
public static final String nodeStateTable = "Node_State";
|
|
||||||
public static final String dhcpLeasedIpDbTable = "DHCP_leased_IP";
|
|
||||||
public static final String commandConfigDbTable = "Command_Config";
|
|
||||||
public static final String commandStateDbTable = "Command_State";
|
|
||||||
public static final String hotspot20IconConfigDbTable = "Hotspot20_Icon_Config";
|
|
||||||
public static final String hotspot20OsuProvidersDbTable = "Hotspot20_OSU_Providers";
|
|
||||||
public static final String hotspot20ConfigDbTable = "Hotspot20_Config";
|
|
||||||
public static final String radiusConfigDbTable = "Radius_Proxy_Config";
|
|
||||||
public static final String apcConfigDbTable = "APC_Config";
|
|
||||||
public static final String apcStateDbTable = "APC_State";
|
|
||||||
public static final String StartDebugEngineApCommand = "startPortForwardingSession";
|
|
||||||
public static final String StopDebugEngineApCommand = "stopSession";
|
|
||||||
|
|
||||||
public static <T> T getSingleValueFromSet(Row row, String columnName) {
|
|
||||||
|
|
||||||
Set<T> set = row != null ? row.getSetColumn(columnName) : null;
|
|
||||||
T ret = (set != null) && !set.isEmpty() ? set.iterator().next() : null;
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void translateDhcpFpValueToString(Entry<String, Value> c, Map<String, String> rowMap) {
|
|
||||||
if (c.getKey().equals("manuf_id")) {
|
|
||||||
rowMap.put(c.getKey(), DhcpFpManufId.getById(Integer.valueOf(c.getValue().toString())).getName());
|
|
||||||
} else if (c.getKey().equals("device_type")) {
|
|
||||||
rowMap.put(c.getKey(), DhcpFpDeviceType.getById(Integer.valueOf(c.getValue().toString())).getName());
|
|
||||||
} else if (c.getKey().equals("db_status")) {
|
|
||||||
rowMap.put(c.getKey(), DhcpFpDbStatus.getById(Integer.valueOf(c.getValue().toString())).getName());
|
|
||||||
} else {
|
|
||||||
rowMap.put(c.getKey(), c.getValue().toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.managerAddr:3.88.149.10}")
|
|
||||||
String managerIpAddr;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.region:Ottawa}")
|
|
||||||
public String region;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.listenPort:6640}")
|
|
||||||
int ovsdbListenPort;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.externalPort:6640}")
|
|
||||||
int ovsdbExternalPort;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.mqttBroker.address.external:testportal.123wlan.com}")
|
|
||||||
String mqttBrokerAddress;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.mqttBroker.listenPort:1883}")
|
|
||||||
int mqttBrokerListenPort;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.mqttBroker.externalPort:1883}")
|
|
||||||
int mqttBrokerExternalPort;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.timeoutSec:30}")
|
|
||||||
int ovsdbTimeoutSec;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_bridge:lan}")
|
|
||||||
public String bridgeNameVifInterfaces;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_lan_type:bridge}")
|
|
||||||
public String defaultLanInterfaceType;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_lan_name:lan}")
|
|
||||||
public String defaultLanInterfaceName;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_wan_type:bridge}")
|
|
||||||
public String defaultWanInterfaceType;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_wan_name:wan}")
|
|
||||||
public String defaultWanInterfaceName;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_radio0:wlan0}")
|
|
||||||
public String defaultRadio0;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_radio1:wlan1}")
|
|
||||||
public String defaultRadio1;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_radio2:wlan2}")
|
|
||||||
public String defaultRadio2;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-device.radio0:radio0}")
|
|
||||||
public String radio0;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-device.radio1:radio1}")
|
|
||||||
public String radio1;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-device.radio2:radio2}")
|
|
||||||
public String radio2;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.max:8}")
|
|
||||||
public int maxInterfacesPerRadio;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.awlan-node.upgrade_dl_timer:60}")
|
|
||||||
public long upgradeDlTimerSeconds;
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.awlan-node.upgrade_timer:90}")
|
|
||||||
public long upgradeTimerSeconds;
|
|
||||||
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.awlan-node.reboot_or_reset_timer:10}")
|
|
||||||
public long rebootOrResetTimerSeconds;
|
|
||||||
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.externalFileStoreURL:https://localhost:9096}")
|
|
||||||
String externalFileStoreURL;
|
|
||||||
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.fileStoreDirectory:/tmp/tip-wlan-filestore}")
|
|
||||||
String fileStoreDirectoryName;
|
|
||||||
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.defaultReportingIntervalSeconds:60}")
|
|
||||||
public int defaultReportingIntervalSeconds;
|
|
||||||
|
|
||||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.defaultOffChannelReportingIntervalSeconds:120}")
|
|
||||||
public int defaultOffChannelReportingIntervalSeconds;
|
|
||||||
|
|
||||||
public OvsdbDaoBase() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public <T> Set<T> getSet(Row row, String columnName) {
|
|
||||||
|
|
||||||
Set<T> set = row != null ? row.getSetColumn(columnName) : null;
|
|
||||||
|
|
||||||
return set;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateEventReportingInterval(OvsdbClient ovsdbClient, long eventReportingIntervalSeconds) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
|
|
||||||
// turn on stats collection over MQTT: (reporting_interval is in
|
|
||||||
// seconds)
|
|
||||||
// $ ovsh i Wifi_Stats_Config reporting_interval:=10
|
|
||||||
// radio_type:="2.4G" stats_type:="device"
|
|
||||||
|
|
||||||
updateColumns.put("reporting_interval", new Atom<>(eventReportingIntervalSeconds));
|
|
||||||
updateColumns.put("radio_type", new Atom<>("2.4G"));
|
|
||||||
updateColumns.put("stats_type", new Atom<>("event"));
|
|
||||||
|
|
||||||
Row row = new Row(updateColumns);
|
|
||||||
operations.add(new Insert(wifiStatsConfigDbTable, row));
|
|
||||||
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
LOG.debug("Updated {}:", wifiStatsConfigDbTable);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("updateEventReportingInterval Result {}", res);
|
|
||||||
if (res instanceof InsertResult) {
|
|
||||||
LOG.info("updateEventReportingInterval insert new row result {}", (res));
|
|
||||||
// for insert, make sure it is actually in the table
|
|
||||||
confirmRowExistsInTable(ovsdbClient, ((InsertResult) res).getUuid(), wifiStatsConfigDbTable);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void configureWanInterfacesForDhcpSniffing(OvsdbClient ovsdbClient) {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
// Going forward this will be only for WAN, and children will inherit
|
|
||||||
// conditions.add(new Condition("if_name", Function.EQUALS, new Atom<>(defaultWanInterfaceName)));
|
|
||||||
|
|
||||||
updateColumns.put("dhcp_sniff", new Atom<>(true));
|
|
||||||
|
|
||||||
Row row = new Row(updateColumns);
|
|
||||||
operations.add(new Update(wifiInetConfigDbTable, conditions, row));
|
|
||||||
|
|
||||||
try {
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
if (res instanceof UpdateResult) {
|
|
||||||
LOG.info("configureWanInterfacesForDhcpSniffing {}", ((UpdateResult) res).toString());
|
|
||||||
} else if (res instanceof ErrorResult) {
|
|
||||||
LOG.error("configureWanInterfacesForDhcpSniffing error {}", (res));
|
|
||||||
throw new RuntimeException("configureWanInterfacesForDhcpSniffing " + ((ErrorResult) res).getError()
|
|
||||||
+ " " + ((ErrorResult) res).getDetails());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
|
||||||
LOG.error("OvsdbDao::configureWanInterfaces failed.", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check existence of row with a given Uuid in the specified ovsdb table
|
|
||||||
* Used primarily for operation validation.
|
|
||||||
*
|
|
||||||
* @param ovsdbClient
|
|
||||||
* @param rowUuid
|
|
||||||
* @param table
|
|
||||||
*/
|
|
||||||
void confirmRowExistsInTable(OvsdbClient ovsdbClient, Uuid rowUuid, String table) {
|
|
||||||
try {
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
conditions.add(new Condition("_uuid", Function.EQUALS, new Atom<>(rowUuid)));
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
operations.add(new Select(table, conditions));
|
|
||||||
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
if (res instanceof SelectResult) {
|
|
||||||
LOG.info("Select Result for confirmRowExistsInTable {} with Uuid {} {}", table, rowUuid,
|
|
||||||
((SelectResult) res).getRows());
|
|
||||||
} else if (res instanceof ErrorResult) {
|
|
||||||
LOG.error("confirmRowExistsInTable error {}", (res));
|
|
||||||
throw new RuntimeException("confirmRowExistsInTable " + ((ErrorResult) res).getError() + " "
|
|
||||||
+ ((ErrorResult) res).getDetails());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
|
||||||
LOG.error("Unable to confirm existence of row in table {} for Uuid {}", table, rowUuid, e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void fillInRadioInterfaceNames(OvsdbClient ovsdbClient, ConnectNodeInfo ret) {
|
|
||||||
try {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
List<String> columns = new ArrayList<>();
|
|
||||||
|
|
||||||
columns.add("freq_band");
|
|
||||||
columns.add("if_name");
|
|
||||||
|
|
||||||
operations.add(new Select(wifiRadioStateDbTable, conditions, columns));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
if (LOG.isDebugEnabled()) {
|
|
||||||
LOG.debug("Select from {}:", wifiRadioStateDbTable);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((result != null) && (result.length > 0) && (result[0] instanceof SelectResult)
|
|
||||||
&& !((SelectResult) result[0]).getRows().isEmpty()) {
|
|
||||||
|
|
||||||
for (Row row : ((SelectResult) result[0]).getRows()) {
|
|
||||||
ret.wifiRadioStates.put(getSingleValueFromSet(row, "freq_band"),
|
|
||||||
getSingleValueFromSet(row, "if_name"));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Update;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
|
||||||
import com.vmware.ovsdb.service.OvsdbClient;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class OvsdbFirmwareConfig extends OvsdbDaoBase {
|
|
||||||
|
|
||||||
void configureFirmwareDownload(OvsdbClient ovsdbClient, String apId, String firmwareUrl, String firmwareVersion,
|
|
||||||
String username) throws Exception {
|
|
||||||
try {
|
|
||||||
LOG.debug("configureFirmwareDownload for {} to version {} url {} username {}", apId,
|
|
||||||
firmwareVersion, firmwareUrl, username);
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
updateColumns.put("upgrade_dl_timer", new Atom<>(upgradeDlTimerSeconds));
|
|
||||||
updateColumns.put("firmware_url", new Atom<>(firmwareUrl));
|
|
||||||
updateColumns.put("upgrade_timer", new Atom<>(upgradeTimerSeconds));
|
|
||||||
Row row = new Row(updateColumns);
|
|
||||||
operations.add(new Update(awlanNodeDbTable, row));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
for (OperationResult r : result) {
|
|
||||||
LOG.debug("Op Result {}", r);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
LOG.error("Could not download firmware {} to AP {}", firmwareVersion, apId, e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void configureFirmwareFlash(OvsdbClient ovsdbClient, String apId, String firmwareVersion, String username) {
|
|
||||||
try {
|
|
||||||
LOG.debug("configureFirmwareFlash on AP {} to load {} setting timer for {} seconds.", apId, firmwareVersion,
|
|
||||||
upgradeTimerSeconds);
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
updateColumns.put("upgrade_timer", new Atom<>(upgradeTimerSeconds));
|
|
||||||
Row row = new Row(updateColumns);
|
|
||||||
operations.add(new Update(awlanNodeDbTable, row));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.join();
|
|
||||||
for (OperationResult r : result) {
|
|
||||||
LOG.debug("Op Result {}", r);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
LOG.error("Could not configure timer for flashing firmware {} on AP {}", firmwareVersion, apId, e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,182 +0,0 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.TimeoutException;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.CommandConfigInfo;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20Config;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20IconConfig;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20OsuProviders;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.NodeConfigInfo;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.RadiusProxyConfigInfo;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiInetConfigInfo;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiRadioConfigInfo;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiStatsConfigInfo;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiVifConfigInfo;
|
|
||||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Select;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Function;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.SelectResult;
|
|
||||||
import com.vmware.ovsdb.service.OvsdbClient;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class OvsdbGet extends OvsdbDaoBase {
|
|
||||||
|
|
||||||
Map<String, Set<Integer>> getAllowedChannels(OvsdbClient ovsdbClient) {
|
|
||||||
Map<String, Set<Integer>> allowedChannels = new HashMap<>();
|
|
||||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, wifiRadioStateDbTable, null)) {
|
|
||||||
allowedChannels.put(getSingleValueFromSet(row, "freq_band"), row.getSetColumn("allowed_channels"));
|
|
||||||
}
|
|
||||||
return allowedChannels;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get all Rows from given table that satisfy the conditions.
|
|
||||||
*
|
|
||||||
* @param ovsdbClient
|
|
||||||
* @param ovsdbTableName
|
|
||||||
* @param conditions
|
|
||||||
* @return Set of Rows in the table that satisfy the conditions, or all rows
|
|
||||||
* in table if conditions is null or empty.
|
|
||||||
*/
|
|
||||||
Set<Row> getOvsdbTableRowsForCondition(OvsdbClient ovsdbClient, String ovsdbTableName, List<Condition> conditions) {
|
|
||||||
Set<Row> ret = new HashSet<>();
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
if (conditions == null || conditions.isEmpty()) {
|
|
||||||
operations.add(new Select(ovsdbTableName));
|
|
||||||
} else {
|
|
||||||
operations.add(new Select(ovsdbTableName, conditions));
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
for (Row row : ((SelectResult) result[0]).getRows()) {
|
|
||||||
ret.add(row);
|
|
||||||
}
|
|
||||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
|
||||||
LOG.error("Transaction exception getting rows from {}.", ovsdbTableName, e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
NodeConfigInfo getNodeConfigInfo(OvsdbClient ovsdbClient) {
|
|
||||||
return new NodeConfigInfo(getOvsdbTableRowsForCondition(ovsdbClient, nodeConfigTable,
|
|
||||||
List.of(new Condition("module", Function.EQUALS, new Atom<>("ntp")))).iterator().next());
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, CommandConfigInfo> getProvisionedCommandConfigs(OvsdbClient ovsdbClient) {
|
|
||||||
Map<String, CommandConfigInfo> ret = new HashMap<>();
|
|
||||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, commandConfigDbTable, null)) {
|
|
||||||
CommandConfigInfo commandConfigInfo = new CommandConfigInfo(row);
|
|
||||||
ret.put(commandConfigInfo.command, commandConfigInfo);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, Hotspot20Config> getProvisionedHotspot20Configs(OvsdbClient ovsdbClient) {
|
|
||||||
Map<String, Hotspot20Config> ret = new HashMap<>();
|
|
||||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, hotspot20ConfigDbTable, null)) {
|
|
||||||
Hotspot20Config hotspot20Config = new Hotspot20Config(row);
|
|
||||||
ret.put(hotspot20Config.osuSsid, hotspot20Config);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, Hotspot20IconConfig> getProvisionedHotspot20IconConfig(OvsdbClient ovsdbClient) {
|
|
||||||
Map<String, Hotspot20IconConfig> ret = new HashMap<>();
|
|
||||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, hotspot20IconConfigDbTable, null)) {
|
|
||||||
Hotspot20IconConfig hotspot20IconConfig = new Hotspot20IconConfig(row);
|
|
||||||
ret.put(hotspot20IconConfig.url, hotspot20IconConfig);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, Hotspot20OsuProviders> getProvisionedHotspot20OsuProviders(OvsdbClient ovsdbClient) {
|
|
||||||
Map<String, Hotspot20OsuProviders> ret = new HashMap<>();
|
|
||||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, hotspot20OsuProvidersDbTable, null)) {
|
|
||||||
Hotspot20OsuProviders hotspot20OsuProviders = new Hotspot20OsuProviders(row);
|
|
||||||
ret.put(hotspot20OsuProviders.osuProviderName, hotspot20OsuProviders);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, WifiInetConfigInfo> getProvisionedWifiInetConfigs(OvsdbClient ovsdbClient) {
|
|
||||||
Map<String, WifiInetConfigInfo> ret = new HashMap<>();
|
|
||||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, wifiInetConfigDbTable, null)) {
|
|
||||||
WifiInetConfigInfo wifiInetConfigInfo = new WifiInetConfigInfo(row);
|
|
||||||
ret.put(wifiInetConfigInfo.ifName, wifiInetConfigInfo);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, WifiRadioConfigInfo> getProvisionedWifiRadioConfigs(OvsdbClient ovsdbClient) {
|
|
||||||
Map<String, WifiRadioConfigInfo> ret = new HashMap<>();
|
|
||||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, wifiRadioConfigDbTable, null)) {
|
|
||||||
WifiRadioConfigInfo wifiRadioConfigInfo = new WifiRadioConfigInfo(row);
|
|
||||||
ret.put(wifiRadioConfigInfo.ifName, wifiRadioConfigInfo);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, WifiStatsConfigInfo> getProvisionedWifiStatsConfigs(OvsdbClient ovsdbClient) {
|
|
||||||
Map<String, WifiStatsConfigInfo> ret = new HashMap<>();
|
|
||||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, wifiStatsConfigDbTable, null)) {
|
|
||||||
WifiStatsConfigInfo wifiStatsConfigInfo = new WifiStatsConfigInfo(row);
|
|
||||||
if (wifiStatsConfigInfo.surveyType == null) {
|
|
||||||
ret.put(wifiStatsConfigInfo.radioType + "_" + wifiStatsConfigInfo.statsType, wifiStatsConfigInfo);
|
|
||||||
} else {
|
|
||||||
ret.put(wifiStatsConfigInfo.radioType + "_" + wifiStatsConfigInfo.statsType + "_"
|
|
||||||
+ wifiStatsConfigInfo.surveyType, wifiStatsConfigInfo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, WifiVifConfigInfo> getProvisionedWifiVifConfigs(OvsdbClient ovsdbClient) {
|
|
||||||
Map<String, WifiVifConfigInfo> ret = new HashMap<>();
|
|
||||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, wifiVifConfigDbTable, null)) {
|
|
||||||
WifiVifConfigInfo wifiVifConfigInfo = new WifiVifConfigInfo(row);
|
|
||||||
ret.put(wifiVifConfigInfo.ifName + '_' + wifiVifConfigInfo.ssid, wifiVifConfigInfo);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<String> getWifiVifStates(OvsdbClient ovsdbClient, String ssidName) {
|
|
||||||
List<String> ret = new ArrayList<>();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
conditions.add(new Condition("ssid", Function.EQUALS, new Atom<>(ssidName)));
|
|
||||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, wifiVifStateDbTable, null)) {
|
|
||||||
String mac = getSingleValueFromSet(row, "mac");
|
|
||||||
if (mac != null) {
|
|
||||||
ret.add(mac);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, RadiusProxyConfigInfo> getProvisionedRadiusConfigs(OvsdbClient ovsdbClient) {
|
|
||||||
Map<String, RadiusProxyConfigInfo> ret = new HashMap<>();
|
|
||||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, radiusConfigDbTable, null)) {
|
|
||||||
RadiusProxyConfigInfo radiusProxyConfigInfo = new RadiusProxyConfigInfo(row);
|
|
||||||
ret.put(radiusProxyConfigInfo.radiusConfigName, radiusProxyConfigInfo);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,872 +0,0 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.TimeoutException;
|
|
||||||
import java.util.function.Predicate;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import org.apache.commons.codec.digest.DigestUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPHotspot20Config;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20Config;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20IconConfig;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20OsuProviders;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiVifConfigInfo;
|
|
||||||
import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
|
|
||||||
import com.telecominfraproject.wlan.profile.models.Profile;
|
|
||||||
import com.telecominfraproject.wlan.profile.passpoint.models.PasspointDuple;
|
|
||||||
import com.telecominfraproject.wlan.profile.passpoint.models.PasspointIPv4AddressType;
|
|
||||||
import com.telecominfraproject.wlan.profile.passpoint.models.PasspointIPv6AddressType;
|
|
||||||
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.PasspointEapMethods;
|
|
||||||
import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointNaiRealmEapAuthInnerNonEap;
|
|
||||||
import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointNaiRealmEapAuthParam;
|
|
||||||
import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointNaiRealmEapCredType;
|
|
||||||
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.PasspointVenueName;
|
|
||||||
import com.telecominfraproject.wlan.profile.passpoint.models.venue.PasspointVenueProfile;
|
|
||||||
import com.telecominfraproject.wlan.profile.passpoint.models.venue.PasspointVenueTypeAssignment;
|
|
||||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
|
|
||||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Delete;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Insert;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Update;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Function;
|
|
||||||
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.UpdateResult;
|
|
||||||
import com.vmware.ovsdb.protocol.schema.DatabaseSchema;
|
|
||||||
import com.vmware.ovsdb.service.OvsdbClient;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class OvsdbHotspotConfig extends OvsdbDaoBase {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
OvsdbGet ovsdbGet;
|
|
||||||
|
|
||||||
protected void getNaiRealms(PasspointOsuProviderProfile providerProfile, Set<Atom<String>> naiRealms) {
|
|
||||||
providerProfile.getNaiRealmList().stream().forEach(c -> {
|
|
||||||
|
|
||||||
StringBuffer naiBuffer = new StringBuffer();
|
|
||||||
naiBuffer.append(Integer.toString(c.getEncoding()));
|
|
||||||
naiBuffer.append(",");
|
|
||||||
Iterator<String> realmsIterator = c.getNaiRealms().iterator();
|
|
||||||
if (realmsIterator != null) {
|
|
||||||
while (realmsIterator.hasNext()) {
|
|
||||||
String realm = realmsIterator.next();
|
|
||||||
naiBuffer.append(realm);
|
|
||||||
if (realmsIterator.hasNext()) {
|
|
||||||
naiBuffer.append(";");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (c.getEapMap() == null || c.getEapMap().isEmpty()) {
|
|
||||||
naiRealms.add(new Atom<String>(naiBuffer.toString()));
|
|
||||||
} else {
|
|
||||||
naiBuffer.append(",");
|
|
||||||
|
|
||||||
Map<String, Set<String>> eapMap = c.getEapMap();
|
|
||||||
eapMap.entrySet().stream().forEach(e -> {
|
|
||||||
|
|
||||||
String eapMethodName = e.getKey();
|
|
||||||
String eapMethodId = String.valueOf(PasspointEapMethods.getByName(eapMethodName).getId());
|
|
||||||
naiBuffer.append(eapMethodId);
|
|
||||||
|
|
||||||
for (String credential : e.getValue()) {
|
|
||||||
|
|
||||||
String[] keyValue = credential.split(":");
|
|
||||||
String keyId = String.valueOf(PasspointNaiRealmEapAuthParam.getByName(keyValue[0]).getId());
|
|
||||||
if (keyValue[0].equals(
|
|
||||||
PasspointNaiRealmEapAuthParam.NAI_REALM_EAP_AUTH_NON_EAP_INNER_AUTH.getName())) {
|
|
||||||
|
|
||||||
String valueId = String
|
|
||||||
.valueOf(PasspointNaiRealmEapAuthInnerNonEap.getByName(keyValue[1]).getId());
|
|
||||||
|
|
||||||
naiBuffer.append("[");
|
|
||||||
naiBuffer.append(keyId);
|
|
||||||
naiBuffer.append(":");
|
|
||||||
naiBuffer.append(valueId);
|
|
||||||
naiBuffer.append("]");
|
|
||||||
|
|
||||||
} else if (keyValue[0]
|
|
||||||
.equals(PasspointNaiRealmEapAuthParam.NAI_REALM_EAP_AUTH_CRED_TYPE.getName())
|
|
||||||
|| keyValue[0]
|
|
||||||
.equals(PasspointNaiRealmEapAuthParam.NAI_REALM_EAP_AUTH_TUNNELED_CRED_TYPE
|
|
||||||
.getName())) {
|
|
||||||
|
|
||||||
String valueId = String
|
|
||||||
.valueOf(PasspointNaiRealmEapCredType.getByName(keyValue[1]).getId());
|
|
||||||
|
|
||||||
naiBuffer.append("[");
|
|
||||||
naiBuffer.append(keyId);
|
|
||||||
naiBuffer.append(":");
|
|
||||||
naiBuffer.append(valueId);
|
|
||||||
naiBuffer.append("]");
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
naiBuffer.append(",");
|
|
||||||
|
|
||||||
});
|
|
||||||
String naiRealm = naiBuffer.toString();
|
|
||||||
if (naiRealm.endsWith(",")) {
|
|
||||||
naiRealm = naiRealm.substring(0, naiRealm.lastIndexOf(","));
|
|
||||||
}
|
|
||||||
naiRealms.add(new Atom<String>(naiRealm));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void getOsuIconUuidsForOsuProvider(OvsdbClient ovsdbClient, PasspointOsuProviderProfile providerProfile,
|
|
||||||
Map<String, Value> rowColumns) {
|
|
||||||
Map<String, Hotspot20IconConfig> osuIconsMap = ovsdbGet.getProvisionedHotspot20IconConfig(ovsdbClient);
|
|
||||||
Set<Uuid> iconsSet = new HashSet<>();
|
|
||||||
if (osuIconsMap.size() > 0) {
|
|
||||||
for (PasspointOsuIcon icon : providerProfile.getOsuIconList()) {
|
|
||||||
if (osuIconsMap.containsKey(icon.getImageUrl())) {
|
|
||||||
iconsSet.add(osuIconsMap.get(icon.getImageUrl()).uuid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (iconsSet.size() > 0) {
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set iconUuidSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(iconsSet);
|
|
||||||
rowColumns.put("osu_icons", iconUuidSet);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void getOsuProviderFriendlyNames(PasspointOsuProviderProfile providerProfile,
|
|
||||||
Map<String, Value> rowColumns) {
|
|
||||||
Set<Atom<String>> providerFriendlyNames = new HashSet<>();
|
|
||||||
for (PasspointDuple friendlyName : providerProfile.getOsuFriendlyName()) {
|
|
||||||
providerFriendlyNames.add(new Atom<String>(friendlyName.getAsDuple()));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (providerFriendlyNames.size() > 0) {
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set providerFriendlyNamesSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(providerFriendlyNames);
|
|
||||||
rowColumns.put("osu_friendly_name", providerFriendlyNamesSet);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void getOsuProviderMethodList(PasspointOsuProviderProfile providerProfile,
|
|
||||||
Map<String, Value> rowColumns) {
|
|
||||||
Set<Atom<Integer>> methods = new HashSet<>();
|
|
||||||
for (Integer method : providerProfile.getOsuMethodList()) {
|
|
||||||
methods.add(new Atom<Integer>(method));
|
|
||||||
}
|
|
||||||
if (methods.size() > 0) {
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set methodsSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(methods);
|
|
||||||
rowColumns.put("method_list", methodsSet);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void getOsuProviderServiceDescriptions(PasspointOsuProviderProfile providerProfile,
|
|
||||||
Map<String, Value> rowColumns) {
|
|
||||||
Set<Atom<String>> serviceDescriptions = new HashSet<>();
|
|
||||||
for (PasspointDuple serviceDescription : providerProfile.getOsuServiceDescription()) {
|
|
||||||
serviceDescriptions.add(new Atom<String>(serviceDescription.getAsDuple()));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (serviceDescriptions.size() > 0) {
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set serviceDescriptionSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(serviceDescriptions);
|
|
||||||
rowColumns.put("service_description", serviceDescriptionSet);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void configureHotspots(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
|
||||||
|
|
||||||
provisionHotspot2IconConfig(ovsdbClient, opensyncApConfig);
|
|
||||||
provisionHotspot20OsuProviders(ovsdbClient, opensyncApConfig);
|
|
||||||
provisionHotspot20Config(ovsdbClient, opensyncApConfig);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add the operator specific information, taken from the operator profile
|
|
||||||
* for the given hotspotProfile being configured.
|
|
||||||
*
|
|
||||||
* @param hs20cfg
|
|
||||||
* @param rowColumns
|
|
||||||
* @param hs2Profile
|
|
||||||
*/
|
|
||||||
void getOperatorInformationForPasspointConfiguration(OpensyncAPHotspot20Config hs20cfg,
|
|
||||||
Map<String, Value> rowColumns, PasspointProfile hs2Profile) {
|
|
||||||
PasspointOperatorProfile passpointOperatorProfile = getOperatorProfileForPasspoint(hs20cfg, hs2Profile);
|
|
||||||
|
|
||||||
Set<Atom<String>> domainNames = new HashSet<>();
|
|
||||||
for (String domainName : passpointOperatorProfile.getDomainNameList()) {
|
|
||||||
domainNames.add(new Atom<>(domainName));
|
|
||||||
}
|
|
||||||
if (domainNames.size() > 0) {
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set domainNameSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(domainNames);
|
|
||||||
rowColumns.put("domain_name", domainNameSet);
|
|
||||||
}
|
|
||||||
rowColumns.put("osen", new Atom<>(passpointOperatorProfile.isServerOnlyAuthenticatedL2EncryptionNetwork()));
|
|
||||||
|
|
||||||
Set<Atom<String>> operatorFriendlyName = new HashSet<>();
|
|
||||||
passpointOperatorProfile.getOperatorFriendlyName().stream()
|
|
||||||
.forEach(c -> operatorFriendlyName.add(new Atom<>(c.getAsDuple())));
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set operatorFriendlyNameSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(operatorFriendlyName);
|
|
||||||
rowColumns.put("operator_friendly_name", operatorFriendlyNameSet);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
PasspointOperatorProfile getOperatorProfileForPasspoint(OpensyncAPHotspot20Config hs20cfg,
|
|
||||||
PasspointProfile hs2Profile) {
|
|
||||||
Profile operator = hs20cfg.getHotspot20OperatorSet().stream().filter(new Predicate<Profile>() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean test(Profile t) {
|
|
||||||
return t.getId() == hs2Profile.getPasspointOperatorProfileId();
|
|
||||||
}
|
|
||||||
|
|
||||||
}).findFirst().get();
|
|
||||||
|
|
||||||
PasspointOperatorProfile passpointOperatorProfile = (PasspointOperatorProfile) operator.getDetails();
|
|
||||||
return passpointOperatorProfile;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds map entries the UUIDs for the OSU Providers and Icons based on the
|
|
||||||
* entries in the for providers that are associated with this
|
|
||||||
* hotspotProfile.
|
|
||||||
*
|
|
||||||
* @param ovsdbClient
|
|
||||||
* @param hs20cfg
|
|
||||||
* @param hotspotProfile
|
|
||||||
* @param rowColumns
|
|
||||||
*/
|
|
||||||
void getOsuIconUuidsForPasspointConfiguration(OvsdbClient ovsdbClient, OpensyncAPHotspot20Config hs20cfg,
|
|
||||||
Profile hotspotProfile, Map<String, Value> rowColumns) {
|
|
||||||
Set<Uuid> osuIconUuids = getOsuProvidersInfoForPasspointConfiguration(ovsdbClient, hs20cfg, hotspotProfile,
|
|
||||||
rowColumns);
|
|
||||||
|
|
||||||
if (osuIconUuids.size() > 0) {
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set iconUuids = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(osuIconUuids);
|
|
||||||
rowColumns.put("operator_icons", iconUuids);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get providers profiles. Helper method.
|
|
||||||
*
|
|
||||||
* @param hs20cfg
|
|
||||||
* @param hotspotProfile
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
List<Profile> getOsuProvidersForPasspoint(OpensyncAPHotspot20Config hs20cfg, Profile hotspotProfile) {
|
|
||||||
List<Profile> providerList = new ArrayList<>();
|
|
||||||
if (hs20cfg.getHotspot20ProviderSet() != null) {
|
|
||||||
providerList = hs20cfg.getHotspot20ProviderSet().stream().filter(new Predicate<Profile>() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean test(Profile t) {
|
|
||||||
return hotspotProfile.getChildProfileIds().contains(t.getId());
|
|
||||||
}
|
|
||||||
}).collect(Collectors.toList());
|
|
||||||
|
|
||||||
}
|
|
||||||
return providerList;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get's the OSU Provider related information for a given hotspot, the osu
|
|
||||||
* providers being configured on the ovsdb in Hotspot20_OSU_Providers and
|
|
||||||
* defined as children of the hotspot profile
|
|
||||||
*
|
|
||||||
* @param ovsdbClient
|
|
||||||
* @param hs20cfg
|
|
||||||
* @param hotspotProfile
|
|
||||||
* @param rowColumns
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
Set<Uuid> getOsuProvidersInfoForPasspointConfiguration(OvsdbClient ovsdbClient, OpensyncAPHotspot20Config hs20cfg,
|
|
||||||
Profile hotspotProfile, Map<String, Value> rowColumns) {
|
|
||||||
Map<String, Hotspot20OsuProviders> osuProviders = ovsdbGet.getProvisionedHotspot20OsuProviders(ovsdbClient);
|
|
||||||
List<Profile> providerList = getOsuProvidersForPasspoint(hs20cfg, hotspotProfile);
|
|
||||||
|
|
||||||
Set<Uuid> osuProvidersUuids = new HashSet<>();
|
|
||||||
Set<Uuid> osuIconUuids = new HashSet<>();
|
|
||||||
|
|
||||||
StringBuffer mccMncBuffer = new StringBuffer();
|
|
||||||
Set<Atom<String>> naiRealms = new HashSet<>();
|
|
||||||
Set<Atom<String>> roamingOis = new HashSet<>();
|
|
||||||
for (Profile provider : providerList) {
|
|
||||||
PasspointOsuProviderProfile providerProfile = (PasspointOsuProviderProfile) provider.getDetails();
|
|
||||||
|
|
||||||
osuProviders.keySet().stream().filter(new Predicate<String>() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean test(String providerNameOnAp) {
|
|
||||||
return providerNameOnAp.startsWith(OvsdbToWlanCloudTypeMappingUtility
|
|
||||||
.getApOsuProviderStringFromOsuProviderName(provider.getName()));
|
|
||||||
}
|
|
||||||
|
|
||||||
}).forEach(p -> {
|
|
||||||
providerProfile.getRoamingOi().stream().forEach(o -> {
|
|
||||||
roamingOis.add(new Atom<>(o));
|
|
||||||
});
|
|
||||||
osuProvidersUuids.add(osuProviders.get(p).uuid);
|
|
||||||
osuIconUuids.addAll(osuProviders.get(p).osuIcons);
|
|
||||||
getNaiRealms(providerProfile, naiRealms);
|
|
||||||
|
|
||||||
for (PasspointMccMnc passpointMccMnc : providerProfile.getMccMncList()) {
|
|
||||||
mccMncBuffer.append(passpointMccMnc.getMccMncPairing());
|
|
||||||
mccMncBuffer.append(";");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
String mccMncString = mccMncBuffer.toString();
|
|
||||||
if (mccMncString.endsWith(";")) {
|
|
||||||
mccMncString = mccMncString.substring(0, mccMncString.lastIndexOf(";"));
|
|
||||||
}
|
|
||||||
|
|
||||||
rowColumns.put("mcc_mnc", new Atom<>(mccMncString));
|
|
||||||
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set roamingOiSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(roamingOis);
|
|
||||||
rowColumns.put("roaming_oi", roamingOiSet);
|
|
||||||
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set naiRealmsSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(naiRealms);
|
|
||||||
rowColumns.put("nai_realm", naiRealmsSet);
|
|
||||||
|
|
||||||
if (osuProvidersUuids.size() > 0) {
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set providerUuids = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(osuProvidersUuids);
|
|
||||||
rowColumns.put("osu_providers", providerUuids);
|
|
||||||
}
|
|
||||||
return osuIconUuids;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Passpoint configuration requires profile information from children, as
|
|
||||||
* well as information from parent VIF Configurations These values are
|
|
||||||
* placed in the rowColumns map to be passed into the transaction creating
|
|
||||||
* the Hotspot20_Config in ovsdb.
|
|
||||||
*
|
|
||||||
* @param ovsdbClient
|
|
||||||
* @param opensyncApConfig
|
|
||||||
* @param hs20cfg
|
|
||||||
* @param hotspotProfile
|
|
||||||
* @param rowColumns
|
|
||||||
* @param hs2Profile
|
|
||||||
*/
|
|
||||||
void getPasspointConfigurationInformationFromDependencies(OvsdbClient ovsdbClient,
|
|
||||||
OpensyncAPConfig opensyncApConfig, OpensyncAPHotspot20Config hs20cfg, Profile hotspotProfile,
|
|
||||||
Map<String, Value> rowColumns, PasspointProfile hs2Profile) {
|
|
||||||
|
|
||||||
getOperatorInformationForPasspointConfiguration(hs20cfg, rowColumns, hs2Profile);
|
|
||||||
|
|
||||||
getVenueInformationForPasspointConfiguration(hs20cfg, rowColumns, hs2Profile);
|
|
||||||
|
|
||||||
getOsuIconUuidsForPasspointConfiguration(ovsdbClient, hs20cfg, hotspotProfile, rowColumns);
|
|
||||||
|
|
||||||
getVifInformationForPasspointConfiguration(ovsdbClient, opensyncApConfig, rowColumns, hs2Profile);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add the venue specific information, taken from the venue profile for the
|
|
||||||
* given hotspotProfile being configured.
|
|
||||||
*
|
|
||||||
* @param hs20cfg
|
|
||||||
* @param rowColumns
|
|
||||||
* @param hs2Profile
|
|
||||||
*/
|
|
||||||
void getVenueInformationForPasspointConfiguration(OpensyncAPHotspot20Config hs20cfg, Map<String, Value> rowColumns,
|
|
||||||
PasspointProfile hs2Profile) {
|
|
||||||
PasspointVenueProfile passpointVenueProfile = getVenueProfileForPasspoint(hs20cfg, hs2Profile);
|
|
||||||
Set<Atom<String>> venueNames = new HashSet<>();
|
|
||||||
Set<Atom<String>> venueUrls = new HashSet<>();
|
|
||||||
int index = 1;
|
|
||||||
for (PasspointVenueName passpointVenueName : passpointVenueProfile.getVenueNameSet()) {
|
|
||||||
venueNames.add(new Atom<String>(passpointVenueName.getAsDuple()));
|
|
||||||
String url = String.valueOf(index) + ":" + passpointVenueName.getVenueUrl();
|
|
||||||
venueUrls.add(new Atom<String>(url));
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set venueNameSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(venueNames);
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set venueUrlSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(venueUrls);
|
|
||||||
rowColumns.put("venue_name", venueNameSet);
|
|
||||||
rowColumns.put("venue_url", venueUrlSet);
|
|
||||||
|
|
||||||
PasspointVenueTypeAssignment passpointVenueTypeAssignment = passpointVenueProfile.getVenueTypeAssignment();
|
|
||||||
String groupType = String.valueOf(passpointVenueTypeAssignment.getVenueGroupId()) + ":"
|
|
||||||
+ passpointVenueTypeAssignment.getVenueTypeId();
|
|
||||||
|
|
||||||
rowColumns.put("venue_group_type", new Atom<>(groupType));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get's the Venue Profile for the hotspot, helper method
|
|
||||||
*
|
|
||||||
* @param hs20cfg
|
|
||||||
* @param hs2Profile
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
PasspointVenueProfile getVenueProfileForPasspoint(OpensyncAPHotspot20Config hs20cfg, PasspointProfile hs2Profile) {
|
|
||||||
Profile venue = hs20cfg.getHotspot20VenueSet().stream().filter(new Predicate<Profile>() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean test(Profile t) {
|
|
||||||
return t.getId() == hs2Profile.getPasspointVenueProfileId();
|
|
||||||
}
|
|
||||||
|
|
||||||
}).findFirst().get();
|
|
||||||
|
|
||||||
PasspointVenueProfile passpointVenueProfile = (PasspointVenueProfile) venue.getDetails();
|
|
||||||
return passpointVenueProfile;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the UUIDs for the associated access Wifi_VIF_Config parents, as well
|
|
||||||
* as the osu_ssid for the "OPEN" Wifi_VIF_Config used to connect to the
|
|
||||||
* passpoint
|
|
||||||
*
|
|
||||||
* @param ovsdbClient
|
|
||||||
* @param opensyncApConfig
|
|
||||||
* @param rowColumns
|
|
||||||
* @param hs2Profile
|
|
||||||
*/
|
|
||||||
void getVifInformationForPasspointConfiguration(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig,
|
|
||||||
Map<String, Value> rowColumns, PasspointProfile hs2Profile) {
|
|
||||||
Map<String, WifiVifConfigInfo> vifConfigMap = ovsdbGet.getProvisionedWifiVifConfigs(ovsdbClient);
|
|
||||||
|
|
||||||
Set<Uuid> vifConfigs = new HashSet<>();
|
|
||||||
List<Atom<String>> hessids = new ArrayList<>();
|
|
||||||
|
|
||||||
for (Profile ssidProfile : opensyncApConfig.getSsidProfile()) {
|
|
||||||
if (hs2Profile.getAssociatedAccessSsidProfileIds().contains(ssidProfile.getId())) {
|
|
||||||
|
|
||||||
String accessSsidProfileName = ((SsidConfiguration) ssidProfile.getDetails()).getSsid();
|
|
||||||
|
|
||||||
for (WifiVifConfigInfo vifConfig : vifConfigMap.values()) {
|
|
||||||
if (vifConfig.ssid.equals(accessSsidProfileName)) {
|
|
||||||
vifConfigs.add(vifConfig.uuid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
List<String> vifStates = ovsdbGet.getWifiVifStates(ovsdbClient, accessSsidProfileName);
|
|
||||||
for (String mac : vifStates) {
|
|
||||||
hessids.add(new Atom<>(mac));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vifConfigs.size() > 0) {
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set vifConfigUuids = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(vifConfigs);
|
|
||||||
rowColumns.put("vif_config", vifConfigUuids);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hessids.size() > 0) {
|
|
||||||
rowColumns.put("hessid", new Atom<>(hessids.get(0)));
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Profile ssidProfile : opensyncApConfig.getSsidProfile()) {
|
|
||||||
if (hs2Profile.getOsuSsidProfileId() != null) {
|
|
||||||
if (ssidProfile.getId() == hs2Profile.getOsuSsidProfileId()) {
|
|
||||||
rowColumns.put("osu_ssid", new Atom<>(((SsidConfiguration) ssidProfile.getDetails()).getSsid()));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configure a Hotspot20 Passpoint for AP
|
|
||||||
*
|
|
||||||
* @param ovsdbClient
|
|
||||||
* @param opensyncApConfig
|
|
||||||
*/
|
|
||||||
void provisionHotspot20Config(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
|
||||||
try {
|
|
||||||
DatabaseSchema schema = ovsdbClient.getSchema(ovsdbName).get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
if (schema.getTables().containsKey(hotspot20ConfigDbTable)
|
|
||||||
&& schema.getTables().get(hotspot20ConfigDbTable) != null) {
|
|
||||||
Map<String, Hotspot20Config> hotspot20ConfigMap = ovsdbGet.getProvisionedHotspot20Configs(ovsdbClient);
|
|
||||||
|
|
||||||
OpensyncAPHotspot20Config hs20cfg = opensyncApConfig.getHotspotConfig();
|
|
||||||
|
|
||||||
if (hs20cfg.getHotspot20ProfileSet() != null) {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
for (Profile hotspotProfile : hs20cfg.getHotspot20ProfileSet()) {
|
|
||||||
|
|
||||||
Map<String, Value> rowColumns = new HashMap<>();
|
|
||||||
|
|
||||||
PasspointProfile hs2Profile = (PasspointProfile) hotspotProfile.getDetails();
|
|
||||||
|
|
||||||
getPasspointConfigurationInformationFromDependencies(ovsdbClient, opensyncApConfig, hs20cfg,
|
|
||||||
hotspotProfile, rowColumns, hs2Profile);
|
|
||||||
|
|
||||||
rowColumns.put("deauth_request_timeout", new Atom<>(hs2Profile.getDeauthRequestTimeout()));
|
|
||||||
if (hs2Profile.getTermsAndConditionsFile() != null) {
|
|
||||||
rowColumns.put("tos", new Atom<>(hs2Profile.getTermsAndConditionsFile().getApExportUrl()));
|
|
||||||
}
|
|
||||||
rowColumns.put("enable", new Atom<>(hs2Profile.isEnableInterworkingAndHs20()));
|
|
||||||
rowColumns.put("network_auth_type",
|
|
||||||
new Atom<>("0" + hs2Profile.getNetworkAuthenticationType().getId()));
|
|
||||||
if (hs2Profile.getGasAddr3Behaviour() != null) {
|
|
||||||
rowColumns.put("gas_addr3_behavior", new Atom<>(hs2Profile.getGasAddr3Behaviour().getId()));
|
|
||||||
}
|
|
||||||
rowColumns.put("operating_class", new Atom<>(hs2Profile.getOperatingClass()));
|
|
||||||
rowColumns.put("anqp_domain_id", new Atom<>(hs2Profile.getAnqpDomainId()));
|
|
||||||
rowColumns.put("asra", new Atom<>(hs2Profile.getAdditionalStepsRequiredForAccess() == 1 ? true:false));
|
|
||||||
rowColumns.put("disable_dgaf", new Atom<>(hs2Profile.isDisableDownstreamGroupAddressedForwarding()));
|
|
||||||
rowColumns.put("esr", new Atom<>(hs2Profile.isEmergencyServicesReachable()));
|
|
||||||
if (hs2Profile.getHessid() != null) {
|
|
||||||
rowColumns.put("hessid", new Atom<>(hs2Profile.getHessid().getAddressAsString()));
|
|
||||||
}
|
|
||||||
rowColumns.put("internet", new Atom<>(hs2Profile.isInternetConnectivity()));
|
|
||||||
if (hs2Profile.getQosMapSetConfiguration() != null) {
|
|
||||||
rowColumns.put("qos_map_set", new Atom<>(String.join(",", hs2Profile.getQosMapSetConfiguration())));
|
|
||||||
}
|
|
||||||
rowColumns.put("uesa", new Atom<>(hs2Profile.isUnauthenticatedEmergencyServiceAccessible()));
|
|
||||||
Set<Atom<String>> connectionCapabilities = new HashSet<>();
|
|
||||||
hs2Profile.getConnectionCapabilitySet().stream()
|
|
||||||
.forEach(c -> connectionCapabilities
|
|
||||||
.add(new Atom<>(c.getConnectionCapabilitiesIpProtocol().getId() + ":"
|
|
||||||
+ c.getConnectionCapabilitiesPortNumber() + ":"
|
|
||||||
+ c.getConnectionCapabilitiesStatus().getId())));
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set connectionCapabilitySet = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(connectionCapabilities);
|
|
||||||
rowColumns.put("connection_capability", connectionCapabilitySet);
|
|
||||||
|
|
||||||
// access_network_type to add when supported by AP
|
|
||||||
if (ovsdbClient.getSchema(ovsdbName).get().getTables().get(hotspot20ConfigDbTable).getColumns().containsKey("access_network_type")) {
|
|
||||||
if (hs2Profile.getAccessNetworkType() != null) {
|
|
||||||
rowColumns.put("access_network_type", new Atom<>(hs2Profile.getAccessNetworkType().getId()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// # format: <1-octet encoded value as hex str>
|
|
||||||
// # (ipv4_type & 0x3f) << 2 | (ipv6_type & 0x3)
|
|
||||||
// 0x3f = 63 in decimal
|
|
||||||
// 0x3 = 3 in decimal
|
|
||||||
if (PasspointIPv6AddressType.getByName(
|
|
||||||
hs2Profile.getIpAddressTypeAvailability()) != PasspointIPv6AddressType.UNSUPPORTED) {
|
|
||||||
int availability = PasspointIPv6AddressType
|
|
||||||
.getByName(hs2Profile.getIpAddressTypeAvailability()).getId();
|
|
||||||
String hexString = String.format("%02x", (availability & 0x3));
|
|
||||||
rowColumns.put("ipaddr_type_availability", new Atom<>(hexString));
|
|
||||||
}else if (PasspointIPv4AddressType.getByName(
|
|
||||||
hs2Profile.getIpAddressTypeAvailability()) != PasspointIPv4AddressType.UNSUPPORTED) {
|
|
||||||
int availability = PasspointIPv4AddressType
|
|
||||||
.getByName(hs2Profile.getIpAddressTypeAvailability()).getId();
|
|
||||||
String hexString = String.format("%02x", ((availability & 0x3f) << 2));
|
|
||||||
rowColumns.put("ipaddr_type_availability", new Atom<>(hexString));
|
|
||||||
}
|
|
||||||
Row row = new Row(rowColumns);
|
|
||||||
|
|
||||||
Insert newHs20Config = new Insert(hotspot20ConfigDbTable, row);
|
|
||||||
|
|
||||||
operations.add(newHs20Config);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("provisionHotspot20Config Op Result {}", res);
|
|
||||||
if (res instanceof InsertResult) {
|
|
||||||
LOG.info("provisionHotspot20Config insert new row result {}", (res));
|
|
||||||
// for insert, make sure it is actually in the table
|
|
||||||
confirmRowExistsInTable(ovsdbClient, ((InsertResult) res).getUuid(),
|
|
||||||
hotspot20ConfigDbTable);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
LOG.info("Current Hotspot20_Config {}", hotspot20ConfigMap);
|
|
||||||
} else {
|
|
||||||
LOG.info("Table {} not present in {}. Cannot provision Hotspot20_Config", hotspot20ConfigDbTable,
|
|
||||||
ovsdbName);
|
|
||||||
}
|
|
||||||
} catch (InterruptedException | ExecutionException | TimeoutException | OvsdbClientException e) {
|
|
||||||
LOG.error("Error in provisionHotspot20Config", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provision the OSU Providers in the Hotspot20_OSU_Providers ovsdb table.
|
|
||||||
*
|
|
||||||
* @param ovsdbClient
|
|
||||||
* @param opensyncApConfig
|
|
||||||
*/
|
|
||||||
void provisionHotspot20OsuProviders(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
|
||||||
try {
|
|
||||||
DatabaseSchema schema = ovsdbClient.getSchema(ovsdbName).get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
if (schema.getTables().containsKey(hotspot20OsuProvidersDbTable)
|
|
||||||
&& schema.getTables().get(hotspot20OsuProvidersDbTable) != null) {
|
|
||||||
Map<String, Hotspot20OsuProviders> osuProviders = ovsdbGet
|
|
||||||
.getProvisionedHotspot20OsuProviders(ovsdbClient);
|
|
||||||
|
|
||||||
OpensyncAPHotspot20Config hs20cfg = opensyncApConfig.getHotspotConfig();
|
|
||||||
Set<Operation> operations = new HashSet<>();
|
|
||||||
if (hs20cfg.getHotspot20ProviderSet() != null && hs20cfg.getHotspot20ProviderSet().size() > 0) {
|
|
||||||
|
|
||||||
for (Profile provider : hs20cfg.getHotspot20ProviderSet()) {
|
|
||||||
PasspointOsuProviderProfile providerProfile = (PasspointOsuProviderProfile) provider
|
|
||||||
.getDetails();
|
|
||||||
String apOsuProviderName = OvsdbToWlanCloudTypeMappingUtility
|
|
||||||
.getApOsuProviderStringFromOsuProviderName(provider.getName());
|
|
||||||
Map<String, Value> rowColumns = new HashMap<>();
|
|
||||||
rowColumns.put("osu_nai", new Atom<>(providerProfile.getOsuNaiStandalone()));
|
|
||||||
|
|
||||||
rowColumns.put("osu_nai2", new Atom<>(providerProfile.getOsuNaiShared()));
|
|
||||||
|
|
||||||
rowColumns.put("osu_provider_name", new Atom<>(apOsuProviderName));
|
|
||||||
|
|
||||||
getOsuIconUuidsForOsuProvider(ovsdbClient, providerProfile, rowColumns);
|
|
||||||
getOsuProviderFriendlyNames(providerProfile, rowColumns);
|
|
||||||
getOsuProviderMethodList(providerProfile, rowColumns);
|
|
||||||
if (providerProfile.getOsuServerUri() != null) {
|
|
||||||
rowColumns.put("server_uri", new Atom<>(providerProfile.getOsuServerUri()));
|
|
||||||
}
|
|
||||||
getOsuProviderServiceDescriptions(providerProfile, rowColumns);
|
|
||||||
|
|
||||||
Row row = new Row(rowColumns);
|
|
||||||
|
|
||||||
if (!osuProviders.containsKey(apOsuProviderName)) {
|
|
||||||
Insert newOsuProvider = new Insert(hotspot20OsuProvidersDbTable, row);
|
|
||||||
operations.add(newOsuProvider);
|
|
||||||
} else {
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
conditions.add(new Condition("osu_provider_name", Function.EQUALS,
|
|
||||||
new Atom<>(apOsuProviderName)));
|
|
||||||
Update updatedOsuProvider = new Update(hotspot20OsuProvidersDbTable, conditions, row);
|
|
||||||
operations.add(updatedOsuProvider);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (operations.size() > 0) {
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName,
|
|
||||||
List.copyOf(operations));
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("provisionHotspot20OsuProviders Op Result {}", res);
|
|
||||||
if (res instanceof InsertResult) {
|
|
||||||
LOG.info("provisionHotspot20OsuProviders insert new row result {}", (res));
|
|
||||||
// for insert, make sure it is actually in the table
|
|
||||||
confirmRowExistsInTable(ovsdbClient, ((InsertResult) res).getUuid(),
|
|
||||||
hotspot20OsuProvidersDbTable);
|
|
||||||
} else if (res instanceof UpdateResult) {
|
|
||||||
LOG.info("provisionHotspot20OsuProviders update row result {}", (res));
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
LOG.info("Table {} not present in {}. Cannot provision Hotspot20_OSU_Providers",
|
|
||||||
hotspot20OsuProvidersDbTable, ovsdbName);
|
|
||||||
}
|
|
||||||
} catch (InterruptedException | ExecutionException | TimeoutException | OvsdbClientException e) {
|
|
||||||
LOG.error("Error in provisionHotspot20OsuProviders", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void provisionHotspot2IconConfig(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
|
||||||
try {
|
|
||||||
DatabaseSchema schema = ovsdbClient.getSchema(ovsdbName).get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
if (schema.getTables().containsKey(hotspot20IconConfigDbTable)
|
|
||||||
&& schema.getTables().get(hotspot20IconConfigDbTable) != null) {
|
|
||||||
Map<String, Hotspot20IconConfig> osuIconConfigs = ovsdbGet
|
|
||||||
.getProvisionedHotspot20IconConfig(ovsdbClient);
|
|
||||||
|
|
||||||
OpensyncAPHotspot20Config hs20cfg = opensyncApConfig.getHotspotConfig();
|
|
||||||
Set<Operation> operations = new HashSet<>();
|
|
||||||
if (hs20cfg.getHotspot20ProviderSet() != null && hs20cfg.getHotspot20ProviderSet().size() > 0) {
|
|
||||||
|
|
||||||
for (Profile provider : hs20cfg.getHotspot20ProviderSet()) {
|
|
||||||
PasspointOsuProviderProfile providerProfile = (PasspointOsuProviderProfile) provider
|
|
||||||
.getDetails();
|
|
||||||
for (PasspointOsuIcon passpointOsuIcon : providerProfile.getOsuIconList()) {
|
|
||||||
Map<String, Value> rowColumns = new HashMap<>();
|
|
||||||
rowColumns.put("name", new Atom<>(passpointOsuIcon.getIconName()));
|
|
||||||
if (schema.getTables().get(hotspot20IconConfigDbTable).getColumns().containsKey("path")) {
|
|
||||||
rowColumns.put("path", new Atom<>(passpointOsuIcon.getFilePath()));
|
|
||||||
}
|
|
||||||
rowColumns.put("url", new Atom<>(passpointOsuIcon.getImageUrl()));
|
|
||||||
rowColumns.put("lang_code", new Atom<>(passpointOsuIcon.getLanguageCode()));
|
|
||||||
rowColumns.put("height", new Atom<>(passpointOsuIcon.getIconHeight()));
|
|
||||||
rowColumns.put("img_type", new Atom<>(PasspointOsuIcon.ICON_TYPE));
|
|
||||||
rowColumns.put("width", new Atom<>(passpointOsuIcon.getIconWidth()));
|
|
||||||
if (passpointOsuIcon.getImageUrl() != null) {
|
|
||||||
String md5Hex = DigestUtils.md5Hex(passpointOsuIcon.getImageUrl()).toUpperCase();
|
|
||||||
if (schema.getTables().get(hotspot20IconConfigDbTable).getColumns()
|
|
||||||
.containsKey("icon_config_name")) {
|
|
||||||
rowColumns.put("icon_config_name", new Atom<>(md5Hex));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Row row = new Row(rowColumns);
|
|
||||||
|
|
||||||
if (!osuIconConfigs.containsKey(passpointOsuIcon.getImageUrl())) {
|
|
||||||
Insert newHs20Config = new Insert(hotspot20IconConfigDbTable, row);
|
|
||||||
operations.add(newHs20Config);
|
|
||||||
} else {
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
conditions.add(new Condition("url", Function.EQUALS,
|
|
||||||
new Atom<>(passpointOsuIcon.getImageUrl())));
|
|
||||||
Update newHs20Config = new Update(hotspot20IconConfigDbTable, conditions, row);
|
|
||||||
operations.add(newHs20Config);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (operations.size() > 0) {
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName,
|
|
||||||
List.copyOf(operations));
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("provisionHotspot20Config Op Result {}", res);
|
|
||||||
if (res instanceof InsertResult) {
|
|
||||||
LOG.info("provisionHotspot20Config insert new row result {}", (res));
|
|
||||||
} else if (res instanceof UpdateResult) {
|
|
||||||
LOG.info("provisionHotspot20Config update row result {}", (res));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
LOG.info("Table {} not present in {}. Cannot provision Hotspot20_Icon_Config",
|
|
||||||
hotspot20IconConfigDbTable, ovsdbName);
|
|
||||||
}
|
|
||||||
} catch (InterruptedException | ExecutionException | TimeoutException | OvsdbClientException e) {
|
|
||||||
LOG.error("Error in provisionHotspot2IconConfig", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeAllHotspot20Config(OvsdbClient ovsdbClient) {
|
|
||||||
try {
|
|
||||||
// DatabaseSchema schema = ovsdbClient.getSchema(ovsdbName).get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
// if (schema.getTables().containsKey(hotspot20ConfigDbTable)
|
|
||||||
// && schema.getTables().get(hotspot20ConfigDbTable) != null) {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
operations.add(new Delete(hotspot20ConfigDbTable));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
if (LOG.isDebugEnabled()) {
|
|
||||||
LOG.debug("Removed all existing hotspot configs from {}:", hotspot20ConfigDbTable);
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// }
|
|
||||||
} catch (InterruptedException | ExecutionException | TimeoutException | OvsdbClientException e) {
|
|
||||||
LOG.error("Error in removeAllHotspot20Config", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeAllHotspot20IconConfig(OvsdbClient ovsdbClient) {
|
|
||||||
try {
|
|
||||||
DatabaseSchema schema = ovsdbClient.getSchema(ovsdbName).get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
if (schema.getTables().containsKey(hotspot20IconConfigDbTable)
|
|
||||||
&& schema.getTables().get(hotspot20IconConfigDbTable) != null) {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
|
|
||||||
operations.add(new Delete(hotspot20IconConfigDbTable));
|
|
||||||
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
if (LOG.isDebugEnabled()) {
|
|
||||||
LOG.debug("Removed all existing hotspot icon configs from {}:", hotspot20IconConfigDbTable);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (InterruptedException | ExecutionException | TimeoutException | OvsdbClientException e) {
|
|
||||||
LOG.error("Error in removeAllHotspot20IconConfig", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeAllHotspot20OsuProviders(OvsdbClient ovsdbClient) {
|
|
||||||
try {
|
|
||||||
DatabaseSchema schema = ovsdbClient.getSchema(ovsdbName).get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
if (schema.getTables().containsKey(hotspot20OsuProvidersDbTable)
|
|
||||||
&& schema.getTables().get(hotspot20OsuProvidersDbTable) != null) {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
|
|
||||||
operations.add(new Delete(hotspot20OsuProvidersDbTable));
|
|
||||||
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
if (LOG.isDebugEnabled()) {
|
|
||||||
LOG.debug("Removed all existing hotspot osu providers from {}:", hotspot20OsuProvidersDbTable);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (InterruptedException | ExecutionException | TimeoutException | OvsdbClientException e) {
|
|
||||||
LOG.error("Error in removeAllHotspot20OsuProviders", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeAllPasspointConfigs(OvsdbClient ovsdbClient) {
|
|
||||||
removeAllHotspot20Config(ovsdbClient);
|
|
||||||
removeAllHotspot20OsuProviders(ovsdbClient);
|
|
||||||
removeAllHotspot20IconConfig(ovsdbClient);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,188 +0,0 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Map.Entry;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPInetState;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAWLANNode;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients;
|
|
||||||
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.Row;
|
|
||||||
import com.vmware.ovsdb.service.OvsdbClient;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class OvsdbMonitor extends OvsdbDaoBase {
|
|
||||||
|
|
||||||
List<OpensyncAPInetState> getInitialOpensyncApInetStateForRowUpdate(TableUpdates tableUpdates, String apId,
|
|
||||||
OvsdbClient ovsdbClient) {
|
|
||||||
LOG.debug("getInitialOpensyncApInetStateForRowUpdate:");
|
|
||||||
List<OpensyncAPInetState> ret = new ArrayList<>();
|
|
||||||
try {
|
|
||||||
LOG.debug(wifiInetStateDbTable + "_" + apId + " initial monitor table state received {}", tableUpdates);
|
|
||||||
for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) {
|
|
||||||
for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) {
|
|
||||||
if (rowUpdate.getNew() != null) {
|
|
||||||
ret.addAll(getOpensyncApInetStateForRowUpdate(rowUpdate, apId, ovsdbClient));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw (e);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<OpensyncAPVIFState> getInitialOpensyncApVifStateForTableUpdates(TableUpdates tableUpdates, String apId,
|
|
||||||
OvsdbClient ovsdbClient) {
|
|
||||||
LOG.debug("getInitialOpensyncApVifStateForTableUpdates:");
|
|
||||||
List<OpensyncAPVIFState> ret = new ArrayList<>();
|
|
||||||
try {
|
|
||||||
LOG.debug(wifiVifStateDbTable + "_" + apId + " initial monitor table state received {}", tableUpdates);
|
|
||||||
for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) {
|
|
||||||
for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) {
|
|
||||||
if (rowUpdate.getNew() != null) {
|
|
||||||
ret.add(new OpensyncAPVIFState(rowUpdate.getNew()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw (e);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<OpensyncWifiAssociatedClients> getInitialOpensyncWifiAssociatedClients(TableUpdates tableUpdates, String apId,
|
|
||||||
OvsdbClient ovsdbClient) {
|
|
||||||
LOG.debug("getInitialOpensyncWifiAssociatedClients:");
|
|
||||||
List<OpensyncWifiAssociatedClients> ret = new ArrayList<>();
|
|
||||||
try {
|
|
||||||
LOG.debug(wifiAssociatedClientsDbTable + "_" + apId + " initial monitor table state received {}",
|
|
||||||
tableUpdates);
|
|
||||||
|
|
||||||
for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) {
|
|
||||||
|
|
||||||
for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) {
|
|
||||||
|
|
||||||
if (rowUpdate.getNew() != null) {
|
|
||||||
ret.addAll(getOpensyncWifiAssociatedClients(rowUpdate, apId, ovsdbClient));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw (e);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<OpensyncAPInetState> getOpensyncApInetStateForRowUpdate(RowUpdate rowUpdate, String apId,
|
|
||||||
OvsdbClient ovsdbClient) {
|
|
||||||
List<OpensyncAPInetState> ret = new ArrayList<>();
|
|
||||||
LOG.debug("OvsdbDao::getOpensyncApInetStateForRowUpdate {} for apId {}", rowUpdate, apId);
|
|
||||||
Row row = null;
|
|
||||||
if (rowUpdate.getNew() != null) {
|
|
||||||
if (rowUpdate.getOld() != null) {
|
|
||||||
row = rowUpdate.getOld();
|
|
||||||
row.getColumns().putAll(rowUpdate.getNew().getColumns());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
row = rowUpdate.getOld();
|
|
||||||
}
|
|
||||||
if (row != null) {
|
|
||||||
ret.add(new OpensyncAPInetState(row));
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<OpensyncAPRadioState> getOpensyncAPRadioState(TableUpdates tableUpdates, String apId,
|
|
||||||
OvsdbClient ovsdbClient) {
|
|
||||||
List<OpensyncAPRadioState> ret = new ArrayList<>();
|
|
||||||
try {
|
|
||||||
for (Entry<String, TableUpdate> tableUpdate : tableUpdates.getTableUpdates().entrySet()) {
|
|
||||||
for (Entry<UUID, RowUpdate> rowUpdate : tableUpdate.getValue().getRowUpdates().entrySet()) {
|
|
||||||
Row row = rowUpdate.getValue().getNew();
|
|
||||||
if (row != null) {
|
|
||||||
ret.add(new OpensyncAPRadioState(row));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
LOG.error("Could not parse update for Wifi_Radio_State", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<OpensyncAPVIFState> getOpensyncApVifStateForRowUpdate(RowUpdate rowUpdate, String apId,
|
|
||||||
OvsdbClient ovsdbClient) {
|
|
||||||
List<OpensyncAPVIFState> ret = new ArrayList<>();
|
|
||||||
try {
|
|
||||||
Row row = rowUpdate.getNew(); // add/modify/init
|
|
||||||
if (row == null) {
|
|
||||||
row = rowUpdate.getOld(); // delete/modify
|
|
||||||
}
|
|
||||||
if (row != null) {
|
|
||||||
ret.add(new OpensyncAPVIFState(row));
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
LOG.error("Could not parse update for Wifi_VIF_State", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
OpensyncAWLANNode getOpensyncAWLANNode(TableUpdates tableUpdates, String apId, OvsdbClient ovsdbClient) {
|
|
||||||
OpensyncAWLANNode tableState = new OpensyncAWLANNode();
|
|
||||||
try {
|
|
||||||
for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) {
|
|
||||||
for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) {
|
|
||||||
Row row = rowUpdate.getNew();
|
|
||||||
if (row != null) {
|
|
||||||
tableState = new OpensyncAWLANNode(row);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
LOG.error("Failed to handle AWLAN_Node update", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
return tableState;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<OpensyncWifiAssociatedClients> getOpensyncWifiAssociatedClients(RowUpdate rowUpdate, String apId,
|
|
||||||
OvsdbClient ovsdbClient) {
|
|
||||||
Row row = rowUpdate.getNew();
|
|
||||||
if (row == null) {
|
|
||||||
row = rowUpdate.getOld();
|
|
||||||
}
|
|
||||||
if (row != null) {
|
|
||||||
return List.of(new OpensyncWifiAssociatedClients(row));
|
|
||||||
} else {
|
|
||||||
return List.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, String> getAPCState(RowUpdate rowUpdate, String apId) {
|
|
||||||
Map<String, String> ret = new HashMap<>();
|
|
||||||
if (rowUpdate.getNew() != null) {
|
|
||||||
Row row = rowUpdate.getNew();
|
|
||||||
ret.put("designatedRouterIp", getSingleValueFromSet(row, "dr_addr"));
|
|
||||||
ret.put("backupDesignatedRouterIp", getSingleValueFromSet(row, "bdr_addr"));
|
|
||||||
ret.put("enabled", getSingleValueFromSet(row, "enabled").toString());
|
|
||||||
ret.put("mode", getSingleValueFromSet(row, "mode"));
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,356 +0,0 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.TimeoutException;
|
|
||||||
import java.util.function.Predicate;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.equipment.models.NetworkForwardMode;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiInetConfigInfo;
|
|
||||||
import com.telecominfraproject.wlan.profile.models.Profile;
|
|
||||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
|
|
||||||
import com.telecominfraproject.wlan.profile.network.models.GreTunnelConfiguration;
|
|
||||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
|
|
||||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Delete;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Insert;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Update;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Function;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.ErrorResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.InsertResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.UpdateResult;
|
|
||||||
import com.vmware.ovsdb.service.OvsdbClient;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class OvsdbNetworkConfig extends OvsdbDaoBase {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
OvsdbGet ovsdbGet;
|
|
||||||
|
|
||||||
void configureGreTunnel(OvsdbClient ovsdbClient, Profile apNetworkConfiguration) {
|
|
||||||
try {
|
|
||||||
LOG.debug("Configure Gre Tunnel {}", apNetworkConfiguration);
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
|
|
||||||
ApNetworkConfiguration details = (ApNetworkConfiguration) apNetworkConfiguration.getDetails();
|
|
||||||
|
|
||||||
for (GreTunnelConfiguration greTunnelConfiguration : details.getGreTunnelConfigurations()) {
|
|
||||||
|
|
||||||
if (greTunnelConfiguration.getGreRemoteInetAddr() == null) {
|
|
||||||
LOG.info("Cannot configure GRE profile without gre_remote_inet_addr");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (greTunnelConfiguration.getGreTunnelName() == null) {
|
|
||||||
LOG.info("Cannot configure GRE profile without if_name");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, Value> tableColumns = new HashMap<>();
|
|
||||||
tableColumns.put("gre_remote_inet_addr",
|
|
||||||
new Atom<>(greTunnelConfiguration.getGreRemoteInetAddr().getHostAddress()));
|
|
||||||
tableColumns.put("if_name", new Atom<>(greTunnelConfiguration.getGreTunnelName()));
|
|
||||||
tableColumns.put("if_type", new Atom<>("gre"));
|
|
||||||
tableColumns.put("enabled", new Atom<>(true));
|
|
||||||
tableColumns.put("network", new Atom<>(true));
|
|
||||||
|
|
||||||
operations.add(new Insert(wifiInetConfigDbTable, new Row(tableColumns)));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (operations.isEmpty()) {
|
|
||||||
LOG.info("No GRE tunnels to be configured.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
if (res instanceof InsertResult) {
|
|
||||||
LOG.info("configureGreTunnel {}", ((InsertResult) res).toString());
|
|
||||||
} else if (res instanceof UpdateResult) {
|
|
||||||
LOG.info("configureGreTunnel {}", ((UpdateResult) res).toString());
|
|
||||||
} else if (res instanceof ErrorResult) {
|
|
||||||
LOG.error("configureGreTunnel error {}", (res));
|
|
||||||
throw new RuntimeException("configureGreTunnel " + ((ErrorResult) res).getError() + " "
|
|
||||||
+ ((ErrorResult) res).getDetails());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
|
||||||
LOG.error("Couldn't configure Gre Tunnel {}", apNetworkConfiguration, e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void configureGreTunnels(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
|
||||||
|
|
||||||
LOG.info("Configure Gre tunnels {}", opensyncApConfig.getApProfile());
|
|
||||||
if (opensyncApConfig.getApProfile() != null) {
|
|
||||||
configureGreTunnel(ovsdbClient, opensyncApConfig.getApProfile());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Insert or update Wifi_Inet_Interface for Wifi_VIF_Config table entry
|
|
||||||
*
|
|
||||||
* @param ovsdbClient
|
|
||||||
* @param ifName
|
|
||||||
* @param enabled
|
|
||||||
* @param ifType
|
|
||||||
* @param isUpdate
|
|
||||||
* @param isNat
|
|
||||||
*/
|
|
||||||
void configureInetInterface(OvsdbClient ovsdbClient, String ifName, boolean enabled, String ifType,
|
|
||||||
boolean isUpdate, boolean isNat, List<Operation> operations) {
|
|
||||||
Map<String, Value> tableColumns = new HashMap<>();
|
|
||||||
tableColumns.put("if_type", new Atom<>(ifType));
|
|
||||||
tableColumns.put("enabled", new Atom<>(enabled));
|
|
||||||
tableColumns.put("network", new Atom<>(true));
|
|
||||||
tableColumns.put("if_name", new Atom<>(ifName));
|
|
||||||
tableColumns.put("NAT", new Atom<>(isNat));
|
|
||||||
Row row = new Row(tableColumns);
|
|
||||||
if (isUpdate) {
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
conditions.add(new Condition("if_name", Function.EQUALS, new Atom<>(ifName)));
|
|
||||||
operations.add(new Update(wifiInetConfigDbTable, conditions, row));
|
|
||||||
} else {
|
|
||||||
operations.add(new Insert(wifiInetConfigDbTable, row));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param ovsdbClient
|
|
||||||
* @param vifInterfaceName
|
|
||||||
* @param enabled
|
|
||||||
* @param networkForwardMode
|
|
||||||
* @param operations
|
|
||||||
*/
|
|
||||||
void configureInetVifInterface(OvsdbClient ovsdbClient, String vifInterfaceName, boolean enabled,
|
|
||||||
NetworkForwardMode networkForwardMode, List<Operation> operations) {
|
|
||||||
Map<String, WifiInetConfigInfo> inetConfigs = ovsdbGet.getProvisionedWifiInetConfigs(ovsdbClient);
|
|
||||||
if (inetConfigs.containsKey(vifInterfaceName)) {
|
|
||||||
configureInetInterface(ovsdbClient, vifInterfaceName, enabled, "vif", true,
|
|
||||||
(networkForwardMode == NetworkForwardMode.NAT), operations);
|
|
||||||
} else {
|
|
||||||
configureInetInterface(ovsdbClient, vifInterfaceName, enabled, "vif", false,
|
|
||||||
(networkForwardMode == NetworkForwardMode.NAT), operations);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Use this to do any post configuration interface adjustment (i.e. turn on
|
|
||||||
* dhcp_sniff, etc.)
|
|
||||||
*/
|
|
||||||
void configureInterfaces(OvsdbClient ovsdbClient) {
|
|
||||||
configureWanInterfacesForDhcpSniffing(ovsdbClient);
|
|
||||||
}
|
|
||||||
|
|
||||||
void createVlanInterfaceInGreTunnel(OvsdbClient ovsdbClient, int vlanId, String greTunnel) {
|
|
||||||
try {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
Map<String, Value> tableColumns = new HashMap<>();
|
|
||||||
Map<String, WifiInetConfigInfo> inetConfigMap = ovsdbGet.getProvisionedWifiInetConfigs(ovsdbClient);
|
|
||||||
WifiInetConfigInfo parentTunnel = inetConfigMap.get(greTunnel);
|
|
||||||
if (parentTunnel == null) {
|
|
||||||
throw new RuntimeException("Cannot get tunnel interface " + parentTunnel + " for vlan " + vlanId);
|
|
||||||
}
|
|
||||||
tableColumns = new HashMap<>();
|
|
||||||
tableColumns.put("if_type", new Atom<>("bridge"));
|
|
||||||
tableColumns.put("vlan_id", new Atom<>(vlanId));
|
|
||||||
tableColumns.put("if_name", new Atom<>(parentTunnel.ifName + "_" + Integer.toString(vlanId)));
|
|
||||||
tableColumns.put("parent_ifname", new Atom<>(parentTunnel.ifName));
|
|
||||||
tableColumns.put("enabled", new Atom<>(true));
|
|
||||||
tableColumns.put("network", new Atom<>(true));
|
|
||||||
Row row = new Row(tableColumns);
|
|
||||||
operations.add(new Insert(wifiInetConfigDbTable, row));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
if (res instanceof InsertResult) {
|
|
||||||
LOG.info("createVlanNetworkInterfaces {}", ((InsertResult) res).toString());
|
|
||||||
} else if (res instanceof UpdateResult) {
|
|
||||||
LOG.info("createVlanNetworkInterfaces {}", ((UpdateResult) res).toString());
|
|
||||||
} else if (res instanceof ErrorResult) {
|
|
||||||
LOG.error("createVlanNetworkInterfaces error {}", (res));
|
|
||||||
throw new RuntimeException("createVlanNetworkInterfaces " + ((ErrorResult) res).getError() + " "
|
|
||||||
+ ((ErrorResult) res).getDetails());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
inetConfigMap = ovsdbGet.getProvisionedWifiInetConfigs(ovsdbClient);
|
|
||||||
LOG.debug("Provisioned vlan on greTunnel {}",
|
|
||||||
inetConfigMap.get(parentTunnel.ifName + "_" + Integer.toString(vlanId)));
|
|
||||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
|
||||||
LOG.error("Error in provisioning Vlan", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void createVlanNetworkInterfaces(OvsdbClient ovsdbClient, int vlanId) {
|
|
||||||
try {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
Map<String, Value> tableColumns = new HashMap<>();
|
|
||||||
Map<String, WifiInetConfigInfo> inetConfigMap = ovsdbGet.getProvisionedWifiInetConfigs(ovsdbClient);
|
|
||||||
WifiInetConfigInfo parentLanInterface = inetConfigMap.get(defaultLanInterfaceName);
|
|
||||||
if (parentLanInterface == null) {
|
|
||||||
throw new RuntimeException(
|
|
||||||
"Cannot get lan interface " + defaultLanInterfaceName + " for vlan " + vlanId);
|
|
||||||
}
|
|
||||||
tableColumns.put("if_type", new Atom<>("vlan"));
|
|
||||||
tableColumns.put("vlan_id", new Atom<>(vlanId));
|
|
||||||
tableColumns.put("if_name", new Atom<>(parentLanInterface.ifName + "_" + Integer.toString(vlanId)));
|
|
||||||
tableColumns.put("parent_ifname", new Atom<>(parentLanInterface.ifName));
|
|
||||||
tableColumns.put("enabled", new Atom<>(true));
|
|
||||||
tableColumns.put("network", new Atom<>(true));
|
|
||||||
tableColumns.put("ip_assign_scheme", new Atom<>(parentLanInterface.ipAssignScheme));
|
|
||||||
tableColumns.put("NAT", new Atom<>(parentLanInterface.nat));
|
|
||||||
tableColumns.put("mtu", new Atom<>(1500));
|
|
||||||
String[] inetAddress = parentLanInterface.inetAddr.split("\\.");
|
|
||||||
String vlanAddress = inetAddress[0] + "." + inetAddress[1] + "." + vlanId + "." + inetAddress[3];
|
|
||||||
tableColumns.put("inet_addr", new Atom<>(vlanAddress));
|
|
||||||
tableColumns.put("netmask", new Atom<>(parentLanInterface.netmask));
|
|
||||||
tableColumns.put("dhcpd", com.vmware.ovsdb.protocol.operation.notation.Map.of(parentLanInterface.dhcpd));
|
|
||||||
Row row = new Row(tableColumns);
|
|
||||||
if (inetConfigMap.containsKey(parentLanInterface.ifName + "_" + Integer.toString(vlanId))) {
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
conditions.add(new Condition("vlan_id", Function.EQUALS, new Atom<>(vlanId)));
|
|
||||||
conditions.add(new Condition("parent_ifname", Function.EQUALS, new Atom<>(parentLanInterface.ifName)));
|
|
||||||
operations.add(new Update(wifiInetConfigDbTable, conditions, row));
|
|
||||||
} else {
|
|
||||||
operations.add(new Insert(wifiInetConfigDbTable, row));
|
|
||||||
}
|
|
||||||
WifiInetConfigInfo parentWanInterface = inetConfigMap.get(defaultWanInterfaceName);
|
|
||||||
if (parentWanInterface == null) {
|
|
||||||
throw new RuntimeException(
|
|
||||||
"Cannot get wan interface " + defaultWanInterfaceName + " for vlan " + vlanId);
|
|
||||||
}
|
|
||||||
tableColumns = new HashMap<>();
|
|
||||||
tableColumns.put("if_type", new Atom<>("vlan"));
|
|
||||||
tableColumns.put("vlan_id", new Atom<>(vlanId));
|
|
||||||
tableColumns.put("if_name", new Atom<>(parentWanInterface.ifName + "_" + Integer.toString(vlanId)));
|
|
||||||
tableColumns.put("parent_ifname", new Atom<>(parentWanInterface.ifName));
|
|
||||||
tableColumns.put("enabled", new Atom<>(true));
|
|
||||||
tableColumns.put("network", new Atom<>(true));
|
|
||||||
tableColumns.put("ip_assign_scheme", new Atom<>(parentWanInterface.ipAssignScheme));
|
|
||||||
tableColumns.put("NAT", new Atom<>(parentWanInterface.nat));
|
|
||||||
tableColumns.put("mtu", new Atom<>(1500));
|
|
||||||
row = new Row(tableColumns);
|
|
||||||
if (inetConfigMap.containsKey(parentWanInterface.ifName + "_" + Integer.toString(vlanId))) {
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
conditions.add(new Condition("vlan_id", Function.EQUALS, new Atom<>(vlanId)));
|
|
||||||
conditions.add(new Condition("parent_ifname", Function.EQUALS, new Atom<>(parentWanInterface.ifName)));
|
|
||||||
} else {
|
|
||||||
operations.add(new Insert(wifiInetConfigDbTable, row));
|
|
||||||
}
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
if (res instanceof InsertResult) {
|
|
||||||
LOG.info("createVlanNetworkInterfaces {}", ((InsertResult) res).toString());
|
|
||||||
} else if (res instanceof UpdateResult) {
|
|
||||||
LOG.info("createVlanNetworkInterfaces {}", ((UpdateResult) res).toString());
|
|
||||||
} else if (res instanceof ErrorResult) {
|
|
||||||
LOG.error("createVlanNetworkInterfaces error {}", (res));
|
|
||||||
throw new RuntimeException("createVlanNetworkInterfaces " + ((ErrorResult) res).getError() + " "
|
|
||||||
+ ((ErrorResult) res).getDetails());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
inetConfigMap = ovsdbGet.getProvisionedWifiInetConfigs(ovsdbClient);
|
|
||||||
LOG.debug("Provisioned vlan on wan {} and lan {}",
|
|
||||||
inetConfigMap.get(parentWanInterface.ifName + "_" + Integer.toString(vlanId)),
|
|
||||||
inetConfigMap.get(parentLanInterface.ifName + "_" + Integer.toString(vlanId)));
|
|
||||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
|
||||||
LOG.error("Error in provisioning Vlan", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void createVlanNetworkInterfaces(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
|
||||||
Set<Integer> vlans = new HashSet<>();
|
|
||||||
for (Profile ssidProfile : opensyncApConfig.getSsidProfile()) {
|
|
||||||
Integer vlanId = ((SsidConfiguration) ssidProfile.getDetails()).getVlanId();
|
|
||||||
if (vlanId != null && vlanId > 1) {
|
|
||||||
vlans.add(vlanId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (Integer vlanId : vlans) {
|
|
||||||
Optional<GreTunnelConfiguration> tunnelConfiguration = ((ApNetworkConfiguration) opensyncApConfig
|
|
||||||
.getApProfile().getDetails()).getGreTunnelConfigurations().stream()
|
|
||||||
.filter(new Predicate<GreTunnelConfiguration>() {
|
|
||||||
@Override
|
|
||||||
public boolean test(GreTunnelConfiguration t) {
|
|
||||||
return t.getVlanIdsInGreTunnel().contains(vlanId);
|
|
||||||
}
|
|
||||||
}).findFirst();
|
|
||||||
if (tunnelConfiguration.isPresent()) {
|
|
||||||
createVlanInterfaceInGreTunnel(ovsdbClient, vlanId, tunnelConfiguration.get().getGreTunnelName());
|
|
||||||
} else {
|
|
||||||
createVlanNetworkInterfaces(ovsdbClient, vlanId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeAllInetConfigs(OvsdbClient ovsdbClient) {
|
|
||||||
try {
|
|
||||||
Collection<WifiInetConfigInfo> provisionedWifiInetConfigs = ovsdbGet
|
|
||||||
.getProvisionedWifiInetConfigs(ovsdbClient).values();
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
for (WifiInetConfigInfo wifiInetConfigInfo : provisionedWifiInetConfigs) {
|
|
||||||
if (wifiInetConfigInfo.vlanId > 1 || wifiInetConfigInfo.ifType.equals("vif")
|
|
||||||
|| wifiInetConfigInfo.ifName.startsWith("gre") || wifiInetConfigInfo.ifType.equals("gre")) {
|
|
||||||
conditions = new ArrayList<>();
|
|
||||||
conditions.add(new Condition("if_name", Function.EQUALS, new Atom<>(wifiInetConfigInfo.ifName)));
|
|
||||||
operations.add(new Delete(wifiInetConfigDbTable, conditions));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
LOG.info("Removed all existing vif, vlan, and gre interface configs from {}:", wifiInetConfigDbTable);
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.info("Op Result {}", res);
|
|
||||||
}
|
|
||||||
provisionedWifiInetConfigs = ovsdbGet.getProvisionedWifiInetConfigs(ovsdbClient).values();
|
|
||||||
for (WifiInetConfigInfo inetConfigInfo : provisionedWifiInetConfigs) {
|
|
||||||
if (inetConfigInfo.ifType.equals("vif") || inetConfigInfo.ifType.equals("gre")) {
|
|
||||||
throw new RuntimeException(
|
|
||||||
"Failed to remove all vif and gre interface configurations from Wifi_Inet_Config dbTable, still has "
|
|
||||||
+ provisionedWifiInetConfigs.stream().filter(new Predicate<WifiInetConfigInfo>() {
|
|
||||||
@Override
|
|
||||||
public boolean test(WifiInetConfigInfo t) {
|
|
||||||
if ((t.ifType.equals("vif")) || (t.ifType.equals("gre"))) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}).collect(Collectors.toList()));
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
|
||||||
LOG.error("Error in removeAllInetConfigs", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,420 +0,0 @@
|
|||||||
|
|
||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.TimeoutException;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
|
|
||||||
import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
|
|
||||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Select;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Update;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Function;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.ErrorResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.SelectResult;
|
|
||||||
import com.vmware.ovsdb.protocol.schema.DatabaseSchema;
|
|
||||||
import com.vmware.ovsdb.service.OvsdbClient;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class OvsdbNode extends OvsdbDaoBase {
|
|
||||||
String changeRedirectorAddress(OvsdbClient ovsdbClient, String apId, String newRedirectorAddress) {
|
|
||||||
try {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
|
|
||||||
updateColumns.put("redirector_addr", new Atom<>(newRedirectorAddress));
|
|
||||||
|
|
||||||
Row row = new Row(updateColumns);
|
|
||||||
operations.add(new Update(awlanNodeDbTable, row));
|
|
||||||
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
if (LOG.isDebugEnabled()) {
|
|
||||||
LOG.debug("Updated {} redirector_addr = {}", awlanNodeDbTable, newRedirectorAddress);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return newRedirectorAddress;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fillInLanIpAddressAndMac(OvsdbClient ovsdbClient, ConnectNodeInfo connectNodeInfo, String ifType) {
|
|
||||||
try {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
List<String> columns = new ArrayList<>();
|
|
||||||
// populate macAddress, ipV4Address from Wifi_Inet_State
|
|
||||||
|
|
||||||
columns.add("inet_addr");
|
|
||||||
columns.add("hwaddr");
|
|
||||||
columns.add("if_type");
|
|
||||||
columns.add("if_name");
|
|
||||||
|
|
||||||
conditions.add(new Condition("if_type", Function.EQUALS, new Atom<>(ifType)));
|
|
||||||
conditions.add(new Condition("if_name", Function.EQUALS, new Atom<>(defaultLanInterfaceName)));
|
|
||||||
|
|
||||||
operations.add(new Select(wifiInetStateDbTable, conditions, columns));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
if (LOG.isDebugEnabled()) {
|
|
||||||
LOG.debug("Select from {}:", wifiInetStateDbTable);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Row row = null;
|
|
||||||
if ((result != null) && (result.length > 0) && (result[0] instanceof SelectResult) && !((SelectResult) result[0]).getRows().isEmpty()) {
|
|
||||||
row = ((SelectResult) result[0]).getRows().iterator().next();
|
|
||||||
connectNodeInfo.lanIpV4Address = getSingleValueFromSet(row, "inet_addr");
|
|
||||||
connectNodeInfo.lanIfName = row.getStringColumn("if_name");
|
|
||||||
connectNodeInfo.lanIfType = getSingleValueFromSet(row, "if_type");
|
|
||||||
connectNodeInfo.lanMacAddress = getSingleValueFromSet(row, "hwaddr");
|
|
||||||
|
|
||||||
} else if ((result != null) && (result.length > 0) && (result[0] instanceof ErrorResult)) {
|
|
||||||
LOG.warn("Error reading from {} table: {}", wifiInetStateDbTable, result[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void fillInWanIpAddressAndMac(OvsdbClient ovsdbClient, ConnectNodeInfo connectNodeInfo, String ifType, String ifName) {
|
|
||||||
try {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
List<String> columns = new ArrayList<>();
|
|
||||||
// populate macAddress, ipV4Address from Wifi_Inet_State
|
|
||||||
|
|
||||||
columns.add("inet_addr");
|
|
||||||
columns.add("hwaddr");
|
|
||||||
columns.add("if_name");
|
|
||||||
columns.add("if_type");
|
|
||||||
|
|
||||||
conditions.add(new Condition("if_type", Function.EQUALS, new Atom<>(ifType)));
|
|
||||||
conditions.add(new Condition("if_name", Function.EQUALS, new Atom<>(ifName)));
|
|
||||||
|
|
||||||
operations.add(new Select(wifiInetStateDbTable, conditions, columns));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
if (LOG.isDebugEnabled()) {
|
|
||||||
LOG.debug("Select from {}:", wifiInetStateDbTable);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Row row = null;
|
|
||||||
if ((result != null) && (result.length > 0) && (result[0] instanceof SelectResult) && !((SelectResult) result[0]).getRows().isEmpty()) {
|
|
||||||
row = ((SelectResult) result[0]).getRows().iterator().next();
|
|
||||||
connectNodeInfo.ipV4Address = getSingleValueFromSet(row, "inet_addr");
|
|
||||||
connectNodeInfo.ifName = row.getStringColumn("if_name");
|
|
||||||
connectNodeInfo.ifType = getSingleValueFromSet(row, "if_type");
|
|
||||||
connectNodeInfo.macAddress = getSingleValueFromSet(row, "hwaddr");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
ConnectNodeInfo getConnectNodeInfo(OvsdbClient ovsdbClient) {
|
|
||||||
|
|
||||||
ConnectNodeInfo ret = new ConnectNodeInfo();
|
|
||||||
|
|
||||||
try {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
List<String> columns = new ArrayList<>();
|
|
||||||
columns.add("mqtt_settings");
|
|
||||||
columns.add("redirector_addr");
|
|
||||||
columns.add("manager_addr");
|
|
||||||
columns.add("sku_number");
|
|
||||||
columns.add("serial_number");
|
|
||||||
columns.add("model");
|
|
||||||
columns.add("firmware_version");
|
|
||||||
columns.add("platform_version");
|
|
||||||
columns.add("revision");
|
|
||||||
columns.add("version_matrix");
|
|
||||||
columns.add("id");
|
|
||||||
|
|
||||||
DatabaseSchema dbSchema = ovsdbClient.getSchema(ovsdbName).get();
|
|
||||||
Set<String> keys = dbSchema.getTables().get(awlanNodeDbTable).getColumns().keySet();
|
|
||||||
if (keys.containsAll(Set.of("reference_design", "model_description", "manufacturer_url", "manufacturer_name", "manufacturer_date",
|
|
||||||
"certification_region"))) {
|
|
||||||
columns.addAll(Set.of("reference_design", "model_description", "manufacturer_url", "manufacturer_name", "manufacturer_date",
|
|
||||||
"certification_region"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keys.contains("qr_code")) {
|
|
||||||
columns.add("qr_code");
|
|
||||||
}
|
|
||||||
|
|
||||||
operations.add(new Select(awlanNodeDbTable, conditions, columns));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
if (LOG.isDebugEnabled()) {
|
|
||||||
LOG.debug("Select from {}:", awlanNodeDbTable);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Row row = null;
|
|
||||||
if ((result != null) && (result.length > 0) && (result[0] instanceof SelectResult) && !((SelectResult) result[0]).getRows().isEmpty()) {
|
|
||||||
row = ((SelectResult) result[0]).getRows().iterator().next();
|
|
||||||
}
|
|
||||||
|
|
||||||
ret.mqttSettings = row != null ? row.getMapColumn("mqtt_settings") : null;
|
|
||||||
ret.versionMatrix = row != null ? row.getMapColumn("version_matrix") : null;
|
|
||||||
ret.redirectorAddr = row != null ? row.getStringColumn("redirector_addr") : null;
|
|
||||||
ret.managerAddr = row != null ? row.getStringColumn("manager_addr") : null;
|
|
||||||
|
|
||||||
ret.platformVersion = row != null ? row.getStringColumn("platform_version") : null;
|
|
||||||
ret.firmwareVersion = row != null ? row.getStringColumn("firmware_version") : null;
|
|
||||||
|
|
||||||
ret.revision = row != null ? row.getStringColumn("revision") : null;
|
|
||||||
|
|
||||||
ret.skuNumber = getSingleValueFromSet(row, "sku_number");
|
|
||||||
ret.serialNumber = getSingleValueFromSet(row, "serial_number");
|
|
||||||
ret.model = getSingleValueFromSet(row, "model");
|
|
||||||
|
|
||||||
if (keys.containsAll(Set.of("reference_design", "model_description", "manufacturer_url", "manufacturer_name", "manufacturer_date",
|
|
||||||
"certification_region"))) {
|
|
||||||
ret.referenceDesign = row.getStringColumn("reference_design");
|
|
||||||
ret.modelDescription = row.getStringColumn("model_description");
|
|
||||||
ret.manufacturerUrl = row.getStringColumn("manufacturer_url");
|
|
||||||
ret.manufacturerName = row.getStringColumn("manufacturer_name");
|
|
||||||
ret.manufacturerDate = row.getStringColumn("manufacturer_date");
|
|
||||||
ret.certificationRegion = row.getStringColumn("certification_region");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keys.contains("qr_code")) {
|
|
||||||
ret.qrCode = row.getMapColumn("qr_code");
|
|
||||||
}
|
|
||||||
|
|
||||||
// now populate macAddress, ipV4Address from Wifi_Inet_State
|
|
||||||
// first look them up for if_name = br-wan
|
|
||||||
fillInWanIpAddressAndMac(ovsdbClient, ret, defaultWanInterfaceType, defaultWanInterfaceName);
|
|
||||||
if ((ret.ipV4Address == null) || (ret.macAddress == null)) {
|
|
||||||
// when not found - look them up for if_name = br-lan
|
|
||||||
fillInWanIpAddressAndMac(ovsdbClient, ret, defaultLanInterfaceType, defaultLanInterfaceName);
|
|
||||||
|
|
||||||
if (ret.ipV4Address == null) {
|
|
||||||
throw new RuntimeException("Could not get inet address for Lan and Wan network interfaces. Node is not ready to connect.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fillInLanIpAddressAndMac(ovsdbClient, ret, defaultLanInterfaceType);
|
|
||||||
|
|
||||||
fillInRadioInterfaceNames(ovsdbClient, ret);
|
|
||||||
|
|
||||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
LOG.debug("ConnectNodeInfo created {}", ret);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
void performRedirect(OvsdbClient ovsdbClient, String clientCn) {
|
|
||||||
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
List<String> columns = new ArrayList<>();
|
|
||||||
columns.add("manager_addr");
|
|
||||||
columns.add("sku_number");
|
|
||||||
columns.add("serial_number");
|
|
||||||
columns.add("model");
|
|
||||||
columns.add("firmware_version");
|
|
||||||
|
|
||||||
try {
|
|
||||||
LOG.debug("Starting Redirect");
|
|
||||||
|
|
||||||
operations.add(new Select(awlanNodeDbTable, conditions, columns));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
LOG.debug("Select from AWLAN_Node:");
|
|
||||||
|
|
||||||
String skuNumber = null;
|
|
||||||
String serialNumber = null;
|
|
||||||
String model = null;
|
|
||||||
String firmwareVersion = null;
|
|
||||||
|
|
||||||
Row row = null;
|
|
||||||
if ((result != null) && (result.length > 0) && !((SelectResult) result[0]).getRows().isEmpty()) {
|
|
||||||
row = ((SelectResult) result[0]).getRows().iterator().next();
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
firmwareVersion = row != null ? row.getStringColumn("firmware_version") : null;
|
|
||||||
|
|
||||||
skuNumber = getSingleValueFromSet(row, "sku_number");
|
|
||||||
serialNumber = getSingleValueFromSet(row, "serial_number");
|
|
||||||
model = getSingleValueFromSet(row, "model");
|
|
||||||
|
|
||||||
LOG.info("Redirecting AP Node: clientCn {} serialNumber {} model {} firmwareVersion {} skuNumber {}", clientCn, serialNumber, model,
|
|
||||||
firmwareVersion, skuNumber);
|
|
||||||
|
|
||||||
// Update table AWLAN_Node - set manager_addr
|
|
||||||
operations.clear();
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
|
|
||||||
updateColumns.put("manager_addr", new Atom<>("ssl:" + managerIpAddr + ":" + ovsdbExternalPort));
|
|
||||||
|
|
||||||
row = new Row(updateColumns);
|
|
||||||
operations.add(new Update(awlanNodeDbTable, row));
|
|
||||||
|
|
||||||
fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
LOG.debug("Updated AWLAN_Node:");
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
|
|
||||||
LOG.debug("Redirect Done");
|
|
||||||
} catch (ExecutionException | InterruptedException | OvsdbClientException | TimeoutException e) {
|
|
||||||
LOG.error("Error when redirecting AP Node", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void rebootOrResetAp(OvsdbClient ovsdbClient, String desiredApAction) {
|
|
||||||
try {
|
|
||||||
LOG.debug("rebootOrResetAp on AP perform {}, setting timer for {} seconds.", desiredApAction, rebootOrResetTimerSeconds);
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
updateColumns.put("firmware_url", new Atom<>(desiredApAction));
|
|
||||||
updateColumns.put("upgrade_timer", new Atom<>(rebootOrResetTimerSeconds));
|
|
||||||
Row row = new Row(updateColumns);
|
|
||||||
operations.add(new Update(awlanNodeDbTable, row));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
|
|
||||||
OperationResult[] result = fResult.join();
|
|
||||||
for (OperationResult r : result) {
|
|
||||||
LOG.debug("Op Result {}", r);
|
|
||||||
}
|
|
||||||
} catch (OvsdbClientException e) {
|
|
||||||
LOG.error("Could not trigger {}", desiredApAction, e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
ConnectNodeInfo updateConnectNodeInfoOnConnect(OvsdbClient ovsdbClient, String clientCn, ConnectNodeInfo incomingConnectNodeInfo,
|
|
||||||
boolean preventCnAlteration) {
|
|
||||||
ConnectNodeInfo ret = incomingConnectNodeInfo.clone();
|
|
||||||
|
|
||||||
try {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
|
|
||||||
// set device_mode = cloud - plume's APs do not use it
|
|
||||||
// updateColumns.put("device_mode", new Atom<String>("cloud") );
|
|
||||||
|
|
||||||
// update sku_number if it was empty
|
|
||||||
if (( ret.skuNumber == null) || ret.skuNumber.isEmpty() || ret.skuNumber.equals("unknown") || ret.skuNumber.startsWith("tip.wlan_")) {
|
|
||||||
if ((ret.certificationRegion != null && !ret.certificationRegion.equals("unknown") ) && (ret.model != null && !ret.model.equals("unknown"))) {
|
|
||||||
if (ret.model.endsWith("-" + ret.certificationRegion)) {
|
|
||||||
updateColumns.put("sku_number", new Atom<>("TIP-" + ret.model));
|
|
||||||
ret.skuNumber = "TIP-" + ret.model;
|
|
||||||
} else {
|
|
||||||
updateColumns.put("sku_number", new Atom<>("TIP-" + ret.model + "-" + ret.certificationRegion));
|
|
||||||
ret.skuNumber = "TIP-" + ret.model + "-" + ret.certificationRegion;
|
|
||||||
}
|
|
||||||
} else if ((ret.country != null ) && (ret.model != null && !ret.model.equals("unknown"))) {
|
|
||||||
if (ret.model.endsWith("-" + ret.country)) {
|
|
||||||
updateColumns.put("sku_number", new Atom<>("TIP-" + ret.model));
|
|
||||||
ret.skuNumber = "TIP-" + ret.model;
|
|
||||||
} else {
|
|
||||||
updateColumns.put("sku_number", new Atom<>("TIP-" + ret.model + "-" + ret.country));
|
|
||||||
ret.skuNumber = "TIP-" + ret.model + "-" + ret.country;
|
|
||||||
}
|
|
||||||
} else if (ret.model != null && !ret.model.equals("unknown")){
|
|
||||||
updateColumns.put("sku_number", new Atom<>("TIP-" + ret.model));
|
|
||||||
ret.skuNumber = "TIP-" + ret.model;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Configure the MQTT connection
|
|
||||||
// ovsh u AWLAN_Node
|
|
||||||
// mqtt_settings:ins:'["map",[["broker","testportal.123wlan.com"],["topics","/ap/dev-ap-0300/opensync"],["qos","0"],["port","1883"],["remote_log","1"]]]'
|
|
||||||
Map<String, String> newMqttSettings = new HashMap<>();
|
|
||||||
newMqttSettings.put("broker", mqttBrokerAddress);
|
|
||||||
String mqttClientName = OvsdbToWlanCloudTypeMappingUtility.getAlteredClientCnIfRequired(clientCn, incomingConnectNodeInfo, preventCnAlteration);
|
|
||||||
newMqttSettings.put("topics", "/ap/" + mqttClientName + "/opensync");
|
|
||||||
newMqttSettings.put("port", "" + mqttBrokerExternalPort);
|
|
||||||
newMqttSettings.put("compress", "zlib");
|
|
||||||
newMqttSettings.put("qos", "0");
|
|
||||||
newMqttSettings.put("remote_log", "1");
|
|
||||||
|
|
||||||
if ((ret.mqttSettings == null) || !ret.mqttSettings.equals(newMqttSettings)) {
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Map<String, String> mgttSettings =
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Map.of(newMqttSettings);
|
|
||||||
ret.mqttSettings = newMqttSettings;
|
|
||||||
updateColumns.put("mqtt_settings", mgttSettings);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!updateColumns.isEmpty()) {
|
|
||||||
Row row = new Row(updateColumns);
|
|
||||||
operations.add(new Update(awlanNodeDbTable, row));
|
|
||||||
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
if (LOG.isDebugEnabled()) {
|
|
||||||
LOG.debug("Updated {}:", awlanNodeDbTable);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,122 +0,0 @@
|
|||||||
|
|
||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.TimeoutException;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
|
|
||||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
|
|
||||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Delete;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Insert;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Update;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Function;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.UpdateResult;
|
|
||||||
import com.vmware.ovsdb.service.OvsdbClient;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class OvsdbNodeConfig extends OvsdbDaoBase {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
OvsdbGet ovsdbGet;
|
|
||||||
|
|
||||||
public void configureNtpServer(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncAPConfig) {
|
|
||||||
try {
|
|
||||||
ApNetworkConfiguration apNetworkConfig = (ApNetworkConfiguration) opensyncAPConfig.getApProfile().getDetails();
|
|
||||||
if (apNetworkConfig.getNtpServer() == null || apNetworkConfig.getNtpServer().getValue() == null) {
|
|
||||||
LOG.info("Cannot configure NTP server to null value. {}", apNetworkConfig);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
LOG.debug("configureNtpServer update Node_Config to {}", apNetworkConfig.getNtpServer().getValue());
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
updateColumns.put("value", new Atom<>(apNetworkConfig.getNtpServer().getValue()));
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
operations.add(new Update(nodeConfigTable, List.of(new Condition("module", Function.EQUALS, new Atom<>("ntp"))), new Row(updateColumns)));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("configureNtpServer result {}", res);
|
|
||||||
}
|
|
||||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void configureSyslog(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncAPConfig) {
|
|
||||||
// /usr/opensync/tools/ovsh insert Node_Config module:="syslog" key:="remote" value:="udp:192.168.178.9:1000:4"
|
|
||||||
// The format is a colon delimited list. log_proto:log_ip:log_port:log_priority
|
|
||||||
try {
|
|
||||||
ApNetworkConfiguration apNetworkConfig = (ApNetworkConfiguration) opensyncAPConfig.getApProfile().getDetails();
|
|
||||||
if (apNetworkConfig.getSyslogRelay() == null ) {
|
|
||||||
LOG.info("Cannot configure syslog to null value. {}", apNetworkConfig);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (apNetworkConfig.getSyslogRelay().isEnabled()) {
|
|
||||||
|
|
||||||
if (apNetworkConfig.getSyslogRelay().getSrvHostIp() == null
|
|
||||||
|| apNetworkConfig.getSyslogRelay().getSeverity() == null) {
|
|
||||||
LOG.info("Cannot configure syslog remote_logging without SrvHostIp and Severity values. {}", apNetworkConfig);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
LOG.debug("configureSyslog remote_logging to {}", apNetworkConfig.getSyslogRelay());
|
|
||||||
Map<String, Value> columns = new HashMap<>();
|
|
||||||
columns.put("key", new Atom<>("remote"));
|
|
||||||
columns.put("module", new Atom<>("syslog"));
|
|
||||||
String delimitedValue = "udp:" + apNetworkConfig.getSyslogRelay().getSrvHostIp().getHostAddress() + ":" + String
|
|
||||||
.valueOf(apNetworkConfig.getSyslogRelay().getSrvHostPort() + ":" +String.valueOf(apNetworkConfig.getSyslogRelay().getSeverity().getId()));
|
|
||||||
columns.put("value", new Atom<>(delimitedValue));
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
operations.add(new Update(nodeConfigTable, List.of(new Condition("module", Function.EQUALS, new Atom<>("syslog"))), new Row(columns)));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
long numUpdates = 0;
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
if (res instanceof UpdateResult) {
|
|
||||||
numUpdates += ((UpdateResult) res).getCount();
|
|
||||||
LOG.debug("configureSyslog update result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (numUpdates == 0) {
|
|
||||||
// no records existed, insert the row instead
|
|
||||||
operations.clear();
|
|
||||||
operations.add(new Insert(nodeConfigTable, new Row(columns)));
|
|
||||||
fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("configureSyslog insert result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
LOG.debug("Disable remote_logging", apNetworkConfig.getSyslogRelay());
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
operations.add(new Delete(nodeConfigTable, List.of(new Condition("module", Function.EQUALS, new Atom<>("syslog")))));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
if (res instanceof UpdateResult) {
|
|
||||||
LOG.debug("configureSyslog disabled remote_logging {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,309 +0,0 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.TimeoutException;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.core.model.equipment.ChannelBandwidth;
|
|
||||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
|
||||||
import com.telecominfraproject.wlan.core.model.equipment.SourceType;
|
|
||||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
|
||||||
import com.telecominfraproject.wlan.equipment.models.ElementRadioConfiguration;
|
|
||||||
import com.telecominfraproject.wlan.equipment.models.MimoMode;
|
|
||||||
import com.telecominfraproject.wlan.equipment.models.RadioConfiguration;
|
|
||||||
import com.telecominfraproject.wlan.equipment.models.StateSetting;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiRadioConfigInfo;
|
|
||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiVifConfigInfo;
|
|
||||||
import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
|
|
||||||
import com.telecominfraproject.wlan.profile.rf.models.RfElementConfiguration;
|
|
||||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Update;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Function;
|
|
||||||
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.OperationResult;
|
|
||||||
import com.vmware.ovsdb.protocol.schema.DatabaseSchema;
|
|
||||||
import com.vmware.ovsdb.service.OvsdbClient;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class OvsdbRadioConfig extends OvsdbDaoBase {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
OvsdbGet ovsdbGet;
|
|
||||||
|
|
||||||
void configureWifiRadios(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncAPConfig) {
|
|
||||||
String country = opensyncAPConfig.getCountryCode(); // should be the
|
|
||||||
ApElementConfiguration apElementConfiguration = (ApElementConfiguration) opensyncAPConfig.getCustomerEquipment()
|
|
||||||
.getDetails();
|
|
||||||
RfConfiguration rfConfig = (RfConfiguration) opensyncAPConfig.getRfProfile().getDetails();
|
|
||||||
Map<String, WifiRadioConfigInfo> provisionedRadioConfigs = ovsdbGet.getProvisionedWifiRadioConfigs(ovsdbClient);
|
|
||||||
Map<String, WifiVifConfigInfo> vifConfigs = ovsdbGet.getProvisionedWifiVifConfigs(ovsdbClient);
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
try {
|
|
||||||
CompletableFuture<DatabaseSchema> cfDatabaseSchema = ovsdbClient.getSchema(ovsdbName);
|
|
||||||
DatabaseSchema databaseSchema = cfDatabaseSchema.get();
|
|
||||||
Set<String> columnNames = databaseSchema.getTables().get(wifiRadioConfigDbTable).getColumns().keySet();
|
|
||||||
|
|
||||||
for (RadioType radioType : apElementConfiguration.getRadioMap().keySet()) {
|
|
||||||
Map<String, String> hwConfig = new HashMap<>();
|
|
||||||
ElementRadioConfiguration elementRadioConfig = apElementConfiguration.getRadioMap().get(radioType);
|
|
||||||
RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(radioType);
|
|
||||||
boolean autoChannelSelection = rfElementConfig.getAutoChannelSelection();
|
|
||||||
int channel = elementRadioConfig.getActiveChannel(autoChannelSelection);
|
|
||||||
LOG.debug("configureWifiRadios autoChannelSelection {} activeChannel {} getChannelNumber {} ",
|
|
||||||
autoChannelSelection, channel, elementRadioConfig.getChannelNumber());
|
|
||||||
ChannelBandwidth bandwidth = rfElementConfig.getChannelBandwidth();
|
|
||||||
String ht_mode = getBandwidth(bandwidth);
|
|
||||||
RadioConfiguration radioConfig = apElementConfiguration.getAdvancedRadioMap().get(radioType);
|
|
||||||
int beaconInterval = rfElementConfig.getBeaconInterval();
|
|
||||||
boolean enabled = radioConfig.getRadioAdminState().equals(StateSetting.enabled);
|
|
||||||
int txPower;
|
|
||||||
if (elementRadioConfig.getEirpTxPower().getSource() == SourceType.profile) {
|
|
||||||
txPower = rfElementConfig.getEirpTxPower();
|
|
||||||
} else {
|
|
||||||
txPower = elementRadioConfig.getEirpTxPower().getValue();
|
|
||||||
}
|
|
||||||
String hwMode = getHwMode(rfElementConfig);
|
|
||||||
String freqBand = getHwConfigAndFreq(radioType, hwConfig);
|
|
||||||
String radioName = null;
|
|
||||||
for (String key : provisionedRadioConfigs.keySet()) {
|
|
||||||
if (provisionedRadioConfigs.get(key).freqBand.equals(freqBand)) {
|
|
||||||
radioName = key;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (radioName == null) continue;
|
|
||||||
String ifName = null; // for vifConfigs
|
|
||||||
if (radioName.equals(radio0)) {
|
|
||||||
ifName = defaultRadio0;
|
|
||||||
} else if (radioName.equals(radio1)) {
|
|
||||||
ifName = defaultRadio1;
|
|
||||||
} else if (radioName.equals(radio2)) {
|
|
||||||
ifName = defaultRadio2;
|
|
||||||
}
|
|
||||||
if (ifName == null) continue;
|
|
||||||
Set<Uuid> vifUuidsForRadio = new HashSet<>();
|
|
||||||
for (String key : vifConfigs.keySet()) {
|
|
||||||
if (key.contains(ifName))
|
|
||||||
vifUuidsForRadio.add(vifConfigs.get(key).uuid);
|
|
||||||
}
|
|
||||||
int mimoMode = MimoMode.none.getId();
|
|
||||||
if (rfElementConfig.getMimoMode() != null) {
|
|
||||||
mimoMode = rfElementConfig.getMimoMode().getId();
|
|
||||||
}
|
|
||||||
int maxNumClients = 0;
|
|
||||||
if (rfElementConfig.getMaxNumClients() != null) {
|
|
||||||
maxNumClients = rfElementConfig.getMaxNumClients();
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
configureWifiRadios(freqBand, channel, hwConfig, country.toUpperCase(), beaconInterval,
|
|
||||||
enabled, hwMode, ht_mode, txPower, mimoMode, vifUuidsForRadio, operations, maxNumClients,columnNames);
|
|
||||||
} catch (OvsdbClientException e) {
|
|
||||||
LOG.error("ConfigureWifiRadios failed with OvsdbClient exception.", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
} catch (TimeoutException e) {
|
|
||||||
LOG.error("ConfigureWifiRadios failed with Timeout.", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
} catch (ExecutionException e) {
|
|
||||||
LOG.error("ConfigureWifiRadios excecution failed.", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
LOG.error("ConfigureWifiRadios interrupted.", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
} catch (OvsdbClientException | ExecutionException | InterruptedException | TimeoutException e) {
|
|
||||||
LOG.error("configureWifiRadios error", e); throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
String getHwConfigAndFreq(RadioType radioType, Map<String, String> hwConfig) {
|
|
||||||
switch (radioType) {
|
|
||||||
case is2dot4GHz:
|
|
||||||
return "2.4G";
|
|
||||||
case is5GHz:
|
|
||||||
// 802.11h dfs (Dynamic Frequency Selection) aka military
|
|
||||||
// and
|
|
||||||
// weather radar
|
|
||||||
// avoidance protocol
|
|
||||||
// Must not be disabled (by law)
|
|
||||||
// NA for 2.4GHz
|
|
||||||
hwConfig.put("dfs_enable", "1");
|
|
||||||
hwConfig.put("dfs_ignorecac", "0");
|
|
||||||
hwConfig.put("dfs_usenol", "1");
|
|
||||||
return "5G";
|
|
||||||
case is5GHzL:
|
|
||||||
// 802.11h dfs (Dynamic Frequency Selection) aka military
|
|
||||||
// and
|
|
||||||
// weather radar
|
|
||||||
// avoidance protocol
|
|
||||||
// Must not be disabled (by law)
|
|
||||||
// NA for 2.4GHz
|
|
||||||
hwConfig.put("dfs_enable", "1");
|
|
||||||
hwConfig.put("dfs_ignorecac", "0");
|
|
||||||
hwConfig.put("dfs_usenol", "1");
|
|
||||||
return "5GL";
|
|
||||||
case is5GHzU:
|
|
||||||
// 802.11h dfs (Dynamic Frequency Selection) aka military
|
|
||||||
// and
|
|
||||||
// weather radar
|
|
||||||
// avoidance protocol
|
|
||||||
// Must not be disabled (by law)
|
|
||||||
// NA for 2.4GHz
|
|
||||||
hwConfig.put("dfs_enable", "1");
|
|
||||||
hwConfig.put("dfs_ignorecac", "0");
|
|
||||||
hwConfig.put("dfs_usenol", "1");
|
|
||||||
return "5GU";
|
|
||||||
default: // don't know this interface
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getBandwidth(ChannelBandwidth bandwidth) {
|
|
||||||
String ht_mode;
|
|
||||||
switch (bandwidth) {
|
|
||||||
case is20MHz:
|
|
||||||
ht_mode = "HT20";
|
|
||||||
break;
|
|
||||||
case is40MHz:
|
|
||||||
ht_mode = "HT40";
|
|
||||||
break;
|
|
||||||
case is80MHz:
|
|
||||||
ht_mode = "HT80";
|
|
||||||
break;
|
|
||||||
case is160MHz:
|
|
||||||
ht_mode = "HT160";
|
|
||||||
break;
|
|
||||||
case auto:
|
|
||||||
ht_mode = "0";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
ht_mode = null;
|
|
||||||
}
|
|
||||||
return ht_mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
String getHwMode(RfElementConfiguration rfElementConfig) {
|
|
||||||
String hwMode = null;
|
|
||||||
switch (rfElementConfig.getRadioMode()) {
|
|
||||||
case modeA:
|
|
||||||
hwMode = "11a";
|
|
||||||
break;
|
|
||||||
case modeAB:
|
|
||||||
hwMode = "11ab";
|
|
||||||
break;
|
|
||||||
case modeAC:
|
|
||||||
hwMode = "11ac";
|
|
||||||
break;
|
|
||||||
case modeB:
|
|
||||||
hwMode = "11b";
|
|
||||||
break;
|
|
||||||
case modeG:
|
|
||||||
hwMode = "11g";
|
|
||||||
break;
|
|
||||||
case modeAX:
|
|
||||||
hwMode = "11ax";
|
|
||||||
break;
|
|
||||||
case modeN:
|
|
||||||
hwMode = "11n";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
}
|
|
||||||
return hwMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
void configureWifiRadios(String freqBand, int channel, Map<String, String> hwConfig,
|
|
||||||
String country, int beaconInterval, boolean enabled, String hwMode, String ht_mode, int txPower,
|
|
||||||
int mimoMode, Set<Uuid> vifUuidsForRadio, List<Operation> operations, int maxNumClients, Set<String> tableColumns) throws OvsdbClientException, TimeoutException, ExecutionException, InterruptedException {
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
conditions.add(new Condition("freq_band", Function.EQUALS, new Atom<>(freqBand)));
|
|
||||||
updateColumns.put("channel", new Atom<>(channel));
|
|
||||||
updateColumns.put("country", new Atom<>(country));
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Map<String, String> hwConfigMap = com.vmware.ovsdb.protocol.operation.notation.Map
|
|
||||||
.of(hwConfig);
|
|
||||||
updateColumns.put("hw_config", hwConfigMap);
|
|
||||||
updateColumns.put("bcn_int", new Atom<>(beaconInterval));
|
|
||||||
updateColumns.put("enabled", new Atom<>(enabled));
|
|
||||||
if ((ht_mode != null) && !ht_mode.equals("0")) {
|
|
||||||
updateColumns.put("ht_mode", new Atom<>(ht_mode));
|
|
||||||
} else {
|
|
||||||
updateColumns.put("ht_mode", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
|
||||||
}
|
|
||||||
if (txPower > 0) {
|
|
||||||
updateColumns.put("tx_power", new Atom<>(txPower));
|
|
||||||
} else {
|
|
||||||
updateColumns.put("tx_power", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
|
||||||
}
|
|
||||||
if (hwMode != null) {
|
|
||||||
updateColumns.put("hw_mode", new Atom<>(hwMode));
|
|
||||||
}
|
|
||||||
configureCustomOptionsMap(maxNumClients, updateColumns);
|
|
||||||
setTxAndRxChainmask(mimoMode, updateColumns,tableColumns);
|
|
||||||
if (vifUuidsForRadio.size() > 0) {
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Set vifConfigUuids = com.vmware.ovsdb.protocol.operation.notation.Set
|
|
||||||
.of(vifUuidsForRadio);
|
|
||||||
updateColumns.put("vif_configs", vifConfigUuids);
|
|
||||||
}
|
|
||||||
Row row = new Row(updateColumns);
|
|
||||||
operations.add(new Update(wifiRadioConfigDbTable, conditions, row));
|
|
||||||
}
|
|
||||||
|
|
||||||
void configureCustomOptionsMap(int maxNumClients, Map<String, Value> updateColumns) {
|
|
||||||
Map<String,String> customOptions = new HashMap<>();
|
|
||||||
customOptions.put("max_clients", String.valueOf(maxNumClients));
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
com.vmware.ovsdb.protocol.operation.notation.Map<String, String> customOptionsMap = com.vmware.ovsdb.protocol.operation.notation.Map
|
|
||||||
.of(customOptions);
|
|
||||||
updateColumns.put("custom_options", customOptionsMap);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setTxAndRxChainmask(int mimoMode, Map<String, Value> updateColumns, Set<String> tableColumns) {
|
|
||||||
/*
|
|
||||||
* Chainmask is a bitmask, so map mimo mode values accordingly
|
|
||||||
* Note values 0, 1 remain unchanged
|
|
||||||
*
|
|
||||||
* mimoMode bitmask
|
|
||||||
* 0 0
|
|
||||||
* 1 1
|
|
||||||
* 2 3
|
|
||||||
* 3 7
|
|
||||||
* 4 15
|
|
||||||
*/
|
|
||||||
if (mimoMode == 2) {
|
|
||||||
mimoMode = 3;
|
|
||||||
} else if (mimoMode == 3) {
|
|
||||||
mimoMode = 7;
|
|
||||||
} else if (mimoMode == 4) {
|
|
||||||
mimoMode = 15;
|
|
||||||
}
|
|
||||||
updateColumns.put("tx_chainmask", new Atom<>(mimoMode));
|
|
||||||
if (tableColumns.contains("rx_chainmask")) {
|
|
||||||
updateColumns.put("rx_chainmask", new Atom<>(mimoMode));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,139 +0,0 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.TimeoutException;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
|
|
||||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
|
|
||||||
import com.telecominfraproject.wlan.profile.network.models.RadiusProxyConfiguration;
|
|
||||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Delete;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Insert;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Update;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Set;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.ErrorResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.UpdateResult;
|
|
||||||
import com.vmware.ovsdb.service.OvsdbClient;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class OvsdbRadiusProxyConfig extends OvsdbDaoBase {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
OvsdbGet getProvisionedData;
|
|
||||||
|
|
||||||
void configureApc(OvsdbClient ovsdbClient, Boolean enable, List<Operation> operations) {
|
|
||||||
try {
|
|
||||||
if (ovsdbClient.getSchema(ovsdbName).get().getTables().containsKey(apcConfigDbTable)) {
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
updateColumns.put("enabled", new Atom<>(enable));
|
|
||||||
Row row = new Row(updateColumns);
|
|
||||||
Update update = new Update(apcConfigDbTable, row);
|
|
||||||
if (!operations.contains(update)) {
|
|
||||||
// only need to do 1 update of this kind
|
|
||||||
operations.add(new Update(apcConfigDbTable, row));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (InterruptedException | ExecutionException | OvsdbClientException e) {
|
|
||||||
LOG.error("Exception getting schema for ovsdb.", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void configureRadius(OvsdbClient ovsdbClient, OpensyncAPConfig apConfig) {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
try {
|
|
||||||
if (ovsdbClient.getSchema(ovsdbName).get().getTables().containsKey(radiusConfigDbTable)) {
|
|
||||||
configureRadiusServers(ovsdbClient, apConfig, operations);
|
|
||||||
}
|
|
||||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
|
||||||
LOG.error("Exception provisioning RadSecConfiguraitons.", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void configureRadiusServers(OvsdbClient ovsdbClient, OpensyncAPConfig apConfig, List<Operation> operations)
|
|
||||||
throws OvsdbClientException, InterruptedException, ExecutionException, TimeoutException {
|
|
||||||
|
|
||||||
for (RadiusProxyConfiguration rsc : ((ApNetworkConfiguration) apConfig.getApProfile().getDetails())
|
|
||||||
.getRadiusProxyConfigurations()) {
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
updateColumns.put("server", new Atom<>(rsc.getServer().getHostAddress()));
|
|
||||||
getCertificateUrls(rsc, updateColumns);
|
|
||||||
updateColumns.put("radius_config_name", new Atom<>(rsc.getName()));
|
|
||||||
updateColumns.put("passphrase", new Atom<>(rsc.getPassphrase()));
|
|
||||||
updateColumns.put("port", new Atom<>(rsc.getPort()));
|
|
||||||
updateColumns.put("realm", Set.of(rsc.getRealm()));
|
|
||||||
updateColumns.put("radsec", new Atom<>(rsc.getUseRadSec()));
|
|
||||||
Row row = new Row(updateColumns);
|
|
||||||
operations.add(new Insert(radiusConfigDbTable, row));
|
|
||||||
}
|
|
||||||
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
if (LOG.isDebugEnabled()) {
|
|
||||||
LOG.debug("Insert into {}:", radiusConfigDbTable);
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void getCertificateUrls(RadiusProxyConfiguration rsc, Map<String, Value> updateColumns) {
|
|
||||||
String clientCertFilestoreUrl = externalFileStoreURL + rsc.getClientCert().getApExportUrl();
|
|
||||||
String clientKeyFilestoreUrl = externalFileStoreURL + rsc.getClientKey().getApExportUrl();
|
|
||||||
String caCertFilestoreUrl = externalFileStoreURL + rsc.getCaCert().getApExportUrl();
|
|
||||||
if (!clientCertFilestoreUrl.contains("filestore")) {
|
|
||||||
clientCertFilestoreUrl = externalFileStoreURL + "/filestore/" + rsc.getClientCert().getApExportUrl();
|
|
||||||
}
|
|
||||||
if (!clientKeyFilestoreUrl.contains("filestore")) {
|
|
||||||
clientKeyFilestoreUrl = externalFileStoreURL + "/filestore/" + rsc.getClientKey().getApExportUrl();
|
|
||||||
}
|
|
||||||
if (!caCertFilestoreUrl.contains("filestore")) {
|
|
||||||
caCertFilestoreUrl = externalFileStoreURL + "/filestore/" + rsc.getCaCert().getApExportUrl();
|
|
||||||
}
|
|
||||||
updateColumns.put("client_cert", new Atom<>(clientCertFilestoreUrl));
|
|
||||||
updateColumns.put("client_key", new Atom<>(clientKeyFilestoreUrl));
|
|
||||||
updateColumns.put("ca_cert", new Atom<>(caCertFilestoreUrl));
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeRadiusConfigurations(OvsdbClient ovsdbClient) {
|
|
||||||
LOG.info("removeRadiusConfigurations from {}", radiusConfigDbTable);
|
|
||||||
try {
|
|
||||||
if (ovsdbClient.getSchema(ovsdbName).get().getTables().containsKey(radiusConfigDbTable)) {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
operations.add(new Delete(radiusConfigDbTable));
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.info("Op Result {}", res);
|
|
||||||
if (res instanceof UpdateResult) {
|
|
||||||
LOG.info("removeRadiusConfigurations {}", res.toString());
|
|
||||||
} else if (res instanceof ErrorResult) {
|
|
||||||
LOG.error("removeRadiusConfigurations error {}", (res));
|
|
||||||
throw new RuntimeException("removeRadiusConfigurations "
|
|
||||||
+ ((ErrorResult) res).getError() + " " + ((ErrorResult) res).getDetails());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LOG.info("Removed all radius and realm configurations");
|
|
||||||
}
|
|
||||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
|
||||||
LOG.error("Error in removeRadiusConfigurations", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,380 +0,0 @@
|
|||||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.TimeoutException;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.core.model.equipment.AutoOrManualValue;
|
|
||||||
import com.telecominfraproject.wlan.core.model.equipment.RadioBestApSettings;
|
|
||||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
|
||||||
import com.telecominfraproject.wlan.core.model.equipment.SourceType;
|
|
||||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
|
||||||
import com.telecominfraproject.wlan.equipment.models.CellSizeAttributes;
|
|
||||||
import com.telecominfraproject.wlan.equipment.models.ElementRadioConfiguration;
|
|
||||||
import com.telecominfraproject.wlan.equipment.models.ManagementRate;
|
|
||||||
import com.telecominfraproject.wlan.equipment.models.MulticastRate;
|
|
||||||
import com.telecominfraproject.wlan.equipment.models.RadioConfiguration;
|
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
|
|
||||||
import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
|
|
||||||
import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
|
|
||||||
import com.telecominfraproject.wlan.profile.rf.models.RfElementConfiguration;
|
|
||||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Delete;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Insert;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.Update;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Function;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.ErrorResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.InsertResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
|
||||||
import com.vmware.ovsdb.protocol.operation.result.UpdateResult;
|
|
||||||
import com.vmware.ovsdb.protocol.schema.DatabaseSchema;
|
|
||||||
import com.vmware.ovsdb.service.OvsdbClient;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class OvsdbRrmConfig extends OvsdbDaoBase {
|
|
||||||
void configureWifiRrm(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
|
||||||
|
|
||||||
ApElementConfiguration apElementConfig = (ApElementConfiguration) opensyncApConfig.getCustomerEquipment()
|
|
||||||
.getDetails();
|
|
||||||
RfConfiguration rfConfig = (RfConfiguration) opensyncApConfig.getRfProfile().getDetails();
|
|
||||||
for (RadioType radioType : apElementConfig.getRadioMap().keySet()) {
|
|
||||||
String freqBand = null;
|
|
||||||
if (radioType == RadioType.is2dot4GHz) {
|
|
||||||
freqBand = "2.4G";
|
|
||||||
} else if (radioType == RadioType.is5GHzL) {
|
|
||||||
freqBand = "5GL";
|
|
||||||
} else if (radioType == RadioType.is5GHzU) {
|
|
||||||
freqBand = "5GU";
|
|
||||||
} else if (radioType == RadioType.is5GHz) {
|
|
||||||
freqBand = "5G";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rfConfig == null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
ElementRadioConfiguration elementRadioConfig = apElementConfig.getRadioMap().get(radioType);
|
|
||||||
RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(radioType);
|
|
||||||
if (elementRadioConfig == null || rfElementConfig == null) {
|
|
||||||
continue; // don't have a radio of this kind in the map
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean autoChannelSelection = rfElementConfig.getAutoChannelSelection();
|
|
||||||
int backupChannel = elementRadioConfig.getActiveBackupChannel(autoChannelSelection);
|
|
||||||
LOG.debug("configureWifiRadios autoChannelSelection {} activeBackupChannel {}",
|
|
||||||
autoChannelSelection, backupChannel);
|
|
||||||
|
|
||||||
AutoOrManualValue probeResponseThresholdDb = null;
|
|
||||||
AutoOrManualValue clientDisconnectThresholdDb = null;
|
|
||||||
|
|
||||||
if (elementRadioConfig.getProbeResponseThresholdDb() != null) {
|
|
||||||
probeResponseThresholdDb = getSourcedValue(elementRadioConfig.getProbeResponseThresholdDb().getSource(),
|
|
||||||
rfElementConfig.getProbeResponseThresholdDb(),
|
|
||||||
elementRadioConfig.getProbeResponseThresholdDb().getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (elementRadioConfig.getClientDisconnectThresholdDb() != null) {
|
|
||||||
clientDisconnectThresholdDb = getSourcedValue(
|
|
||||||
elementRadioConfig.getClientDisconnectThresholdDb().getSource(),
|
|
||||||
rfElementConfig.getClientDisconnectThresholdDb(),
|
|
||||||
elementRadioConfig.getClientDisconnectThresholdDb().getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
RadioConfiguration radioConfig = apElementConfig.getAdvancedRadioMap().get(radioType);
|
|
||||||
MulticastRate multicastRate = null;
|
|
||||||
ManagementRate managementRate = null;
|
|
||||||
RadioBestApSettings bestApSettings = null;
|
|
||||||
if (radioConfig != null) {
|
|
||||||
if (radioConfig.getMulticastRate() != null) {
|
|
||||||
multicastRate = radioConfig.getMulticastRate().getSource() == SourceType.profile
|
|
||||||
? rfElementConfig.getMulticastRate()
|
|
||||||
: radioConfig.getMulticastRate().getValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (radioConfig.getManagementRate() != null) {
|
|
||||||
managementRate = radioConfig.getManagementRate().getSource() == SourceType.profile
|
|
||||||
? rfElementConfig.getManagementRate()
|
|
||||||
: radioConfig.getManagementRate().getValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (radioConfig.getBestApSettings() != null) {
|
|
||||||
bestApSettings = radioConfig.getBestApSettings().getSource() == SourceType.profile
|
|
||||||
? rfElementConfig.getBestApSettings()
|
|
||||||
: radioConfig.getBestApSettings().getValue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (freqBand != null) {
|
|
||||||
try {
|
|
||||||
configureWifiRrm(ovsdbClient, freqBand, backupChannel, probeResponseThresholdDb,
|
|
||||||
clientDisconnectThresholdDb, managementRate, bestApSettings, multicastRate);
|
|
||||||
} catch (OvsdbClientException e) {
|
|
||||||
LOG.error("configureRrm failed with OvsdbClient exception.", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
} catch (TimeoutException e) {
|
|
||||||
LOG.error("configureRrm failed with Timeout.", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
} catch (ExecutionException e) {
|
|
||||||
LOG.error("configureRrm excecution failed.", e);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
LOG.error("configureRrm interrupted.", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void configureWifiRrm(OvsdbClient ovsdbClient, String freqBand, int backupChannel,
|
|
||||||
AutoOrManualValue probeResponseThreshold, AutoOrManualValue clientDisconnectThreshold,
|
|
||||||
ManagementRate managementRate, RadioBestApSettings bestApSettings, MulticastRate multicastRate)
|
|
||||||
throws OvsdbClientException, TimeoutException, ExecutionException, InterruptedException {
|
|
||||||
|
|
||||||
CompletableFuture<DatabaseSchema> cfDatabaseSchema = ovsdbClient.getSchema(ovsdbName);
|
|
||||||
DatabaseSchema databaseSchema = cfDatabaseSchema.get();
|
|
||||||
Set<String> columnNames = databaseSchema.getTables().get(wifiRrmConfigDbTable).getColumns().keySet();
|
|
||||||
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
|
|
||||||
updateColumns.put("freq_band", new Atom<>(freqBand));
|
|
||||||
updateColumns.put("backup_channel", new Atom<>(backupChannel));
|
|
||||||
if (columnNames.contains("freq_band")) updateColumns.put("freq_band", new Atom<>(freqBand));
|
|
||||||
if (columnNames.contains("backup_channel")) updateColumns.put("backup_channel", new Atom<>(backupChannel));
|
|
||||||
if (columnNames.contains("mcast_rate")) {
|
|
||||||
if (multicastRate == null || multicastRate == MulticastRate.auto) {
|
|
||||||
updateColumns.put("mcast_rate", new Atom<>(0));
|
|
||||||
} else {
|
|
||||||
updateColumns.put("mcast_rate", new Atom<>(managementRate.getId()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (columnNames.contains("probe_resp_threshold")) {
|
|
||||||
if (probeResponseThreshold == null || probeResponseThreshold.isAuto()) {
|
|
||||||
updateColumns.put("probe_resp_threshold", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
|
||||||
} else {
|
|
||||||
updateColumns.put("probe_resp_threshold", new Atom<>(probeResponseThreshold.getValue()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (columnNames.contains("client_disconnect_threshold")) {
|
|
||||||
if (clientDisconnectThreshold == null || clientDisconnectThreshold.isAuto()) {
|
|
||||||
updateColumns.put("client_disconnect_threshold", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
|
||||||
} else {
|
|
||||||
updateColumns.put("client_disconnect_threshold", new Atom<>(clientDisconnectThreshold.getValue()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (columnNames.contains("beacon_rate")) {
|
|
||||||
if (managementRate == null || managementRate == ManagementRate.auto) {
|
|
||||||
updateColumns.put("beacon_rate", new Atom<>(0));
|
|
||||||
} else {
|
|
||||||
updateColumns.put("beacon_rate", new Atom<>(managementRate.getId() * 10));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (columnNames.contains("min_load") && columnNames.contains("snr_percentage_drop")) {
|
|
||||||
if (bestApSettings == null) {
|
|
||||||
updateColumns.put("min_load", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
|
||||||
updateColumns.put("snr_percentage_drop", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
|
||||||
} else {
|
|
||||||
if (bestApSettings.getDropInSnrPercentage() == null) {
|
|
||||||
updateColumns.put("snr_percentage_drop", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
|
||||||
} else {
|
|
||||||
updateColumns.put("snr_percentage_drop", new Atom<>(bestApSettings.getDropInSnrPercentage()));
|
|
||||||
}
|
|
||||||
if (bestApSettings.getMinLoadFactor() == null) {
|
|
||||||
updateColumns.put("min_load", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
|
||||||
} else {
|
|
||||||
updateColumns.put("min_load", new Atom<>(bestApSettings.getMinLoadFactor()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Row row = new Row(updateColumns);
|
|
||||||
operations.add(new Insert(wifiRrmConfigDbTable, row));
|
|
||||||
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
LOG.debug("Provisioned rrm config with multicastRate {} Mbps for {}", multicastRate, freqBand);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.debug("Op Result {}", res);
|
|
||||||
|
|
||||||
if (res instanceof InsertResult) {
|
|
||||||
LOG.info("configureWifiRrm insert new row result {}", (res));
|
|
||||||
// for insert, make sure it is actually in the table
|
|
||||||
confirmRowExistsInTable(ovsdbClient, ((InsertResult) res).getUuid(), wifiRrmConfigDbTable);
|
|
||||||
} else if (res instanceof ErrorResult) {
|
|
||||||
LOG.error("configureWifiRrm error {}", (res));
|
|
||||||
throw new RuntimeException("configureWifiRrm " + ((ErrorResult) res).getError() + " " + ((ErrorResult) res).getDetails());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
AutoOrManualValue getSourcedValue(SourceType source, int profileValue, int equipmentValue) {
|
|
||||||
if (source == SourceType.profile) {
|
|
||||||
return AutoOrManualValue.createManualInstance(profileValue);
|
|
||||||
} else if (source == SourceType.auto) {
|
|
||||||
return AutoOrManualValue.createAutomaticInstance(equipmentValue);
|
|
||||||
}
|
|
||||||
return AutoOrManualValue.createManualInstance(equipmentValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
void processNewChannelsRequest(OvsdbClient ovsdbClient, Map<RadioType, Integer> backupChannelMap,
|
|
||||||
Map<RadioType, Integer> primaryChannelMap) {
|
|
||||||
|
|
||||||
LOG.info("OvsdbDao::processNewChannelsRequest backup {} primary {}", backupChannelMap, primaryChannelMap);
|
|
||||||
try {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
|
|
||||||
backupChannelMap.entrySet().stream().forEach(c -> {
|
|
||||||
String freqBand = OvsdbToWlanCloudTypeMappingUtility.getOvsdbRadioFreqBandForRadioType(c.getKey());
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
conditions.add(new Condition("freq_band", Function.EQUALS, new Atom<>(freqBand)));
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
updateColumns.put("backup_channel", new Atom<>(c.getValue()));
|
|
||||||
Row row = new Row(updateColumns);
|
|
||||||
operations.add(new Update(wifiRrmConfigDbTable, conditions, row));
|
|
||||||
});
|
|
||||||
|
|
||||||
primaryChannelMap.entrySet().stream().forEach(c -> {
|
|
||||||
String freqBand = OvsdbToWlanCloudTypeMappingUtility.getOvsdbRadioFreqBandForRadioType(c.getKey());
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
conditions.add(new Condition("freq_band", Function.EQUALS, new Atom<>(freqBand)));
|
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
|
||||||
updateColumns.put("channel", new Atom<>(c.getValue()));
|
|
||||||
Row row = new Row(updateColumns);
|
|
||||||
operations.add(new Update(wifiRadioConfigDbTable, conditions, row));
|
|
||||||
});
|
|
||||||
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.info("Op Result {}", res);
|
|
||||||
}
|
|
||||||
|
|
||||||
LOG.info("Updated ovsdb config for primary and backup channels.");
|
|
||||||
} catch (ExecutionException e) {
|
|
||||||
LOG.error("Error in processNewChannelsRequest", e);
|
|
||||||
} catch (OvsdbClientException | TimeoutException | InterruptedException e) {
|
|
||||||
LOG.error("Error in processNewChannelsRequest", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void processCellSizeAttributesRequest(OvsdbClient ovsdbClient, Map<RadioType, CellSizeAttributes> cellSizeAttributesMap) {
|
|
||||||
|
|
||||||
LOG.info("OvsdbDao::processCellSizeAttributesRequest cellSizeAttributes {}", cellSizeAttributesMap);
|
|
||||||
try {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
|
|
||||||
cellSizeAttributesMap.entrySet().stream().forEach(c -> {
|
|
||||||
String freqBand = OvsdbToWlanCloudTypeMappingUtility.getOvsdbRadioFreqBandForRadioType(c.getKey());
|
|
||||||
List<Condition> conditions = new ArrayList<>();
|
|
||||||
conditions.add(new Condition("freq_band", Function.EQUALS, new Atom<>(freqBand)));
|
|
||||||
Map<String, Value> updateRrmColumns = new HashMap<>();
|
|
||||||
|
|
||||||
CellSizeAttributes cellSizeAttributes = c.getValue();
|
|
||||||
MulticastRate multicastRate = cellSizeAttributes.getMulticastRate();
|
|
||||||
if (multicastRate == null || multicastRate == MulticastRate.auto) {
|
|
||||||
updateRrmColumns.put("mcast_rate", new Atom<>(0));
|
|
||||||
} else {
|
|
||||||
updateRrmColumns.put("mcast_rate", new Atom<>(multicastRate.getId()));
|
|
||||||
}
|
|
||||||
|
|
||||||
Integer probeResponseThreshold = cellSizeAttributes.getProbeResponseThresholdDb();
|
|
||||||
if (probeResponseThreshold == null) {
|
|
||||||
updateRrmColumns.put("probe_resp_threshold", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
|
||||||
} else {
|
|
||||||
updateRrmColumns.put("probe_resp_threshold", new Atom<>(probeResponseThreshold.intValue()));
|
|
||||||
}
|
|
||||||
|
|
||||||
Integer clientDisconnectThreshold = cellSizeAttributes.getClientDisconnectThresholdDb();
|
|
||||||
if (clientDisconnectThreshold == null) {
|
|
||||||
updateRrmColumns.put("client_disconnect_threshold", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
|
||||||
} else {
|
|
||||||
updateRrmColumns.put("client_disconnect_threshold", new Atom<>(clientDisconnectThreshold.intValue()));
|
|
||||||
}
|
|
||||||
|
|
||||||
ManagementRate managementRate = cellSizeAttributes.getManagementRate();
|
|
||||||
if (managementRate == null || managementRate == ManagementRate.auto) {
|
|
||||||
updateRrmColumns.put("beacon_rate", new Atom<>(0));
|
|
||||||
} else {
|
|
||||||
updateRrmColumns.put("beacon_rate", new Atom<>(managementRate.getId() * 10));
|
|
||||||
}
|
|
||||||
|
|
||||||
Row rowRrm = new Row(updateRrmColumns);
|
|
||||||
operations.add(new Update(wifiRrmConfigDbTable, conditions, rowRrm));
|
|
||||||
|
|
||||||
Map<String, Value> updateRadioColumns = new HashMap<>();
|
|
||||||
Integer txPower = cellSizeAttributes.getEirpTxPowerDb();
|
|
||||||
if (txPower > 0) {
|
|
||||||
updateRadioColumns.put("tx_power", new Atom<>(txPower));
|
|
||||||
} else {
|
|
||||||
updateRadioColumns.put("tx_power", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
|
||||||
}
|
|
||||||
Row rowRadio = new Row(updateRadioColumns);
|
|
||||||
operations.add(new Update(wifiRadioConfigDbTable, conditions, rowRadio));
|
|
||||||
});
|
|
||||||
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
LOG.info("Op Result {}", res);
|
|
||||||
|
|
||||||
if (res instanceof InsertResult) {
|
|
||||||
LOG.info("processCellSizeAttributesRequest insert new row result {}", (res));
|
|
||||||
// for insert, make sure it is actually in the table
|
|
||||||
confirmRowExistsInTable(ovsdbClient, ((InsertResult) res).getUuid(), wifiRrmConfigDbTable);
|
|
||||||
} else if (res instanceof ErrorResult) {
|
|
||||||
LOG.error("processCellSizeAttributesRequest error {}", (res));
|
|
||||||
throw new RuntimeException("processCellSizeAttributesRequest " + ((ErrorResult) res).getError() +
|
|
||||||
" " + ((ErrorResult) res).getDetails());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
LOG.info("Updated ovsdb config for cell size attributes.");
|
|
||||||
} catch (ExecutionException e) {
|
|
||||||
LOG.error("Error in processCellSizeAttributesRequest", e);
|
|
||||||
} catch (OvsdbClientException | TimeoutException | InterruptedException e) {
|
|
||||||
LOG.error("Error in processCellSizeAttributesRequest", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void removeWifiRrm(OvsdbClient ovsdbClient) {
|
|
||||||
try {
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
|
||||||
|
|
||||||
operations.add(new Delete(wifiRrmConfigDbTable));
|
|
||||||
|
|
||||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
|
||||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
LOG.info("Removed rrm from {}:", wifiRrmConfigDbTable);
|
|
||||||
|
|
||||||
for (OperationResult res : result) {
|
|
||||||
if (res instanceof UpdateResult) {
|
|
||||||
LOG.info("removeWifiRrm result {}", res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (ExecutionException | OvsdbClientException | TimeoutException | InterruptedException e) {
|
|
||||||
LOG.error("Error in removeRrm", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user