mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-01 02:57:49 +00:00
WIFI-767: Cloud Back End for Events Integration
Processing ClientSession metrics from AP, publishing to SystemEvents
This commit is contained in:
@@ -66,6 +66,7 @@ import com.telecominfraproject.wlan.opensync.external.integration.models.Opensyn
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAWLANNode;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.utils.MqttStatsPublisher;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDeviceType;
|
||||
import com.telecominfraproject.wlan.opensync.util.OvsdbStringConstants;
|
||||
import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
|
||||
@@ -130,7 +131,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
|
||||
@Autowired
|
||||
private FirmwareServiceInterface firmwareServiceInterface;
|
||||
@Autowired
|
||||
private OpensyncExternalIntegrationMqttMessageProcessor mqttMessageProcessor;
|
||||
private MqttStatsPublisher mqttMessageProcessor;
|
||||
|
||||
@Autowired
|
||||
private OpensyncCloudGatewayController gatewayController;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.telecominfraproject.wlan.opensync.external.integration;
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.utils;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
@@ -30,7 +30,6 @@ import com.telecominfraproject.wlan.client.session.models.ClientSessionDetails;
|
||||
import com.telecominfraproject.wlan.client.session.models.ClientSessionMetricDetails;
|
||||
import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.ChannelBandwidth;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.ChannelHopReason;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.DetectedAuthMode;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.NeighborScanPacketType;
|
||||
@@ -40,8 +39,9 @@ import com.telecominfraproject.wlan.core.model.equipment.SecurityType;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.WiFiSessionUtility;
|
||||
import com.telecominfraproject.wlan.core.model.utils.DecibelUtils;
|
||||
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
|
||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSession;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSessionMapInterface;
|
||||
import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
|
||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
|
||||
import com.telecominfraproject.wlan.profile.models.Profile;
|
||||
@@ -78,7 +78,6 @@ import com.telecominfraproject.wlan.status.models.Status;
|
||||
import com.telecominfraproject.wlan.status.models.StatusCode;
|
||||
import com.telecominfraproject.wlan.status.models.StatusDataType;
|
||||
import com.telecominfraproject.wlan.status.network.models.NetworkAdminStatusData;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeChannelHopEvent;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEventType;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallReportEvent;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallStartEvent;
|
||||
@@ -95,7 +94,6 @@ import sts.OpensyncStats.AssocType;
|
||||
import sts.OpensyncStats.CallReport;
|
||||
import sts.OpensyncStats.CallStart;
|
||||
import sts.OpensyncStats.CallStop;
|
||||
import sts.OpensyncStats.ChannelSwitchReason;
|
||||
import sts.OpensyncStats.Client;
|
||||
import sts.OpensyncStats.ClientReport;
|
||||
import sts.OpensyncStats.DNSProbeMetric;
|
||||
@@ -135,10 +133,10 @@ import wc.stats.IpDnsTelemetry.WCStatsReport;
|
||||
|
||||
@org.springframework.context.annotation.Profile("opensync_cloud_config")
|
||||
@Component
|
||||
public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
public class MqttStatsPublisher {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(MqttStatsPublisher.class);
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(OpensyncExternalIntegrationMqttMessageProcessor.class);
|
||||
|
||||
@Autowired
|
||||
private EquipmentServiceInterface equipmentServiceInterface;
|
||||
@Autowired
|
||||
@@ -150,9 +148,11 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
@Autowired
|
||||
private ClientServiceInterface clientServiceInterface;
|
||||
@Autowired
|
||||
private CloudEventDispatcherInterface equipmentMetricsCollectorInterface;
|
||||
private CloudEventDispatcherInterface cloudEventDispatcherInterface;
|
||||
@Autowired
|
||||
private RealtimeEventPublisher realtimeEventPublisher;
|
||||
|
||||
void processMqttMessage(String topic, WCStatsReport wcStatsReport) {
|
||||
public void processMqttMessage(String topic, WCStatsReport wcStatsReport) {
|
||||
LOG.info("Received WCStatsReport {}", wcStatsReport.toString());
|
||||
|
||||
LOG.debug("Received report on topic {}", topic);
|
||||
@@ -192,7 +192,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|
||||
}
|
||||
|
||||
void processMqttMessage(String topic, Report report) {
|
||||
public void processMqttMessage(String topic, Report report) {
|
||||
LOG.info("Received report on topic {} for ap {}", topic, report.getNodeID());
|
||||
int customerId = extractCustomerIdFromTopic(topic);
|
||||
String apId = extractApIdFromTopic(topic);
|
||||
@@ -251,12 +251,12 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|
||||
if (!metricRecordList.isEmpty()) {
|
||||
LOG.debug("Publishing Metrics {}", metricRecordList);
|
||||
equipmentMetricsCollectorInterface.publishMetrics(metricRecordList);
|
||||
cloudEventDispatcherInterface.publishMetrics(metricRecordList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void processMqttMessage(String topic, FlowReport flowReport) {
|
||||
public void processMqttMessage(String topic, FlowReport flowReport) {
|
||||
|
||||
LOG.info("Received report on topic {}", topic);
|
||||
int customerId = extractCustomerIdFromTopic(topic);
|
||||
@@ -323,9 +323,9 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|
||||
}
|
||||
|
||||
publishChannelHopEvents(customerId, equipmentId, e);
|
||||
|
||||
// TODO: add DHCP transaction processing, for now just log it
|
||||
realtimeEventPublisher.publishChannelHopEvents(customerId, equipmentId, e);
|
||||
|
||||
// TODO: add DHCP transaction processing, for now just log it
|
||||
for (DhcpTransaction dhcpTransaction : e.getDhcpTransactionList()) {
|
||||
LOG.info("DhcpTransaction {}", dhcpTransaction);
|
||||
}
|
||||
@@ -334,205 +334,135 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|
||||
}
|
||||
|
||||
private void publishChannelHopEvents(int customerId, long equipmentId, EventReport e) {
|
||||
|
||||
LOG.info("publishChannelHopEvents for customerId {} equipmentId {}");
|
||||
|
||||
List<SystemEvent> events = new ArrayList<>();
|
||||
|
||||
for (sts.OpensyncStats.EventReport.ChannelSwitchEvent channelSwitchEvent : e.getChannelSwitchList()) {
|
||||
Equipment equipment = equipmentServiceInterface.getOrNull(equipmentId);
|
||||
if (equipment == null)
|
||||
continue;
|
||||
RadioType radioType = null;
|
||||
Long timestamp = null;
|
||||
ChannelHopReason reason = null;
|
||||
Integer channel = null;
|
||||
if (channelSwitchEvent.hasBand()) {
|
||||
radioType = OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(channelSwitchEvent.getBand());
|
||||
}
|
||||
if (RadioType.isUnsupported(radioType)) {
|
||||
LOG.warn("publishChannelHopEvents:RadioType {} is unsupported, cannot send RealTimeChannelHopEvent for {}", radioType, channelSwitchEvent);
|
||||
continue;
|
||||
}
|
||||
if (channelSwitchEvent.hasTimestampMs()) {
|
||||
timestamp = channelSwitchEvent.getTimestampMs();
|
||||
}
|
||||
if (timestamp == null) {
|
||||
LOG.warn("publishChannelHopEvents:timestamp is null, cannot send RealTimeChannelHopEvent for {}", channelSwitchEvent);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (channelSwitchEvent.hasReason()) {
|
||||
if (channelSwitchEvent.getReason().equals(ChannelSwitchReason.high_interference)) reason = ChannelHopReason.HighInterference;
|
||||
else if (channelSwitchEvent.getReason().equals(ChannelSwitchReason.radar_detected)) reason = ChannelHopReason.RadarDetected;
|
||||
}
|
||||
if (ChannelHopReason.isUnsupported(reason)) {
|
||||
LOG.warn("publishChannelHopEvents:reason {} is unsupported, cannot send RealTimeChannelHopEvent for {}", channelSwitchEvent.getReason(), channelSwitchEvent);
|
||||
continue;
|
||||
}
|
||||
if (channelSwitchEvent.hasChannel()) {
|
||||
channel = channelSwitchEvent.getChannel();
|
||||
}
|
||||
if (channel == null) {
|
||||
LOG.warn("publishChannelHopEvents:channel is null, cannot send RealTimeChannelHopEvent for {}", channelSwitchEvent);
|
||||
continue;
|
||||
}
|
||||
|
||||
RealTimeChannelHopEvent channelHopEvent = new RealTimeChannelHopEvent(RealTimeEventType.Channel_Hop, customerId, equipmentId, radioType, channel, ((ApElementConfiguration)equipment.getDetails()).getRadioMap().get(radioType).getChannelNumber(), reason, timestamp);
|
||||
|
||||
events.add(channelHopEvent);
|
||||
|
||||
LOG.debug("publishChannelHopEvents:Adding ChannelHopEvent to bulk list {}", channelHopEvent);
|
||||
}
|
||||
|
||||
|
||||
if (events.size() > 0) {
|
||||
LOG.info("publishChannelHopEvents:publishEventsBulk: {}", events);
|
||||
equipmentMetricsCollectorInterface.publishEventsBulk(events);
|
||||
} else {
|
||||
LOG.info("publishChannelHopEvents:No ChannelHopEvents in report");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected void processClientConnectEvent(int customerId, long equipmentId, long locationId, EventReport e,
|
||||
sts.OpensyncStats.EventReport.ClientSession apEventClientSession) {
|
||||
ClientConnectEvent clientConnectEvent = apEventClientSession.getClientConnectEvent();
|
||||
|
||||
realtimeEventPublisher.publishClientConnectSuccessEvent(customerId, equipmentId, clientConnectEvent);
|
||||
|
||||
if (clientConnectEvent.hasStaMac()) {
|
||||
com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(customerId,
|
||||
MacAddress.valueOf(clientConnectEvent.getStaMac()));
|
||||
if (client == null) {
|
||||
client = new com.telecominfraproject.wlan.client.models.Client();
|
||||
com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(customerId,
|
||||
MacAddress.valueOf(clientConnectEvent.getStaMac()));
|
||||
if (client == null) {
|
||||
client = new com.telecominfraproject.wlan.client.models.Client();
|
||||
|
||||
client.setCustomerId(customerId);
|
||||
client.setMacAddress(MacAddress.valueOf(clientConnectEvent.getStaMac()));
|
||||
client.setCustomerId(customerId);
|
||||
client.setMacAddress(MacAddress.valueOf(clientConnectEvent.getStaMac()));
|
||||
|
||||
client.setDetails(new ClientInfoDetails());
|
||||
client.setDetails(new ClientInfoDetails());
|
||||
|
||||
client = clientServiceInterface.create(client);
|
||||
|
||||
}
|
||||
|
||||
ClientSession clientSession = clientServiceInterface.getSessionOrNull(customerId, equipmentId,
|
||||
MacAddress.valueOf(clientConnectEvent.getStaMac()));
|
||||
|
||||
if (clientSession == null) {
|
||||
clientSession = new ClientSession();
|
||||
}
|
||||
|
||||
clientSession.setCustomerId(customerId);
|
||||
clientSession.setEquipmentId(equipmentId);
|
||||
clientSession.setLocationId(locationId);
|
||||
clientSession.setMacAddress(MacAddress.valueOf(clientConnectEvent.getStaMac()));
|
||||
|
||||
ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
|
||||
clientSessionDetails.setSessionId(apEventClientSession.getSessionId());
|
||||
|
||||
if (clientConnectEvent.hasFbtUsed()) {
|
||||
|
||||
// TODO: mapping?
|
||||
|
||||
}
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsAssoc()) {
|
||||
clientSessionDetails.setAssocTimestamp(clientConnectEvent.getEvTimeBootupInUsAssoc());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsAuth()) {
|
||||
clientSessionDetails.setAuthTimestamp(clientConnectEvent.getEvTimeBootupInUsAuth());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsEapol()) {
|
||||
ClientEapDetails eapDetails = new ClientEapDetails();
|
||||
eapDetails.setEapSuccessTimestamp(clientConnectEvent.getEvTimeBootupInUsEapol());
|
||||
clientSessionDetails.setEapDetails(eapDetails);
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsFirstRx()) {
|
||||
clientSessionDetails.setFirstDataRcvdTimestamp(clientConnectEvent.getEvTimeBootupInUsFirstRx());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsFirstTx()) {
|
||||
clientSessionDetails.setFirstDataSentTimestamp(clientConnectEvent.getEvTimeBootupInUsFirstTx());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsIp()) {
|
||||
clientSessionDetails.setIpTimestamp(clientConnectEvent.getEvTimeBootupInUsIp());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsPortEnable()) {
|
||||
clientSessionDetails.setPortEnabledTimestamp(clientConnectEvent.getEvTimeBootupInUsPortEnable());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasCltId()) {
|
||||
clientSessionDetails.setHostname(clientConnectEvent.getCltId());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasSecType()) {
|
||||
clientSessionDetails.setSecurityType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getCloudSecurityTypeFromOpensyncStats(clientConnectEvent.getSecType()));
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasBand()) {
|
||||
clientSessionDetails.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(clientConnectEvent.getBand()));
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasAssocType()) {
|
||||
clientSessionDetails
|
||||
.setIsReassociation(clientConnectEvent.getAssocType().equals(AssocType.REASSOC));
|
||||
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasAssocRssi()) {
|
||||
clientSessionDetails.setAssocRssi(clientConnectEvent.getAssocRssi());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasSsid()) {
|
||||
clientSessionDetails.setSsid(clientConnectEvent.getSsid());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasUsing11K()) {
|
||||
clientSessionDetails.setIs11KUsed(clientConnectEvent.getUsing11K());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasUsing11R()) {
|
||||
clientSessionDetails.setIs11RUsed(clientConnectEvent.getUsing11R());
|
||||
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasUsing11V()) {
|
||||
clientSessionDetails.setIs11VUsed(clientConnectEvent.getUsing11V());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasIpAddr()) {
|
||||
try {
|
||||
clientSessionDetails
|
||||
.setIpAddress(InetAddress.getByAddress(clientConnectEvent.getIpAddr().toByteArray()));
|
||||
} catch (UnknownHostException e1) {
|
||||
LOG.error("Invalid Ip Address for client {}", clientConnectEvent.getIpAddr(), e);
|
||||
}
|
||||
}
|
||||
clientSessionDetails.setAssociationState(AssociationState._802_11_Associated);
|
||||
|
||||
if (clientSession.getDetails() == null) {
|
||||
clientSession.setDetails(clientSessionDetails);
|
||||
} else {
|
||||
clientSession.getDetails().mergeSession(clientSessionDetails);
|
||||
}
|
||||
|
||||
clientSession = clientServiceInterface.updateSession(clientSession);
|
||||
client = clientServiceInterface.create(client);
|
||||
|
||||
}
|
||||
|
||||
ClientSession clientSession = clientServiceInterface.getSessionOrNull(customerId, equipmentId,
|
||||
MacAddress.valueOf(clientConnectEvent.getStaMac()));
|
||||
|
||||
if (clientSession == null) {
|
||||
clientSession = new ClientSession();
|
||||
}
|
||||
|
||||
clientSession.setCustomerId(customerId);
|
||||
clientSession.setEquipmentId(equipmentId);
|
||||
clientSession.setLocationId(locationId);
|
||||
clientSession.setMacAddress(MacAddress.valueOf(clientConnectEvent.getStaMac()));
|
||||
|
||||
ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
|
||||
clientSessionDetails.setSessionId(clientConnectEvent.getSessionId());
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsAssoc()) {
|
||||
clientSessionDetails.setAssocTimestamp(clientConnectEvent.getEvTimeBootupInUsAssoc());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsAuth()) {
|
||||
clientSessionDetails.setAuthTimestamp(clientConnectEvent.getEvTimeBootupInUsAuth());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsEapol()) {
|
||||
ClientEapDetails eapDetails = new ClientEapDetails();
|
||||
eapDetails.setEapSuccessTimestamp(clientConnectEvent.getEvTimeBootupInUsEapol());
|
||||
clientSessionDetails.setEapDetails(eapDetails);
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsFirstRx()) {
|
||||
clientSessionDetails.setFirstDataRcvdTimestamp(clientConnectEvent.getEvTimeBootupInUsFirstRx());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsFirstTx()) {
|
||||
clientSessionDetails.setFirstDataSentTimestamp(clientConnectEvent.getEvTimeBootupInUsFirstTx());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsIp()) {
|
||||
clientSessionDetails.setIpTimestamp(clientConnectEvent.getEvTimeBootupInUsIp());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsPortEnable()) {
|
||||
clientSessionDetails.setPortEnabledTimestamp(clientConnectEvent.getEvTimeBootupInUsPortEnable());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasCltId()) {
|
||||
clientSessionDetails.setHostname(clientConnectEvent.getCltId());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasSecType()) {
|
||||
clientSessionDetails.setSecurityType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getCloudSecurityTypeFromOpensyncStats(clientConnectEvent.getSecType()));
|
||||
}
|
||||
|
||||
clientSessionDetails.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(clientConnectEvent.getBand()));
|
||||
|
||||
if (clientConnectEvent.hasAssocType()) {
|
||||
|
||||
clientSessionDetails.setIsReassociation(clientConnectEvent.getAssocType().equals(AssocType.REASSOC));
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasAssocRssi()) {
|
||||
clientSessionDetails.setAssocRssi(clientConnectEvent.getAssocRssi());
|
||||
}
|
||||
|
||||
clientSessionDetails.setSsid(clientConnectEvent.getSsid());
|
||||
|
||||
if (clientConnectEvent.hasUsing11K()) {
|
||||
clientSessionDetails.setIs11KUsed(clientConnectEvent.getUsing11K());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasUsing11R()) {
|
||||
clientSessionDetails.setIs11RUsed(clientConnectEvent.getUsing11R());
|
||||
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasUsing11V()) {
|
||||
clientSessionDetails.setIs11VUsed(clientConnectEvent.getUsing11V());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasIpAddr()) {
|
||||
try {
|
||||
clientSessionDetails
|
||||
.setIpAddress(InetAddress.getByAddress(clientConnectEvent.getIpAddr().toByteArray()));
|
||||
} catch (UnknownHostException e1) {
|
||||
LOG.error("Invalid Ip Address for client {}", clientConnectEvent.getIpAddr(), e);
|
||||
}
|
||||
}
|
||||
|
||||
clientSessionDetails.setAssociationState(AssociationState._802_11_Associated);
|
||||
|
||||
if (clientSession.getDetails() == null) {
|
||||
clientSession.setDetails(clientSessionDetails);
|
||||
} else {
|
||||
clientSession.getDetails().mergeSession(clientSessionDetails);
|
||||
}
|
||||
|
||||
clientSession = clientServiceInterface.updateSession(clientSession);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected void processClientDisconnectEvent(int customerId, long equipmentId, long locationId,
|
||||
sts.OpensyncStats.EventReport.ClientSession apEventClientSession) {
|
||||
ClientDisconnectEvent clientDisconnectEvent = apEventClientSession.getClientDisconnectEvent();
|
||||
|
||||
realtimeEventPublisher.publishClientDisconnectEvent(customerId, equipmentId, clientDisconnectEvent);
|
||||
if (clientDisconnectEvent.hasStaMac()) {
|
||||
|
||||
com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(customerId,
|
||||
@@ -615,66 +545,70 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
protected void processClientAuthEvent(int customerId, long equipmentId, long locationId,
|
||||
sts.OpensyncStats.EventReport.ClientSession apEventClientSession) {
|
||||
ClientAuthEvent clientAuthEvent = apEventClientSession.getClientAuthEvent();
|
||||
if (clientAuthEvent.hasStaMac()) {
|
||||
realtimeEventPublisher.publishClientAuthSystemEvent(customerId, equipmentId, clientAuthEvent);
|
||||
if (clientAuthEvent.hasStaMac()) {
|
||||
|
||||
com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(customerId,
|
||||
MacAddress.valueOf(clientAuthEvent.getStaMac()));
|
||||
if (client == null) {
|
||||
client = new com.telecominfraproject.wlan.client.models.Client();
|
||||
com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(customerId,
|
||||
MacAddress.valueOf(clientAuthEvent.getStaMac()));
|
||||
if (client == null) {
|
||||
client = new com.telecominfraproject.wlan.client.models.Client();
|
||||
|
||||
client.setCustomerId(customerId);
|
||||
client.setMacAddress(MacAddress.valueOf(clientAuthEvent.getStaMac()));
|
||||
client.setCustomerId(customerId);
|
||||
client.setMacAddress(MacAddress.valueOf(clientAuthEvent.getStaMac()));
|
||||
|
||||
client.setDetails(new ClientInfoDetails());
|
||||
client.setDetails(new ClientInfoDetails());
|
||||
|
||||
client = clientServiceInterface.create(client);
|
||||
client = clientServiceInterface.create(client);
|
||||
|
||||
}
|
||||
|
||||
ClientSession clientSession = clientServiceInterface.getSessionOrNull(customerId, equipmentId,
|
||||
MacAddress.valueOf(clientAuthEvent.getStaMac()));
|
||||
|
||||
if (clientSession == null) {
|
||||
clientSession = new ClientSession();
|
||||
}
|
||||
|
||||
clientSession.setCustomerId(customerId);
|
||||
clientSession.setEquipmentId(equipmentId);
|
||||
clientSession.setLocationId(locationId);
|
||||
clientSession.setMacAddress(MacAddress.valueOf(clientAuthEvent.getStaMac()));
|
||||
|
||||
ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
|
||||
|
||||
clientSessionDetails.setSessionId(apEventClientSession.getSessionId());
|
||||
|
||||
if (clientAuthEvent.hasBand()) {
|
||||
clientSessionDetails.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(clientAuthEvent.getBand()));
|
||||
}
|
||||
if (clientAuthEvent.hasSsid()) {
|
||||
clientSessionDetails.setSsid(clientAuthEvent.getSsid());
|
||||
}
|
||||
if (clientAuthEvent.hasAuthStatus()) {
|
||||
clientSessionDetails.setAssociationState(AssociationState._802_11_Authenticated);
|
||||
}
|
||||
|
||||
if (clientSession.getDetails() == null) {
|
||||
clientSession.setDetails(clientSessionDetails);
|
||||
} else {
|
||||
clientSession.getDetails().mergeSession(clientSessionDetails);
|
||||
}
|
||||
|
||||
clientSession = clientServiceInterface.updateSession(clientSession);
|
||||
|
||||
} else {
|
||||
LOG.warn("Cannot update client or client session when no client mac address is present");
|
||||
}
|
||||
|
||||
|
||||
ClientSession clientSession = clientServiceInterface.getSessionOrNull(customerId, equipmentId,
|
||||
MacAddress.valueOf(clientAuthEvent.getStaMac()));
|
||||
|
||||
if (clientSession == null) {
|
||||
clientSession = new ClientSession();
|
||||
}
|
||||
|
||||
clientSession.setCustomerId(customerId);
|
||||
clientSession.setEquipmentId(equipmentId);
|
||||
clientSession.setLocationId(locationId);
|
||||
clientSession.setMacAddress(MacAddress.valueOf(clientAuthEvent.getStaMac()));
|
||||
|
||||
ClientSessionDetails clientSessionDetails = new ClientSessionDetails();
|
||||
|
||||
clientSessionDetails.setSessionId(apEventClientSession.getSessionId());
|
||||
|
||||
if (clientAuthEvent.hasBand()) {
|
||||
clientSessionDetails.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(clientAuthEvent.getBand()));
|
||||
}
|
||||
if (clientAuthEvent.hasSsid()) {
|
||||
clientSessionDetails.setSsid(clientAuthEvent.getSsid());
|
||||
}
|
||||
if (clientAuthEvent.hasAuthStatus()) {
|
||||
clientSessionDetails.setAssociationState(AssociationState._802_11_Authenticated);
|
||||
}
|
||||
|
||||
if (clientSession.getDetails() == null) {
|
||||
clientSession.setDetails(clientSessionDetails);
|
||||
} else {
|
||||
clientSession.getDetails().mergeSession(clientSessionDetails);
|
||||
}
|
||||
|
||||
clientSession = clientServiceInterface.updateSession(clientSession);
|
||||
|
||||
} else {
|
||||
LOG.warn("Cannot update client or client session when no client mac address is present");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected void processClientAssocEvent(int customerId, long equipmentId, long locationId,
|
||||
sts.OpensyncStats.EventReport.ClientSession apEventClientSession) {
|
||||
ClientAssocEvent clientAssocEvent = apEventClientSession.getClientAssocEvent();
|
||||
realtimeEventPublisher.publishClientAssocEvent(customerId, equipmentId, clientAssocEvent);
|
||||
|
||||
if (clientAssocEvent.hasStaMac()) {
|
||||
com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(customerId,
|
||||
MacAddress.valueOf(clientAssocEvent.getStaMac()));
|
||||
@@ -745,6 +679,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected void processClientFailureEvent(int customerId, long equipmentId, long locationId,
|
||||
sts.OpensyncStats.EventReport.ClientSession apEventClientSession) {
|
||||
ClientFailureEvent clientFailureEvent = apEventClientSession.getClientFailureEvent();
|
||||
@@ -807,9 +743,12 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected void processClientFirstDataEvent(int customerId, long equipmentId, long locationId,
|
||||
sts.OpensyncStats.EventReport.ClientSession apEventClientSession) {
|
||||
ClientFirstDataEvent clientFirstDataEvent = apEventClientSession.getClientFirstDataEvent();
|
||||
realtimeEventPublisher.publishClientFirstDataEvent(customerId, equipmentId, clientFirstDataEvent);
|
||||
if (clientFirstDataEvent.hasStaMac()) {
|
||||
|
||||
com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(customerId,
|
||||
@@ -866,9 +805,11 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected void processClientIdEvent(int customerId, long equipmentId, long locationId,
|
||||
sts.OpensyncStats.EventReport.ClientSession apEventClientSession) {
|
||||
ClientIdEvent clientIdEvent = apEventClientSession.getClientIdEvent();
|
||||
realtimeEventPublisher.publishClientIdEvent(customerId, equipmentId, clientIdEvent);
|
||||
if (clientIdEvent.hasCltMac()) {
|
||||
|
||||
com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(customerId,
|
||||
@@ -915,9 +856,12 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected void processClientIpEvent(int customerId, long equipmentId, long locationId,
|
||||
sts.OpensyncStats.EventReport.ClientSession apEventClientSession) {
|
||||
ClientIpEvent clientIpEvent = apEventClientSession.getClientIpEvent();
|
||||
realtimeEventPublisher.publishClientIpEvent(customerId, equipmentId, clientIpEvent);
|
||||
if (clientIpEvent.hasStaMac()) {
|
||||
|
||||
com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(customerId,
|
||||
@@ -951,8 +895,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
clientSessionDetails.setSessionId(apEventClientSession.getSessionId());
|
||||
|
||||
try {
|
||||
clientSessionDetails
|
||||
.setIpAddress(InetAddress.getByAddress(clientIpEvent.getIpAddr().toByteArray()));
|
||||
clientSessionDetails.setIpAddress(InetAddress.getByAddress(clientIpEvent.getIpAddr().toByteArray()));
|
||||
} catch (UnknownHostException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
@@ -975,6 +918,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
protected void processClientTimeoutEvent(int customerId, long equipmentId, long locationId,
|
||||
sts.OpensyncStats.EventReport.ClientSession apEventClientSession) {
|
||||
ClientTimeoutEvent clientTimeoutEvent = apEventClientSession.getClientTimeoutEvent();
|
||||
realtimeEventPublisher.publishClientTimeoutEvent(customerId, equipmentId, clientTimeoutEvent);
|
||||
if (clientTimeoutEvent.hasStaMac()) {
|
||||
|
||||
com.telecominfraproject.wlan.client.models.Client client = clientServiceInterface.getOrNull(customerId,
|
||||
@@ -1039,6 +983,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void populateSipCallReport(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId,
|
||||
String apId, long locationId) {
|
||||
// only in case it is not there, we will just use the time when we
|
||||
@@ -1069,13 +1015,13 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
}
|
||||
|
||||
if (eventsList.size() > 0) {
|
||||
equipmentMetricsCollectorInterface.publishEventsBulk(eventsList);
|
||||
cloudEventDispatcherInterface.publishEventsBulk(eventsList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void processRealTimeSipCallReportEvent(int customerId, long equipmentId, long eventTimestamp,
|
||||
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
|
||||
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
|
||||
if (videoVoiceReport.hasCallReport()) {
|
||||
|
||||
CallReport callReport = videoVoiceReport.getCallReport();
|
||||
@@ -1084,7 +1030,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
eventTimestamp);
|
||||
|
||||
if (callReport.hasClientMac() && callReport.getClientMac().isValidUtf8()) {
|
||||
cloudSipCallReportEvent.setClientMacAddress(MacAddress.valueOf(callReport.getClientMac().toStringUtf8()));
|
||||
cloudSipCallReportEvent
|
||||
.setClientMacAddress(MacAddress.valueOf(callReport.getClientMac().toStringUtf8()));
|
||||
}
|
||||
cloudSipCallReportEvent.setStatuses(processRtpFlowStats(callReport.getStatsList()));
|
||||
cloudSipCallReportEvent.setEventType(RealTimeEventType.SipCallReport);
|
||||
@@ -1120,14 +1067,14 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
private SIPCallReportReason getCallReportReason(CallReport.CallReportReason reason) {
|
||||
if (reason != null) {
|
||||
switch (reason) {
|
||||
case ROAMED_TO:
|
||||
return SIPCallReportReason.ROAMED_TO;
|
||||
case GOT_PUBLISH:
|
||||
return SIPCallReportReason.GOT_PUBLISH;
|
||||
case ROAMED_FROM:
|
||||
return SIPCallReportReason.ROAMED_FROM;
|
||||
default:
|
||||
return SIPCallReportReason.UNSUPPORTED;
|
||||
case ROAMED_TO:
|
||||
return SIPCallReportReason.ROAMED_TO;
|
||||
case GOT_PUBLISH:
|
||||
return SIPCallReportReason.GOT_PUBLISH;
|
||||
case ROAMED_FROM:
|
||||
return SIPCallReportReason.ROAMED_FROM;
|
||||
default:
|
||||
return SIPCallReportReason.UNSUPPORTED;
|
||||
}
|
||||
}
|
||||
return SIPCallReportReason.UNSUPPORTED;
|
||||
@@ -1143,7 +1090,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
eventTimestamp);
|
||||
|
||||
if (apCallStart.hasClientMac() && apCallStart.getClientMac().isValidUtf8()) {
|
||||
cloudSipCallStartEvent.setClientMacAddress(MacAddress.valueOf(apCallStart.getClientMac().toStringUtf8()));
|
||||
cloudSipCallStartEvent
|
||||
.setClientMacAddress(MacAddress.valueOf(apCallStart.getClientMac().toStringUtf8()));
|
||||
}
|
||||
|
||||
if (apCallStart.hasDeviceInfo()) {
|
||||
@@ -1278,7 +1226,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
}
|
||||
|
||||
if (apStreamVideoServer.hasClientMac() && apStreamVideoServer.getClientMac().isValidUtf8()) {
|
||||
rtsStartEvent.setClientMacAddress(MacAddress.valueOf(apStreamVideoServer.getClientMac().toStringUtf8()));
|
||||
rtsStartEvent
|
||||
.setClientMacAddress(MacAddress.valueOf(apStreamVideoServer.getClientMac().toStringUtf8()));
|
||||
}
|
||||
|
||||
if (apStreamVideoServer.hasSessionId()) {
|
||||
@@ -1294,7 +1243,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
private List<com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats> processRtpFlowStats(List<OpensyncStats.RtpFlowStats> stats) {
|
||||
private List<com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats> processRtpFlowStats(
|
||||
List<OpensyncStats.RtpFlowStats> stats) {
|
||||
List<com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats> cloudRtpFlowStatsList = new ArrayList<>();
|
||||
for (RtpFlowStats apRtpFlowStats : stats) {
|
||||
|
||||
@@ -1322,34 +1272,34 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|
||||
if (apRtpFlowStats.hasDirection()) {
|
||||
switch (apRtpFlowStats.getDirection()) {
|
||||
case RTP_DOWNSTREAM:
|
||||
cloudRtpStats.setDirection(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.DOWNSTREAM);
|
||||
break;
|
||||
case RTP_UPSTREAM:
|
||||
cloudRtpStats.setDirection(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UPSTREAM);
|
||||
break;
|
||||
default:
|
||||
cloudRtpStats.setDirection(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UNSUPPORTED);
|
||||
case RTP_DOWNSTREAM:
|
||||
cloudRtpStats.setDirection(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.DOWNSTREAM);
|
||||
break;
|
||||
case RTP_UPSTREAM:
|
||||
cloudRtpStats.setDirection(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UPSTREAM);
|
||||
break;
|
||||
default:
|
||||
cloudRtpStats.setDirection(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UNSUPPORTED);
|
||||
}
|
||||
}
|
||||
|
||||
if (apRtpFlowStats.hasRtpFlowType()) {
|
||||
switch (apRtpFlowStats.getRtpFlowType()) {
|
||||
case RTP_VIDEO:
|
||||
cloudRtpStats.setFlowType(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VIDEO);
|
||||
break;
|
||||
case RTP_VOICE:
|
||||
cloudRtpStats.setFlowType(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VOICE);
|
||||
break;
|
||||
default:
|
||||
cloudRtpStats.setFlowType(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.UNSUPPORTED);
|
||||
break;
|
||||
case RTP_VIDEO:
|
||||
cloudRtpStats
|
||||
.setFlowType(com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VIDEO);
|
||||
break;
|
||||
case RTP_VOICE:
|
||||
cloudRtpStats
|
||||
.setFlowType(com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VOICE);
|
||||
break;
|
||||
default:
|
||||
cloudRtpStats.setFlowType(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.UNSUPPORTED);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1676,13 +1626,13 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
RadioUtilization radioUtil = new RadioUtilization();
|
||||
radioUtil.setTimestampSeconds((int) ((survey.getTimestampMs()) / 1000));
|
||||
int pctBusyTx = busyTx / totalDurationMs;
|
||||
checkIfOutOfBound("pctBusyTx", pctBusyTx, survey, totalDurationMs, busyTx, busyRx, busy, busySelf);
|
||||
|
||||
checkIfOutOfBound("pctBusyTx", pctBusyTx, survey, totalDurationMs, busyTx, busyRx, busy, busySelf);
|
||||
|
||||
radioUtil.setAssocClientTx(pctBusyTx);
|
||||
int pctBusyRx = busyRx / totalDurationMs;
|
||||
checkIfOutOfBound("pctBusyRx", pctBusyRx, survey, totalDurationMs, busyTx, busyRx, busy, busySelf);
|
||||
radioUtil.setAssocClientRx(pctBusyRx);
|
||||
|
||||
|
||||
double pctIBSS = (busyTx + busySelf) / totalDurationMs;
|
||||
radioUtil.setIbss(pctIBSS);
|
||||
int nonWifi = (busy - (busyTx + busyRx)) / totalDurationMs;
|
||||
@@ -1727,23 +1677,23 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|
||||
updateDeviceStatusRadioUtilizationReport(customerId, equipmentId, radioUtilizationReport);
|
||||
}
|
||||
|
||||
private void checkIfOutOfBound(String checkedType, int checkedValue, Survey survey, int totalDurationMs,
|
||||
int busyTx, int busyRx, int busy, int busySelf) {
|
||||
if (checkedValue > 100 || checkedValue < 0) {
|
||||
LOG.warn("Calculated value for {} {} is out of bounds on totalDurationMs {} for survey.getBand {}. busyTx {} busyRx {} busy {} busySelf {} "
|
||||
+ " survey.getTimestampMs {}, survey.getSurveyListList {}",
|
||||
checkedType, checkedValue, totalDurationMs, survey.getBand(), busyTx, busyRx, busy, busySelf,
|
||||
survey.getTimestampMs(), survey.getSurveyListList());
|
||||
}
|
||||
|
||||
private void checkIfOutOfBound(String checkedType, int checkedValue, Survey survey, int totalDurationMs, int busyTx,
|
||||
int busyRx, int busy, int busySelf) {
|
||||
if (checkedValue > 100 || checkedValue < 0) {
|
||||
LOG.warn(
|
||||
"Calculated value for {} {} is out of bounds on totalDurationMs {} for survey.getBand {}. busyTx {} busyRx {} busy {} busySelf {} "
|
||||
+ " survey.getTimestampMs {}, survey.getSurveyListList {}",
|
||||
checkedType, checkedValue, totalDurationMs, survey.getBand(), busyTx, busyRx, busy, busySelf,
|
||||
survey.getTimestampMs(), survey.getSurveyListList());
|
||||
}
|
||||
}
|
||||
|
||||
private void updateNetworkAdminStatusReport(int customerId, long equipmentId, ApNodeMetrics apNodeMetrics) {
|
||||
apNodeMetrics.getNetworkProbeMetrics().forEach(n -> {
|
||||
|
||||
|
||||
LOG.info("Update NetworkAdminStatusReport for NetworkProbeMetrics {}", n.toString());
|
||||
|
||||
|
||||
Status networkAdminStatus = statusServiceInterface.getOrNull(customerId, equipmentId,
|
||||
StatusDataType.NETWORK_ADMIN);
|
||||
|
||||
@@ -1756,9 +1706,9 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
networkAdminStatus.setDetails(new NetworkAdminStatusData());
|
||||
networkAdminStatus = statusServiceInterface.update(networkAdminStatus);
|
||||
}
|
||||
|
||||
|
||||
NetworkAdminStatusData statusData = (NetworkAdminStatusData) networkAdminStatus.getDetails();
|
||||
|
||||
|
||||
if (n.getDnsState() == null) {
|
||||
LOG.debug("No DnsState present in networkProbeMetrics, DnsState and CloudLinkStatus set to 'normal");
|
||||
statusData.setDnsStatus(StatusCode.normal);
|
||||
@@ -1791,7 +1741,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
}
|
||||
|
||||
private static StatusCode stateUpDownErrorToStatusCode(StateUpDownError state) {
|
||||
|
||||
|
||||
switch (state) {
|
||||
case enabled:
|
||||
return StatusCode.normal;
|
||||
@@ -1887,7 +1837,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (networkProbe.hasVlanProbe()) {
|
||||
@@ -1938,7 +1887,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
for (Client cl : clReport.getClientListList()) {
|
||||
|
||||
if (cl.getMacAddress() == null) {
|
||||
LOG.debug("No mac address for Client {}, cannot set device mac address for client in ClientMetrics.",
|
||||
LOG.debug(
|
||||
"No mac address for Client {}, cannot set device mac address for client in ClientMetrics.",
|
||||
cl);
|
||||
continue;
|
||||
}
|
||||
@@ -2161,7 +2111,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|| ssidConfig.getSecureMode().equals(SecureMode.wpa2OnlyPSK)) {
|
||||
latestClientSessionDetails.setSecurityType(SecurityType.PSK);
|
||||
} else if (ssidConfig.getSecureMode().equals(SecureMode.wpa3OnlySAE)
|
||||
|| ssidConfig.getSecureMode().equals(SecureMode.wpa3MixedSAE)){
|
||||
|| ssidConfig.getSecureMode().equals(SecureMode.wpa3MixedSAE)) {
|
||||
latestClientSessionDetails.setSecurityType(SecurityType.SAE);
|
||||
} else if (ssidConfig.getSecureMode().equals(SecureMode.wpa2Radius)
|
||||
|| ssidConfig.getSecureMode().equals(SecureMode.wpaRadius)
|
||||
@@ -2476,16 +2426,15 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
|
||||
|
||||
ProfileContainer profileContainer = new ProfileContainer(
|
||||
profileServiceInterface.getProfileWithChildren(profileId));
|
||||
|
||||
|
||||
Profile rfProfile = profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf);
|
||||
RfConfiguration rfConfig = null;
|
||||
if (rfProfile != null) {
|
||||
rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf)
|
||||
.getDetails();
|
||||
rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf).getDetails();
|
||||
}
|
||||
|
||||
|
||||
if (rfConfig == null) {
|
||||
LOG.warn("Cannot get RfConfiguration for customerId {} equipmentId {}", customerId,equipmentId);
|
||||
LOG.warn("Cannot get RfConfiguration for customerId {} equipmentId {}", customerId, equipmentId);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,480 @@
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.utils;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.telecominfraproject.wlan.client.models.events.realtime.ClientConnectSuccessEvent;
|
||||
import com.telecominfraproject.wlan.client.models.events.realtime.ClientDisconnectEvent.DisconnectFrameType;
|
||||
import com.telecominfraproject.wlan.client.models.events.realtime.ClientDisconnectEvent.DisconnectInitiator;
|
||||
import com.telecominfraproject.wlan.client.models.events.realtime.ClientTimeoutEvent.ClientTimeoutReason;
|
||||
import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.ChannelHopReason;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
|
||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeChannelHopEvent;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEventType;
|
||||
import com.telecominfraproject.wlan.systemevent.models.SystemEvent;
|
||||
import com.telecominfraproject.wlan.systemevent.models.SystemEventRecord;
|
||||
|
||||
import sts.OpensyncStats.AssocType;
|
||||
import sts.OpensyncStats.CTReasonType;
|
||||
import sts.OpensyncStats.ChannelSwitchReason;
|
||||
import sts.OpensyncStats.DeviceType;
|
||||
import sts.OpensyncStats.EventReport;
|
||||
import sts.OpensyncStats.FrameType;
|
||||
import sts.OpensyncStats.EventReport.ClientAssocEvent;
|
||||
import sts.OpensyncStats.EventReport.ClientAuthEvent;
|
||||
import sts.OpensyncStats.EventReport.ClientConnectEvent;
|
||||
import sts.OpensyncStats.EventReport.ClientDisconnectEvent;
|
||||
import sts.OpensyncStats.EventReport.ClientFailureEvent;
|
||||
import sts.OpensyncStats.EventReport.ClientFirstDataEvent;
|
||||
import sts.OpensyncStats.EventReport.ClientIdEvent;
|
||||
import sts.OpensyncStats.EventReport.ClientIpEvent;
|
||||
import sts.OpensyncStats.EventReport.ClientTimeoutEvent;
|
||||
|
||||
@org.springframework.context.annotation.Profile("opensync_cloud_config")
|
||||
@Component
|
||||
public class RealtimeEventPublisher {
|
||||
|
||||
@Autowired
|
||||
private CloudEventDispatcherInterface cloudEventDispatcherInterface;
|
||||
|
||||
@Autowired
|
||||
private EquipmentServiceInterface equipmentServiceInterface;
|
||||
|
||||
private static final Logger LOG = LoggerFactory
|
||||
.getLogger(RealtimeEventPublisher.class);
|
||||
|
||||
void publishChannelHopEvents(int customerId, long equipmentId, EventReport e) {
|
||||
|
||||
LOG.info("publishChannelHopEvents for customerId {} equipmentId {}");
|
||||
|
||||
List<SystemEvent> events = new ArrayList<>();
|
||||
List<SystemEventRecord> eventRecords = new ArrayList<>();
|
||||
|
||||
for (sts.OpensyncStats.EventReport.ChannelSwitchEvent channelSwitchEvent : e.getChannelSwitchList()) {
|
||||
Equipment equipment = equipmentServiceInterface.getOrNull(equipmentId);
|
||||
if (equipment == null)
|
||||
continue;
|
||||
RadioType radioType = null;
|
||||
Long timestamp = null;
|
||||
ChannelHopReason reason = null;
|
||||
Integer channel = null;
|
||||
if (channelSwitchEvent.hasBand()) {
|
||||
radioType = OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(channelSwitchEvent.getBand());
|
||||
}
|
||||
if (RadioType.isUnsupported(radioType)) {
|
||||
LOG.warn(
|
||||
"publishChannelHopEvents:RadioType {} is unsupported, cannot send RealTimeChannelHopEvent for {}",
|
||||
radioType, channelSwitchEvent);
|
||||
continue;
|
||||
}
|
||||
if (channelSwitchEvent.hasTimestampMs()) {
|
||||
timestamp = channelSwitchEvent.getTimestampMs();
|
||||
}
|
||||
if (timestamp == null) {
|
||||
LOG.warn("publishChannelHopEvents:timestamp is null, cannot send RealTimeChannelHopEvent for {}",
|
||||
channelSwitchEvent);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (channelSwitchEvent.hasReason()) {
|
||||
if (channelSwitchEvent.getReason().equals(ChannelSwitchReason.high_interference))
|
||||
reason = ChannelHopReason.HighInterference;
|
||||
else if (channelSwitchEvent.getReason().equals(ChannelSwitchReason.radar_detected))
|
||||
reason = ChannelHopReason.RadarDetected;
|
||||
}
|
||||
if (ChannelHopReason.isUnsupported(reason)) {
|
||||
LOG.warn("publishChannelHopEvents:reason {} is unsupported, cannot send RealTimeChannelHopEvent for {}",
|
||||
channelSwitchEvent.getReason(), channelSwitchEvent);
|
||||
continue;
|
||||
}
|
||||
if (channelSwitchEvent.hasChannel()) {
|
||||
channel = channelSwitchEvent.getChannel();
|
||||
}
|
||||
if (channel == null) {
|
||||
LOG.warn("publishChannelHopEvents:channel is null, cannot send RealTimeChannelHopEvent for {}",
|
||||
channelSwitchEvent);
|
||||
continue;
|
||||
}
|
||||
|
||||
RealTimeChannelHopEvent channelHopEvent = new RealTimeChannelHopEvent(RealTimeEventType.Channel_Hop,
|
||||
customerId, equipmentId, radioType, channel,
|
||||
((ApElementConfiguration) equipment.getDetails()).getRadioMap().get(radioType).getChannelNumber(),
|
||||
reason, timestamp);
|
||||
|
||||
events.add(channelHopEvent);
|
||||
eventRecords.add(new SystemEventRecord(channelHopEvent));
|
||||
LOG.debug("publishChannelHopEvents:Adding ChannelHopEvent to bulk list {}", channelHopEvent);
|
||||
}
|
||||
|
||||
if (events.size() > 0) {
|
||||
LOG.info("publishChannelHopEvents:publishEventsBulk: {}", events);
|
||||
cloudEventDispatcherInterface.publishEventsBulk(events);
|
||||
} else {
|
||||
LOG.info("publishChannelHopEvents:No ChannelHopEvents in report");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void publishClientConnectSuccessEvent(int customerId, long equipmentId, ClientConnectEvent clientConnectEvent) {
|
||||
ClientConnectSuccessEvent clientEvent = new ClientConnectSuccessEvent();
|
||||
clientEvent.setMacAddress(MacAddress.valueOf(clientConnectEvent.getStaMac()));
|
||||
clientEvent.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(clientConnectEvent.getBand()));
|
||||
clientEvent.setSsid(clientConnectEvent.getSsid());
|
||||
clientEvent.setSessionId(clientConnectEvent.getSessionId());
|
||||
|
||||
if (clientConnectEvent.hasFbtUsed()) {
|
||||
clientEvent.setFbtUsed(clientConnectEvent.getFbtUsed());
|
||||
}
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsAssoc()) {
|
||||
clientEvent.setAssocTs(clientConnectEvent.getEvTimeBootupInUsAssoc());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsAuth()) {
|
||||
clientEvent.setAuthTs(clientConnectEvent.getEvTimeBootupInUsAuth());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsEapol()) {
|
||||
clientEvent.setEapolTs(clientConnectEvent.getEvTimeBootupInUsEapol());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsFirstRx()) {
|
||||
clientEvent.setFirstDataRxTs(clientConnectEvent.getEvTimeBootupInUsFirstRx());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsFirstTx()) {
|
||||
clientEvent.setFirstDataTxTs(clientConnectEvent.getEvTimeBootupInUsFirstTx());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsIp()) {
|
||||
clientEvent.setIpAcquisitionTs(clientConnectEvent.getEvTimeBootupInUsIp());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasEvTimeBootupInUsPortEnable()) {
|
||||
clientEvent.setPortEnabledTs(clientConnectEvent.getEvTimeBootupInUsPortEnable());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasCltId()) {
|
||||
clientEvent.setHostName(clientConnectEvent.getCltId());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasSecType()) {
|
||||
clientEvent.setSecurityType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getCloudSecurityTypeFromOpensyncStats(clientConnectEvent.getSecType()));
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasAssocType()) {
|
||||
clientEvent.setReassociation(clientConnectEvent.getAssocType().equals(AssocType.REASSOC));
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasAssocRssi()) {
|
||||
clientEvent.setAssocRSSI(clientConnectEvent.getAssocRssi());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasUsing11K()) {
|
||||
clientEvent.setUsing11k(clientConnectEvent.getUsing11K());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasUsing11R()) {
|
||||
clientEvent.setUsing11r(clientConnectEvent.getUsing11R());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasUsing11V()) {
|
||||
clientEvent.setUsing11v(clientConnectEvent.getUsing11V());
|
||||
}
|
||||
|
||||
if (clientConnectEvent.hasIpAddr()) {
|
||||
try {
|
||||
clientEvent.setIpAddr(InetAddress.getByAddress(clientConnectEvent.getIpAddr().toByteArray()));
|
||||
|
||||
} catch (UnknownHostException e1) {
|
||||
LOG.error("Invalid Ip Address for client {}", clientConnectEvent.getIpAddr(), e1);
|
||||
}
|
||||
}
|
||||
|
||||
clientEvent.setCustomerId(customerId);
|
||||
clientEvent.setEquipmentId(equipmentId);
|
||||
cloudEventDispatcherInterface.publishEvent(clientEvent);
|
||||
|
||||
}
|
||||
|
||||
void publishClientDisconnectEvent(int customerId, long equipmentId, ClientDisconnectEvent clientDisconnectEvent) {
|
||||
com.telecominfraproject.wlan.client.models.events.realtime.ClientDisconnectEvent clientEvent;
|
||||
|
||||
if (clientDisconnectEvent.hasTimestampMs()) {
|
||||
long timestampMs = clientDisconnectEvent.getTimestampMs();
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientDisconnectEvent(
|
||||
timestampMs);
|
||||
} else {
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientDisconnectEvent(
|
||||
System.currentTimeMillis());
|
||||
|
||||
}
|
||||
|
||||
clientEvent.setDeviceMacAddress(MacAddress.valueOf(clientDisconnectEvent.getStaMac()));
|
||||
clientEvent.setSessionId(clientDisconnectEvent.getSessionId());
|
||||
clientEvent.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(clientDisconnectEvent.getBand()));
|
||||
clientEvent.setSsid(clientDisconnectEvent.getSsid());
|
||||
|
||||
if (clientDisconnectEvent.hasDevType()) {
|
||||
|
||||
clientEvent.setInitiator(
|
||||
clientDisconnectEvent.getDevType().equals(DeviceType.DEV_AP) ? DisconnectInitiator.AccessPoint
|
||||
: DisconnectInitiator.Client);
|
||||
|
||||
}
|
||||
if (clientDisconnectEvent.hasFrType()) {
|
||||
clientEvent.setFrameType(
|
||||
clientDisconnectEvent.getFrType().equals(FrameType.FT_DEAUTH) ? DisconnectFrameType.Deauth
|
||||
: DisconnectFrameType.Disassoc);
|
||||
}
|
||||
if (clientDisconnectEvent.hasInternalRc()) {
|
||||
clientEvent.setInternalReasonCode(clientDisconnectEvent.getInternalRc());
|
||||
}
|
||||
if (clientDisconnectEvent.hasLrcvUpTsInUs()) {
|
||||
clientEvent.setLastRecvTime(clientDisconnectEvent.getLrcvUpTsInUs());
|
||||
}
|
||||
if (clientDisconnectEvent.hasLsentUpTsInUs()) {
|
||||
clientEvent.setLastSentTime(clientDisconnectEvent.getLsentUpTsInUs());
|
||||
}
|
||||
if (clientDisconnectEvent.hasReason()) {
|
||||
clientEvent.setReasonCode(clientDisconnectEvent.getReason());
|
||||
}
|
||||
if (clientDisconnectEvent.hasRssi()) {
|
||||
clientEvent.setRssi(clientDisconnectEvent.getRssi());
|
||||
}
|
||||
|
||||
clientEvent.setCustomerId(customerId);
|
||||
clientEvent.setEquipmentId(equipmentId);
|
||||
cloudEventDispatcherInterface.publishEvent(clientEvent);
|
||||
|
||||
}
|
||||
|
||||
void publishClientAuthSystemEvent(int customerId, long equipmentId, ClientAuthEvent clientAuthEvent) {
|
||||
|
||||
com.telecominfraproject.wlan.client.models.events.realtime.ClientAuthEvent clientEvent;
|
||||
|
||||
if (clientAuthEvent.hasTimestampMs()) {
|
||||
long timestamp = clientAuthEvent.getTimestampMs();
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientAuthEvent(timestamp);
|
||||
} else {
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientAuthEvent(
|
||||
System.currentTimeMillis());
|
||||
}
|
||||
|
||||
clientEvent.setSessionId(clientAuthEvent.getSessionId());
|
||||
clientEvent.setSsid(clientAuthEvent.getSsid());
|
||||
clientEvent.setDeviceMacAddress(MacAddress.valueOf(clientAuthEvent.getStaMac()));
|
||||
clientEvent.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(clientAuthEvent.getBand()));
|
||||
|
||||
if (clientAuthEvent.hasAuthStatus()) {
|
||||
clientEvent.setAuthStatus(clientAuthEvent.getAuthStatus());
|
||||
}
|
||||
clientEvent.setCustomerId(customerId);
|
||||
clientEvent.setEquipmentId(equipmentId);
|
||||
cloudEventDispatcherInterface.publishEvent(clientEvent);
|
||||
|
||||
}
|
||||
|
||||
void publishClientAssocEvent(int customerId, long equipmentId, ClientAssocEvent clientAssocEvent) {
|
||||
|
||||
com.telecominfraproject.wlan.client.models.events.realtime.ClientAssocEvent clientEvent;
|
||||
|
||||
if (clientAssocEvent.hasTimestampMs()) {
|
||||
long timestamp = clientAssocEvent.getTimestampMs();
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientAssocEvent(timestamp);
|
||||
} else {
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientAssocEvent(
|
||||
System.currentTimeMillis());
|
||||
}
|
||||
|
||||
clientEvent.setSessionId(clientAssocEvent.getSessionId());
|
||||
clientEvent.setSsid(clientAssocEvent.getSsid());
|
||||
clientEvent.setDeviceMacAddress(MacAddress.valueOf(clientAssocEvent.getStaMac()));
|
||||
clientEvent.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(clientAssocEvent.getBand()));
|
||||
|
||||
if (clientAssocEvent.hasAssocType()) {
|
||||
clientEvent.setReassociation(clientAssocEvent.getAssocType().equals(AssocType.REASSOC));
|
||||
}
|
||||
|
||||
if (clientAssocEvent.hasInternalSc()) {
|
||||
clientEvent.setInternalSC(clientAssocEvent.getInternalSc());
|
||||
}
|
||||
|
||||
if (clientAssocEvent.hasRssi()) {
|
||||
clientEvent.setRssi(clientAssocEvent.getRssi());
|
||||
}
|
||||
|
||||
if (clientAssocEvent.hasStatus()) {
|
||||
clientEvent.setStatus(clientAssocEvent.getStatus());
|
||||
}
|
||||
|
||||
if (clientAssocEvent.hasUsing11K()) {
|
||||
clientEvent.setUsing11k(clientAssocEvent.getUsing11K());
|
||||
}
|
||||
|
||||
if (clientAssocEvent.hasUsing11R()) {
|
||||
clientEvent.setUsing11r(clientAssocEvent.getUsing11R());
|
||||
}
|
||||
|
||||
if (clientAssocEvent.hasUsing11V()) {
|
||||
clientEvent.setUsing11v(clientAssocEvent.getUsing11V());
|
||||
}
|
||||
|
||||
clientEvent.setCustomerId(customerId);
|
||||
clientEvent.setEquipmentId(equipmentId);
|
||||
cloudEventDispatcherInterface.publishEvent(clientEvent);
|
||||
|
||||
}
|
||||
|
||||
void publishClientFailureEvent(int customerId, long equipmentId, ClientFailureEvent clientFailureEvent) {
|
||||
com.telecominfraproject.wlan.client.models.events.realtime.ClientFailureEvent clientEvent;
|
||||
|
||||
if (clientFailureEvent.hasTimestampMs()) {
|
||||
long timestamp = clientFailureEvent.getTimestampMs();
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientFailureEvent(timestamp);
|
||||
} else {
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientFailureEvent(
|
||||
System.currentTimeMillis());
|
||||
}
|
||||
|
||||
clientEvent.setSessionId(clientFailureEvent.getSessionId());
|
||||
clientEvent.setDeviceMacAddress(MacAddress.valueOf(clientFailureEvent.getStaMac()));
|
||||
clientEvent.setSsid(clientFailureEvent.getSsid());
|
||||
|
||||
if (clientFailureEvent.hasReasonStr()) {
|
||||
clientEvent.setReasonString(clientFailureEvent.getReasonStr());
|
||||
}
|
||||
|
||||
if (clientFailureEvent.hasReasonCode()) {
|
||||
clientEvent.setReasonCode(clientFailureEvent.getReasonCode());
|
||||
}
|
||||
|
||||
clientEvent.setCustomerId(customerId);
|
||||
clientEvent.setEquipmentId(equipmentId);
|
||||
cloudEventDispatcherInterface.publishEvent(clientEvent);
|
||||
}
|
||||
|
||||
void publishClientFirstDataEvent(int customerId, long equipmentId, ClientFirstDataEvent clientFirstDataEvent) {
|
||||
com.telecominfraproject.wlan.client.models.events.realtime.ClientFirstDataEvent clientEvent;
|
||||
|
||||
if (clientFirstDataEvent.hasTimestampMs()) {
|
||||
long timestamp = clientFirstDataEvent.getTimestampMs();
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientFirstDataEvent(
|
||||
timestamp);
|
||||
} else {
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientFirstDataEvent(
|
||||
System.currentTimeMillis());
|
||||
}
|
||||
|
||||
clientEvent.setSessionId(clientFirstDataEvent.getSessionId());
|
||||
clientEvent.setDeviceMacAddress(MacAddress.valueOf(clientFirstDataEvent.getStaMac()));
|
||||
|
||||
if (clientFirstDataEvent.hasFdataTxUpTsInUs()) {
|
||||
clientEvent.setFirstDataSentTs(clientFirstDataEvent.getFdataTxUpTsInUs());
|
||||
}
|
||||
|
||||
if (clientFirstDataEvent.hasFdataRxUpTsInUs()) {
|
||||
clientEvent.setFirstDataRcvdTs(clientFirstDataEvent.getFdataRxUpTsInUs());
|
||||
}
|
||||
|
||||
clientEvent.setCustomerId(customerId);
|
||||
clientEvent.setEquipmentId(equipmentId);
|
||||
cloudEventDispatcherInterface.publishEvent(clientEvent);
|
||||
|
||||
}
|
||||
|
||||
void publishClientIdEvent(int customerId, long equipmentId, ClientIdEvent clientIdEvent) {
|
||||
com.telecominfraproject.wlan.client.models.events.realtime.ClientIdEvent clientEvent;
|
||||
|
||||
if (clientIdEvent.hasTimestampMs()) {
|
||||
long timestamp = clientIdEvent.getTimestampMs();
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientIdEvent(timestamp);
|
||||
} else {
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientIdEvent(
|
||||
System.currentTimeMillis());
|
||||
}
|
||||
|
||||
clientEvent.setSessionId(clientIdEvent.getSessionId());
|
||||
clientEvent.setDeviceMacAddress(MacAddress.valueOf(clientIdEvent.getCltMac()));
|
||||
if (clientIdEvent.hasCltId()) {
|
||||
clientEvent.setUserId(clientIdEvent.getCltId());
|
||||
}
|
||||
|
||||
clientEvent.setCustomerId(customerId);
|
||||
clientEvent.setEquipmentId(equipmentId);
|
||||
cloudEventDispatcherInterface.publishEvent(clientEvent);
|
||||
}
|
||||
|
||||
void publishClientIpEvent(int customerId, long equipmentId, ClientIpEvent clientIpEvent) {
|
||||
com.telecominfraproject.wlan.client.models.events.realtime.ClientIpAddressEvent clientEvent;
|
||||
|
||||
if (clientIpEvent.hasTimestampMs()) {
|
||||
long timestamp = clientIpEvent.getTimestampMs();
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientIpAddressEvent(
|
||||
timestamp);
|
||||
} else {
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientIpAddressEvent(
|
||||
System.currentTimeMillis());
|
||||
}
|
||||
|
||||
clientEvent.setSessionId(clientIpEvent.getSessionId());
|
||||
clientEvent.setDeviceMacAddress(MacAddress.valueOf(clientIpEvent.getStaMac()));
|
||||
if (clientIpEvent.hasIpAddr()) {
|
||||
clientEvent.setIpAddr(clientIpEvent.getIpAddr().toByteArray());
|
||||
}
|
||||
|
||||
clientEvent.setCustomerId(customerId);
|
||||
clientEvent.setEquipmentId(equipmentId);
|
||||
cloudEventDispatcherInterface.publishEvent(clientEvent);
|
||||
}
|
||||
|
||||
void publishClientTimeoutEvent(int customerId, long equipmentId, ClientTimeoutEvent clientTimeoutEvent) {
|
||||
|
||||
com.telecominfraproject.wlan.client.models.events.realtime.ClientTimeoutEvent clientEvent;
|
||||
|
||||
if (clientTimeoutEvent.hasTimestampMs()) {
|
||||
long timestamp = clientTimeoutEvent.getTimestampMs();
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientTimeoutEvent(timestamp);
|
||||
} else {
|
||||
clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientTimeoutEvent(
|
||||
System.currentTimeMillis());
|
||||
}
|
||||
|
||||
clientEvent.setSessionId(clientTimeoutEvent.getSessionId());
|
||||
clientEvent.setDeviceMacAddress(MacAddress.valueOf(clientTimeoutEvent.getStaMac()));
|
||||
if (clientTimeoutEvent.hasRCode()) {
|
||||
clientEvent.setTimeoutReason(clientTimeoutEvent.getRCode().equals(CTReasonType.CTR_IDLE_TOO_LONG)
|
||||
? ClientTimeoutReason.IdleTooLong
|
||||
: ClientTimeoutReason.FailedProbe);
|
||||
}
|
||||
if (clientTimeoutEvent.hasLastRcvUpTsInUs()) {
|
||||
clientEvent.setLastRecvTime(clientTimeoutEvent.getLastRcvUpTsInUs());
|
||||
}
|
||||
if (clientTimeoutEvent.hasLastSentUpTsInUs()) {
|
||||
clientEvent.setLastSentTime(clientTimeoutEvent.getLastSentUpTsInUs());
|
||||
}
|
||||
|
||||
clientEvent.setCustomerId(customerId);
|
||||
clientEvent.setEquipmentId(equipmentId);
|
||||
cloudEventDispatcherInterface.publishEvent(clientEvent);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -66,6 +66,7 @@ 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.OpensyncAPRadioState;
|
||||
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.models.Profile;
|
||||
import com.telecominfraproject.wlan.profile.models.ProfileType;
|
||||
@@ -125,7 +126,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
@MockBean(answer = Answers.RETURNS_MOCKS)
|
||||
OpensyncCloudGatewayController gatewayController;
|
||||
@MockBean
|
||||
OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttProcessor;
|
||||
MqttStatsPublisher opensyncExternalIntegrationMqttProcessor;
|
||||
|
||||
@Autowired
|
||||
OpensyncExternalIntegrationCloud opensyncExternalIntegrationCloud;
|
||||
@@ -461,16 +462,6 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testExtractApIdFromTopic() {
|
||||
|
||||
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||
|
||||
assertEquals("Test_Client_21P10C68818122",
|
||||
OpensyncExternalIntegrationMqttMessageProcessor.extractApIdFromTopic(topic));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testProcessMqttMessageStringReport() {
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.telecominfraproject.wlan.opensync.external.integration;
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.utils;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
@@ -7,7 +7,6 @@ import java.net.InetAddress;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.telecominfraproject.wlan.systemevent.models.SystemEvent;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
@@ -44,6 +43,9 @@ import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.firmware.FirmwareServiceInterface;
|
||||
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.profile.ProfileServiceInterface;
|
||||
import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
|
||||
@@ -73,12 +75,12 @@ import sts.OpensyncStats.VLANMetrics;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@ActiveProfiles(profiles = { "integration_test", })
|
||||
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = OpensyncExternalIntegrationMqttMessageProcessorTest.class)
|
||||
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = MqttStatsPublisherTest.class)
|
||||
@Import(value = { AlarmServiceInterface.class, OpensyncExternalIntegrationCloud.class,
|
||||
OpensyncExternalIntegrationMqttMessageProcessorTest.Config.class,
|
||||
MqttStatsPublisherTest.Config.class,
|
||||
|
||||
})
|
||||
public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
public class MqttStatsPublisherTest {
|
||||
|
||||
@MockBean
|
||||
AlarmServiceInterface alarmServiceInterface;
|
||||
@@ -104,9 +106,10 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
FirmwareServiceInterface firmwareServiceInterface;
|
||||
@MockBean(answer = Answers.RETURNS_MOCKS)
|
||||
OpensyncCloudGatewayController gatewayController;
|
||||
|
||||
@MockBean
|
||||
RealtimeEventPublisher realtimeEventPublisher;
|
||||
@Autowired
|
||||
OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttProcessor;
|
||||
MqttStatsPublisher opensyncExternalIntegrationMqttProcessor;
|
||||
|
||||
MockitoSession mockito;
|
||||
|
||||
@@ -114,8 +117,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
public OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttMessageProcessor() {
|
||||
return new OpensyncExternalIntegrationMqttMessageProcessor();
|
||||
public MqttStatsPublisher mqttStatsPublisher() {
|
||||
return new MqttStatsPublisher();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -133,14 +136,12 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testExtractApIdFromTopic() {
|
||||
|
||||
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||
|
||||
assertEquals("Test_Client_21P10C68818122",
|
||||
OpensyncExternalIntegrationMqttMessageProcessor.extractApIdFromTopic(topic));
|
||||
assertEquals("Test_Client_21P10C68818122", MqttStatsPublisher.extractApIdFromTopic(topic));
|
||||
|
||||
}
|
||||
|
||||
@@ -173,15 +174,15 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
Equipment equipment = new Equipment();
|
||||
|
||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||
|
||||
|
||||
equipment.setId(1L);
|
||||
|
||||
Mockito.when(
|
||||
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||
.thenReturn(equipment);
|
||||
|
||||
|
||||
equipment.setProfileId(0L);
|
||||
|
||||
|
||||
Mockito.when(equipmentServiceInterface.getOrNull(1L)).thenReturn(equipment);
|
||||
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
|
||||
|
||||
@@ -259,51 +260,56 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
// TODO: implement me when wcs stats reports supported
|
||||
}
|
||||
|
||||
// Verify CallStart, CallStop and CallReport are properly processed and published as
|
||||
// Verify CallStart, CallStop and CallReport are properly processed and
|
||||
// published as
|
||||
// respective events (5 events in total)
|
||||
@Test
|
||||
public void testProcessMqttMessageStringMultipleVideoVoiceReport() {
|
||||
OpensyncStats.VideoVoiceReport.Builder callStartVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder().
|
||||
setCallStart(getDefaultCallStart());
|
||||
OpensyncStats.VideoVoiceReport.Builder callReportGotPublishVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder().
|
||||
setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.GOT_PUBLISH, 121, 1028, 1316, 1888, 298, 2, 100, 200));
|
||||
OpensyncStats.VideoVoiceReport.Builder callReportRoamedToVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder().
|
||||
setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_TO, 123, 1020, 1116, 1345, 223, 0, 102, 203));
|
||||
OpensyncStats.VideoVoiceReport.Builder callReportRoamedFromVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder().
|
||||
setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_FROM, 122, 1029, 1300, 1234, 111, 3, 101, 201));
|
||||
OpensyncStats.VideoVoiceReport.Builder callStopVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder().
|
||||
setCallStop(getDefaultCallStop());
|
||||
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();
|
||||
Report multipleVoiceReportsInOneReport = Report.newBuilder().addVideoVoiceReport(callStartVoiceReportBuilder)
|
||||
.addVideoVoiceReport(callReportGotPublishVoiceReportBuilder)
|
||||
.addVideoVoiceReport(callReportRoamedFromVoiceReportBuilder)
|
||||
.addVideoVoiceReport(callReportRoamedToVoiceReportBuilder)
|
||||
.addVideoVoiceReport(callStopVoiceReportBuilder).setNodeID("1").build();
|
||||
|
||||
opensyncExternalIntegrationMqttProcessor.populateSipCallReport(null, multipleVoiceReportsInOneReport, 1, 2L, "TestAP", 12L);
|
||||
opensyncExternalIntegrationMqttProcessor.populateSipCallReport(null, multipleVoiceReportsInOneReport, 1, 2L,
|
||||
"TestAP", 12L);
|
||||
|
||||
Mockito.verify(equipmentMetricsCollectorInterface, Mockito.times(1)).publishEventsBulk(Mockito.anyList());
|
||||
}
|
||||
|
||||
// Create report with 1 voiceReports that contains multiple Calls
|
||||
// Note that GOT_PUBLISH and ROAMED_FROM are ignored in the CallReport. ROAMED_TO overwrites them
|
||||
// Note that GOT_PUBLISH and ROAMED_FROM are ignored in the CallReport.
|
||||
// ROAMED_TO overwrites them
|
||||
@Test
|
||||
public void testProcessMqttMessageStringOneVideoVoiceReport() {
|
||||
|
||||
OpensyncStats.VideoVoiceReport.Builder videoVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder().
|
||||
setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.GOT_PUBLISH, 121, 1028, 1316,1888, 298, 2, 100,200)).
|
||||
setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_FROM, 122, 1029, 1300,1234, 111, 3, 101,201)).
|
||||
setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_TO, 123, 1020, 1116,1345, 223, 0, 102,203)).
|
||||
setCallStart(getDefaultCallStart()).
|
||||
setCallStop(getDefaultCallStop());
|
||||
Report oneVoiceReportWithMultipleCallsInOneReport = Report.getDefaultInstance().toBuilder().
|
||||
addVideoVoiceReport(videoVoiceReportBuilder).
|
||||
setNodeID("1").
|
||||
build();
|
||||
OpensyncStats.VideoVoiceReport.Builder videoVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder()
|
||||
.setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.GOT_PUBLISH, 121, 1028,
|
||||
1316, 1888, 298, 2, 100, 200))
|
||||
.setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_FROM, 122, 1029,
|
||||
1300, 1234, 111, 3, 101, 201))
|
||||
.setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_TO, 123, 1020,
|
||||
1116, 1345, 223, 0, 102, 203))
|
||||
.setCallStart(getDefaultCallStart()).setCallStop(getDefaultCallStop());
|
||||
Report oneVoiceReportWithMultipleCallsInOneReport = Report.getDefaultInstance().toBuilder()
|
||||
.addVideoVoiceReport(videoVoiceReportBuilder).setNodeID("1").build();
|
||||
|
||||
opensyncExternalIntegrationMqttProcessor.populateSipCallReport(null, oneVoiceReportWithMultipleCallsInOneReport, 1, 2L, "TestAP", 12L);
|
||||
opensyncExternalIntegrationMqttProcessor.populateSipCallReport(null, oneVoiceReportWithMultipleCallsInOneReport,
|
||||
1, 2L, "TestAP", 12L);
|
||||
|
||||
Mockito.verify(equipmentMetricsCollectorInterface, Mockito.times(1)).publishEventsBulk(Mockito.anyList());
|
||||
}
|
||||
@@ -393,13 +399,13 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
callStopBuilder.setSessionId(123L);
|
||||
callStopBuilder.setWifiSessionId(1234L);
|
||||
callStopBuilder.setReason(OpensyncStats.CallStop.CallStopReason.BYE_OK);
|
||||
callStopBuilder.addStats(getRtpFlowStats(121, 1380, 1400,3000, 119, 3, 205,350));
|
||||
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) {
|
||||
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 }));
|
||||
@@ -417,8 +423,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
}
|
||||
|
||||
private OpensyncStats.CallReport getDefaultCallReport(OpensyncStats.CallReport.CallReportReason reason, int codec,
|
||||
int jitter, int latency, int totalPackets, int totalPacketsLost,
|
||||
int mos, int firstRtpSeq, int lastRtpSeq) {
|
||||
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);
|
||||
@@ -429,15 +434,14 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
callReportBuilder.setSessionId(123L);
|
||||
callReportBuilder.setWifiSessionId(1234L);
|
||||
callReportBuilder.setReason(reason);
|
||||
callReportBuilder.addStats(getRtpFlowStats(codec, jitter, latency, totalPackets, totalPacketsLost,
|
||||
mos, firstRtpSeq, lastRtpSeq));
|
||||
callReportBuilder.addStats(
|
||||
getRtpFlowStats(codec, jitter, latency, totalPackets, totalPacketsLost, mos, firstRtpSeq, lastRtpSeq));
|
||||
|
||||
return callReportBuilder.build();
|
||||
}
|
||||
|
||||
private List<EventReport> getOpensyncStatsEventReportsList() {
|
||||
|
||||
|
||||
List<ClientAssocEvent> clientAssocEventList = new ArrayList<>();
|
||||
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent
|
||||
.getDefaultInstance().toBuilder();
|
||||
@@ -463,22 +467,22 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
clientSessionBuilder.setClientAssocEvent(clientAssocBuilder.build());
|
||||
List<sts.OpensyncStats.EventReport.ClientSession> clientSessionList = new ArrayList<>();
|
||||
clientSessionList.add(clientSessionBuilder.build());
|
||||
|
||||
sts.OpensyncStats.EventReport.ChannelSwitchEvent.Builder channelSwitchEventBuilder = sts.OpensyncStats.EventReport.ChannelSwitchEvent.getDefaultInstance().toBuilder();
|
||||
channelSwitchEventBuilder.setBand(RadioBandType.BAND5GL).setChannel(40).setReason(ChannelSwitchReason.high_interference).setTimestampMs(System.currentTimeMillis());
|
||||
|
||||
sts.OpensyncStats.EventReport.ChannelSwitchEvent.Builder channelSwitchEventBuilder = sts.OpensyncStats.EventReport.ChannelSwitchEvent
|
||||
.getDefaultInstance().toBuilder();
|
||||
channelSwitchEventBuilder.setBand(RadioBandType.BAND5GL).setChannel(40)
|
||||
.setReason(ChannelSwitchReason.high_interference).setTimestampMs(System.currentTimeMillis());
|
||||
|
||||
List<ChannelSwitchEvent> channelSwitchEventList = new ArrayList<>();
|
||||
channelSwitchEventList.add(channelSwitchEventBuilder.build());
|
||||
|
||||
|
||||
eventReportBuilder.addAllClientSession(clientSessionList);
|
||||
eventReportBuilder.addAllChannelSwitch(channelSwitchEventList);
|
||||
|
||||
eventReportList.add(eventReportBuilder.build());
|
||||
|
||||
|
||||
return eventReportList;
|
||||
|
||||
|
||||
}
|
||||
|
||||
private List<ClientReport> getOpensyncStatsClientReportsList() {
|
||||
Reference in New Issue
Block a user