mirror of
				https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
				synced 2025-11-04 12:37:48 +00:00 
			
		
		
		
	TW-208: Notified Table Status changes to ExternalInterfaceKDC
This commit is contained in:
		@@ -1,7 +1,10 @@
 | 
				
			|||||||
package com.telecominfraproject.wlan.opensync.external.integration;
 | 
					package com.telecominfraproject.wlan.opensync.external.integration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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.vmware.ovsdb.protocol.operation.notation.Value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import sts.PlumeStats.Report;
 | 
					import sts.PlumeStats.Report;
 | 
				
			||||||
import traffic.NetworkMetadata.FlowReport;
 | 
					import traffic.NetworkMetadata.FlowReport;
 | 
				
			||||||
@@ -9,9 +12,24 @@ import wc.stats.IpDnsTelemetry.WCStatsReport;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public interface OpensyncExternalIntegrationInterface {
 | 
					public interface OpensyncExternalIntegrationInterface {
 | 
				
			||||||
    void apConnected(String apId, ConnectNodeInfo connectNodeInfo);
 | 
					    void apConnected(String apId, ConnectNodeInfo connectNodeInfo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void apDisconnected(String apId);
 | 
					    void apDisconnected(String apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    OpensyncAPConfig getApConfig(String apId);
 | 
					    OpensyncAPConfig getApConfig(String apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void wirelessStatusChanged(Map <String,Value> row,String apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void deviceStatusChanged(Map <String,Value> row,String apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void networkStatusChanged(Map <String,Value> row,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);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void processMqttMessage(String topic, WCStatsReport wcStatsReport);
 | 
					    void processMqttMessage(String topic, WCStatsReport wcStatsReport);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void handleClientsChanged(Map <String,Value> row, String connectedClientId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void awlanChanged(Map <String,Value> row, String connectedClientId);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,8 @@
 | 
				
			|||||||
package com.telecominfraproject.wlan.opensync.external.integration;
 | 
					package com.telecominfraproject.wlan.opensync.external.integration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.Set;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javax.annotation.PostConstruct;
 | 
					import javax.annotation.PostConstruct;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -10,9 +12,9 @@ import org.springframework.beans.factory.annotation.Value;
 | 
				
			|||||||
import org.springframework.context.annotation.Profile;
 | 
					import org.springframework.context.annotation.Profile;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.OpensyncExternalIntegrationInterface;
 | 
					 | 
				
			||||||
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.vmware.ovsdb.protocol.operation.notation.Uuid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import sts.PlumeStats.Report;
 | 
					import sts.PlumeStats.Report;
 | 
				
			||||||
import traffic.NetworkMetadata.FlowReport;
 | 
					import traffic.NetworkMetadata.FlowReport;
 | 
				
			||||||
@@ -34,12 +36,16 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public void apConnected(String apId, ConnectNodeInfo connectNodeInfo) {
 | 
					    public void apConnected(String apId, ConnectNodeInfo connectNodeInfo) {
 | 
				
			||||||
        LOG.info("AP {} got connected to the gateway", apId);
 | 
					        LOG.info("AP {} got connected to the gateway", apId);
 | 
				
			||||||
 | 
					        LOG.info("ConnectNodeInfo {}", connectNodeInfo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void apDisconnected(String apId) {
 | 
					    public void apDisconnected(String apId) {
 | 
				
			||||||
        LOG.info("AP {} got disconnected from the gateway", apId);
 | 
					        LOG.info("AP {} got disconnected from the gateway", apId);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public OpensyncAPConfig getApConfig(String apId) {
 | 
					    public OpensyncAPConfig getApConfig(String apId) {
 | 
				
			||||||
        LOG.info("Retrieving config for AP {} from file {}", apId, configFileName);
 | 
					        LOG.info("Retrieving config for AP {} from file {}", apId, configFileName);
 | 
				
			||||||
        OpensyncAPConfig ret = null;
 | 
					        OpensyncAPConfig ret = null;
 | 
				
			||||||
@@ -56,7 +62,29 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void processMqttMessage(String topic, Report report) {
 | 
					    public void processMqttMessage(String topic, Report report) {
 | 
				
			||||||
        LOG.info("Received report on topic {} for ap {}", topic, report.getNodeID());
 | 
					
 | 
				
			||||||
 | 
					        LOG.info("Received PlumeStatsReport on topic {} for ap {}", topic, report.getNodeID());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (report.getClientsCount() > 0) {
 | 
				
			||||||
 | 
					            LOG.debug("Received {} client reports for AP {}", report.getClientsCount(), report.getNodeID());
 | 
				
			||||||
 | 
					            report.getClientsList().forEach(c -> LOG.trace("ClientReport {}", c));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (report.getNeighborsCount() > 0) {
 | 
				
			||||||
 | 
					            LOG.debug("Received {} neighbor reports for AP {}", report.getNeighborsCount(), report.getNodeID());
 | 
				
			||||||
 | 
					            report.getNeighborsList().forEach(c -> LOG.trace("NeighborReport {}", c));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (report.getDeviceCount() > 0) {
 | 
				
			||||||
 | 
					            LOG.debug("Received {} device reports for AP {}", report.getDeviceCount(), report.getNodeID());
 | 
				
			||||||
 | 
					            report.getDeviceList().forEach(c -> LOG.trace("DeviceReport {}", c));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (report.getSurveyCount() > 0) {
 | 
				
			||||||
 | 
					            LOG.debug("Received {} survey reports for AP {}", report.getSurveyCount(), report.getNodeID());
 | 
				
			||||||
 | 
					            report.getSurveyList().forEach(c -> LOG.trace("SurveyReport {}", c));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (report.getRssiReportCount() > 0) {
 | 
				
			||||||
 | 
					            LOG.debug("Received {} rssi reports for AP {}", report.getRssiReportCount(), report.getNodeID());
 | 
				
			||||||
 | 
					            report.getRssiReportList().forEach(c -> LOG.trace("RSSI Report {}", c));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void processMqttMessage(String topic, FlowReport flowReport) {
 | 
					    public void processMqttMessage(String topic, FlowReport flowReport) {
 | 
				
			||||||
@@ -64,7 +92,43 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void processMqttMessage(String topic, WCStatsReport wcStatsReport) {
 | 
					    public void processMqttMessage(String topic, WCStatsReport wcStatsReport) {
 | 
				
			||||||
        LOG.info("Received wcStatsReport on topic {} for ap {}", topic, wcStatsReport.getObservationPoint().getNodeId());
 | 
					        LOG.info("Received wcStatsReport on topic {} for ap {}", topic,
 | 
				
			||||||
 | 
					                wcStatsReport.getObservationPoint().getNodeId());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void wirelessStatusChanged(Map<String, com.vmware.ovsdb.protocol.operation.notation.Value> row,
 | 
				
			||||||
 | 
					            String apId) {
 | 
				
			||||||
 | 
					        // TODO Auto-generated method stub
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void deviceStatusChanged(Map<String, com.vmware.ovsdb.protocol.operation.notation.Value> row, String apId) {
 | 
				
			||||||
 | 
					        // TODO Auto-generated method stub
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void networkStatusChanged(Map<String, com.vmware.ovsdb.protocol.operation.notation.Value> row, String apId) {
 | 
				
			||||||
 | 
					        // TODO Auto-generated method stub
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void handleClientsChanged(Map<String, com.vmware.ovsdb.protocol.operation.notation.Value> row,
 | 
				
			||||||
 | 
					            String connectedClientId) {
 | 
				
			||||||
 | 
					        // TODO Auto-generated method stub
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void awlanChanged(Map<String, com.vmware.ovsdb.protocol.operation.notation.Value> row,
 | 
				
			||||||
 | 
					            String connectedClientId) {
 | 
				
			||||||
 | 
					        // TODO Auto-generated method stub
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,7 @@ package com.telecominfraproject.wlan.opensync.ovsdb;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import java.security.cert.X509Certificate;
 | 
					import java.security.cert.X509Certificate;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.Map.Entry;
 | 
				
			||||||
import java.util.Set;
 | 
					import java.util.Set;
 | 
				
			||||||
import java.util.UUID;
 | 
					import java.util.UUID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -26,7 +27,6 @@ import com.vmware.ovsdb.callback.MonitorCallback;
 | 
				
			|||||||
import com.vmware.ovsdb.protocol.methods.RowUpdate;
 | 
					import com.vmware.ovsdb.protocol.methods.RowUpdate;
 | 
				
			||||||
import com.vmware.ovsdb.protocol.methods.TableUpdates;
 | 
					import com.vmware.ovsdb.protocol.methods.TableUpdates;
 | 
				
			||||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
 | 
					import com.vmware.ovsdb.protocol.operation.notation.Row;
 | 
				
			||||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
 | 
					 | 
				
			||||||
import com.vmware.ovsdb.service.OvsdbClient;
 | 
					import com.vmware.ovsdb.service.OvsdbClient;
 | 
				
			||||||
import com.vmware.ovsdb.service.OvsdbPassiveConnectionListener;
 | 
					import com.vmware.ovsdb.service.OvsdbPassiveConnectionListener;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -66,15 +66,6 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public void listenForConnections() {
 | 
					    public void listenForConnections() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // This class is only used here, therefore changed it back to an inner
 | 
					 | 
				
			||||||
        // class,
 | 
					 | 
				
			||||||
        // removed the package level class.
 | 
					 | 
				
			||||||
        // All calling classes related to OVSDB are calling the MonitorCallback
 | 
					 | 
				
			||||||
        // interface, so the implementation can remain
 | 
					 | 
				
			||||||
        // hidden. This also gives handy access to the Autowired instances in
 | 
					 | 
				
			||||||
        // the
 | 
					 | 
				
			||||||
        // container class.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        class ConnectusMonitorCallback implements MonitorCallback {
 | 
					        class ConnectusMonitorCallback implements MonitorCallback {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            private String connectedClientId;
 | 
					            private String connectedClientId;
 | 
				
			||||||
@@ -88,61 +79,58 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
                Set<String> tableNames = tableUpdates.getTableUpdates().keySet();
 | 
					                Set<String> tableNames = tableUpdates.getTableUpdates().keySet();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                for (String name : tableNames) {
 | 
					                for (String name : tableNames) {
 | 
				
			||||||
                    LOG.trace("Receive update for table {}", name);
 | 
					                    if (name.equals(OvsdbDao.wifiAssociatedClientsDbTable)) {
 | 
				
			||||||
 | 
					                        Map<UUID, RowUpdate> updates = tableUpdates.getTableUpdates().get(name).getRowUpdates();
 | 
				
			||||||
 | 
					                        for (UUID id : updates.keySet()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            Row row = updates.get(id).getNew();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            if (row != null)
 | 
				
			||||||
 | 
					                                extIntegrationInterface.handleClientsChanged(row.getColumns(), connectedClientId);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    } else if (name.equals(OvsdbDao.awlanNodeDbTable)) {
 | 
				
			||||||
 | 
					                        Map<UUID, RowUpdate> updates = tableUpdates.getTableUpdates().get(name).getRowUpdates();
 | 
				
			||||||
 | 
					                        for (UUID id : updates.keySet()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            Row row = updates.get(id).getNew();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            if (row != null)
 | 
				
			||||||
 | 
					                                extIntegrationInterface.awlanChanged(row.getColumns(), connectedClientId);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    } else if (name.equals(OvsdbDao.wifiVifStateDbTable)) {
 | 
				
			||||||
 | 
					                        Map<UUID, RowUpdate> updates = tableUpdates.getTableUpdates().get(name).getRowUpdates();
 | 
				
			||||||
 | 
					                        for (UUID id : updates.keySet()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            Row row = updates.get(id).getNew();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            if (row != null)
 | 
				
			||||||
 | 
					                                extIntegrationInterface.wirelessStatusChanged(row.getColumns(), connectedClientId);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    } else if (name.equals(OvsdbDao.wifiInetStateDbTable)) {
 | 
				
			||||||
                        Map<UUID, RowUpdate> updates = tableUpdates.getTableUpdates().get(name).getRowUpdates();
 | 
					                        Map<UUID, RowUpdate> updates = tableUpdates.getTableUpdates().get(name).getRowUpdates();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        for (UUID id : updates.keySet()) {
 | 
					                        for (UUID id : updates.keySet()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        LOG.trace("Receive row update for uuid {}", id);
 | 
					                            Row row = updates.get(id).getNew();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        RowUpdate rowUpdate = updates.get(id);
 | 
					                            if (row != null)
 | 
				
			||||||
 | 
					                                extIntegrationInterface.networkStatusChanged(row.getColumns(), connectedClientId);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    } else if (name.equals(OvsdbDao.wifiRadioStateDbTable)) {
 | 
				
			||||||
 | 
					                        Map<UUID, RowUpdate> updates = tableUpdates.getTableUpdates().get(name).getRowUpdates();
 | 
				
			||||||
 | 
					                        for (UUID id : updates.keySet()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        Row newRow = rowUpdate.getNew();
 | 
					                            Row row = updates.get(id).getNew();
 | 
				
			||||||
                        if (newRow != null) {
 | 
					 | 
				
			||||||
                            Set<String> newRowColumns = newRow.getColumns().keySet();
 | 
					 | 
				
			||||||
                            Row oldRow = rowUpdate.getOld();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            for (String column : newRowColumns) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                Value oldVal = null;
 | 
					 | 
				
			||||||
                                if (oldRow != null && oldRow.getColumns().containsKey(column))
 | 
					 | 
				
			||||||
                                    oldVal = oldRow.getColumns().get(column);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                Value newVal = newRow.getColumns().get(column);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            if (row != null)
 | 
				
			||||||
 | 
					                                extIntegrationInterface.deviceStatusChanged(row.getColumns(), connectedClientId);
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // get session information for this client
 | 
					 | 
				
			||||||
                // OvsdbSession ovsdbSession =
 | 
					 | 
				
			||||||
                // ovsdbSessionMapInterface.getSession(connectedClientId);
 | 
					 | 
				
			||||||
                // if (ovsdbSession == null) {
 | 
					 | 
				
			||||||
                // throw new IllegalStateException("AP with id " +
 | 
					 | 
				
			||||||
                // connectedClientId + " is not connected");
 | 
					 | 
				
			||||||
                // }
 | 
					 | 
				
			||||||
                //
 | 
					 | 
				
			||||||
                // OvsdbClient ovsdbClient = ovsdbSession.getOvsdbClient();
 | 
					 | 
				
			||||||
                // OpensyncAPConfig opensyncAPConfig =
 | 
					 | 
				
			||||||
                // extIntegrationInterface.getApConfig(connectedClientId);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                // TODO:
 | 
					 | 
				
			||||||
                // example wifiVifStateDbTable get MAC ADDRESS via ovsdbClient
 | 
					 | 
				
			||||||
                // from
 | 
					 | 
				
			||||||
                // Wifi_Associated_Clients given the associated UUID for the
 | 
					 | 
				
			||||||
                // client
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                // TODO:
 | 
					 | 
				
			||||||
                // Changes from other Status (Wifi, Inet, etc.) tables?
 | 
					 | 
				
			||||||
                // Updates to session etc.
 | 
					 | 
				
			||||||
                // Needs to be reflected in the Cloud
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ConnectionCallback connectionCallback = new ConnectionCallback() {
 | 
					        ConnectionCallback connectionCallback = new ConnectionCallback() {
 | 
				
			||||||
@@ -181,10 +169,11 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
                    ovsdbDao.monitorInetState(ovsdbClient, new ConnectusMonitorCallback(key));
 | 
					                    ovsdbDao.monitorInetState(ovsdbClient, new ConnectusMonitorCallback(key));
 | 
				
			||||||
                    // monitor vif state
 | 
					                    // monitor vif state
 | 
				
			||||||
                    ovsdbDao.monitorVIFState(ovsdbClient, new ConnectusMonitorCallback(key));
 | 
					                    ovsdbDao.monitorVIFState(ovsdbClient, new ConnectusMonitorCallback(key));
 | 
				
			||||||
                    // monitor Route state
 | 
					                    // monitor AWLAN_Node
 | 
				
			||||||
                    ovsdbDao.monitorRouteState(ovsdbClient, new ConnectusMonitorCallback(key));
 | 
					                    ovsdbDao.monitorAwlanNode(ovsdbClient, new ConnectusMonitorCallback(key));
 | 
				
			||||||
                    // monitor Master State
 | 
					                    // monitor Wifi_Associated_Clients
 | 
				
			||||||
                    ovsdbDao.monitorMasterState(ovsdbClient, new ConnectusMonitorCallback(key));
 | 
					                    ovsdbDao.monitorAssociatedClients(ovsdbClient, new ConnectusMonitorCallback(key));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                } catch (Exception e) {
 | 
					                } catch (Exception e) {
 | 
				
			||||||
                    LOG.error("ovsdbClient error", e);
 | 
					                    LOG.error("ovsdbClient error", e);
 | 
				
			||||||
                    // something is wrong with the SSL
 | 
					                    // something is wrong with the SSL
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -84,81 +84,39 @@ public class OvsdbDao {
 | 
				
			|||||||
    public static final String wifiInetConfigDbTable = "Wifi_Inet_Config";
 | 
					    public static final String wifiInetConfigDbTable = "Wifi_Inet_Config";
 | 
				
			||||||
    public static final String wifiInetStateDbTable = "Wifi_Inet_State";
 | 
					    public static final String wifiInetStateDbTable = "Wifi_Inet_State";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static final String wifiRouteStateDbTable = "Wifi_Route_State";
 | 
					    public static final String wifiAssociatedClientsDbTable = "Wifi_Associated_Clients";
 | 
				
			||||||
    public static final String wifiMasterStateDbTable = "Wifi_Master_State";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static final String wifiRadioStateDbTableMonitorId = "Wifi_Radio_State_Monitor_Id";
 | 
					    private static final String wifiRadioStateDbTableMonitorId = "Wifi_Radio_State_Monitor_Id";
 | 
				
			||||||
    private static final String wifiInetStateDbTableMonitorId = "Wifi_Inet_State_Monitor_Id";
 | 
					    private static final String wifiInetStateDbTableMonitorId = "Wifi_Inet_State_Monitor_Id";
 | 
				
			||||||
    private static final String wifiVifStateDbTableMonitorId = "Wifi_VIF_State_Monitor_Id";
 | 
					    private static final String wifiVifStateDbTableMonitorId = "Wifi_VIF_State_Monitor_Id";
 | 
				
			||||||
    private static final String wifiRouteStateDbTableMonitorId = "Wifi_Route_State_Monitor_Id";
 | 
					    private static final String wifiAwlanNodeDbTableMonitorId = "AWLAN_Node_Monitor_Id";
 | 
				
			||||||
    private static final String wifiMasterStateDbTableMonitorId = "Wifi_Master_State_Monitor_Id";
 | 
					    private static final String wifiAssociatedClientsDbTableMonitorId = "Wifi_Associated_Clients_Monitor_Id";
 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void monitorRouteState(OvsdbClient ovsdbClient, MonitorCallback monitorCallback) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        List<String> columns = new ArrayList<>();
 | 
					 | 
				
			||||||
        columns.add("_uuid");
 | 
					 | 
				
			||||||
        columns.add("_version");
 | 
					 | 
				
			||||||
        columns.add("dest_addr");
 | 
					 | 
				
			||||||
        columns.add("dest_mask");
 | 
					 | 
				
			||||||
        columns.add("gateway");
 | 
					 | 
				
			||||||
        columns.add("gateway_hwaddr");
 | 
					 | 
				
			||||||
        columns.add("if_name");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void monitorAwlanNode(OvsdbClient ovsdbClient, MonitorCallback monitorCallback) {
 | 
				
			||||||
        MonitorRequest monitorRequest = new MonitorRequest();
 | 
					        MonitorRequest monitorRequest = new MonitorRequest();
 | 
				
			||||||
        MonitorRequests monitorRequests = new MonitorRequests(ImmutableMap.of(wifiRouteStateDbTable, monitorRequest));
 | 
					        MonitorRequests monitorRequests = new MonitorRequests(ImmutableMap.of(awlanNodeDbTable, monitorRequest));
 | 
				
			||||||
        try {
 | 
					 | 
				
			||||||
            ovsdbClient.monitor(ovsdbName, wifiRouteStateDbTableMonitorId, monitorRequests, monitorCallback);
 | 
					 | 
				
			||||||
        } catch (OvsdbClientException e) {
 | 
					 | 
				
			||||||
            LOG.error("Unable to add Monitor to table " + wifiRouteStateDbTable, e);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void monitorMasterState(OvsdbClient ovsdbClient, MonitorCallback monitorCallback) {
 | 
					 | 
				
			||||||
        List<String> columns = new ArrayList<>();
 | 
					 | 
				
			||||||
        columns.add("_uuid");
 | 
					 | 
				
			||||||
        columns.add("_version");
 | 
					 | 
				
			||||||
        columns.add("dhcpc");
 | 
					 | 
				
			||||||
        columns.add("if_name");
 | 
					 | 
				
			||||||
        columns.add("if_type");
 | 
					 | 
				
			||||||
        columns.add("inet_addr");
 | 
					 | 
				
			||||||
        columns.add("netmask");
 | 
					 | 
				
			||||||
        columns.add("network_state");
 | 
					 | 
				
			||||||
        columns.add("port_state");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        MonitorRequest monitorRequest = new MonitorRequest();
 | 
					 | 
				
			||||||
        MonitorRequests monitorRequests = new MonitorRequests(ImmutableMap.of(wifiMasterStateDbTable, monitorRequest));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            ovsdbClient.monitor(ovsdbName, wifiMasterStateDbTableMonitorId, monitorRequests, monitorCallback);
 | 
					            ovsdbClient.monitor(ovsdbName, wifiAwlanNodeDbTableMonitorId, monitorRequests, monitorCallback);
 | 
				
			||||||
        } catch (OvsdbClientException e) {
 | 
					        } catch (OvsdbClientException e) {
 | 
				
			||||||
            LOG.error("Unable to add Monitor to table " + wifiMasterStateDbTable, e);
 | 
					            LOG.error("Unable to add Monitor to table " + awlanNodeDbTable, e);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void monitorAssociatedClients(OvsdbClient ovsdbClient, MonitorCallback monitorCallback) {
 | 
				
			||||||
 | 
					        MonitorRequest monitorRequest = new MonitorRequest();
 | 
				
			||||||
 | 
					        MonitorRequests monitorRequests = new MonitorRequests(
 | 
				
			||||||
 | 
					                ImmutableMap.of(wifiAssociatedClientsDbTable, monitorRequest));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            ovsdbClient.monitor(ovsdbName, wifiAssociatedClientsDbTableMonitorId, monitorRequests, monitorCallback);
 | 
				
			||||||
 | 
					        } catch (OvsdbClientException e) {
 | 
				
			||||||
 | 
					            LOG.error("Unable to add Monitor to table " + wifiAssociatedClientsDbTable, e);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void monitorVIFState(OvsdbClient ovsdbClient, MonitorCallback monitorCallback) {
 | 
					    public void monitorVIFState(OvsdbClient ovsdbClient, MonitorCallback monitorCallback) {
 | 
				
			||||||
        List<String> columns = new ArrayList<>();
 | 
					 | 
				
			||||||
        columns.add("_uuid");
 | 
					 | 
				
			||||||
        columns.add("_version");
 | 
					 | 
				
			||||||
        columns.add("ap_bridge");
 | 
					 | 
				
			||||||
        columns.add("associated_clients");
 | 
					 | 
				
			||||||
        columns.add("bridge");
 | 
					 | 
				
			||||||
        columns.add("btm");
 | 
					 | 
				
			||||||
        columns.add("channel");
 | 
					 | 
				
			||||||
        columns.add("dynamic_beacon");
 | 
					 | 
				
			||||||
        columns.add("enabled");
 | 
					 | 
				
			||||||
        columns.add("group_rekey");
 | 
					 | 
				
			||||||
        columns.add("if_name");
 | 
					 | 
				
			||||||
        columns.add("mac");
 | 
					 | 
				
			||||||
        columns.add("min_hw_mode");
 | 
					 | 
				
			||||||
        columns.add("mode");
 | 
					 | 
				
			||||||
        columns.add("rrm");
 | 
					 | 
				
			||||||
        columns.add("security");
 | 
					 | 
				
			||||||
        columns.add("ssid");
 | 
					 | 
				
			||||||
        columns.add("ssid_broadcast");
 | 
					 | 
				
			||||||
        columns.add("uapsd_enable");
 | 
					 | 
				
			||||||
        columns.add("vif_config");
 | 
					 | 
				
			||||||
        columns.add("vif_radio_idx");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        MonitorRequest monitorRequest = new MonitorRequest();
 | 
					        MonitorRequest monitorRequest = new MonitorRequest();
 | 
				
			||||||
        MonitorRequests monitorRequests = new MonitorRequests(ImmutableMap.of(wifiVifStateDbTable, monitorRequest));
 | 
					        MonitorRequests monitorRequests = new MonitorRequests(ImmutableMap.of(wifiVifStateDbTable, monitorRequest));
 | 
				
			||||||
@@ -208,8 +166,8 @@ public class OvsdbDao {
 | 
				
			|||||||
            ovsdbClient.cancelMonitor(wifiRadioStateDbTableMonitorId);
 | 
					            ovsdbClient.cancelMonitor(wifiRadioStateDbTableMonitorId);
 | 
				
			||||||
            ovsdbClient.cancelMonitor(wifiVifStateDbTableMonitorId);
 | 
					            ovsdbClient.cancelMonitor(wifiVifStateDbTableMonitorId);
 | 
				
			||||||
            ovsdbClient.cancelMonitor(wifiInetStateDbTableMonitorId);
 | 
					            ovsdbClient.cancelMonitor(wifiInetStateDbTableMonitorId);
 | 
				
			||||||
            ovsdbClient.cancelMonitor(wifiRouteStateDbTableMonitorId);
 | 
					            ovsdbClient.cancelMonitor(wifiAssociatedClientsDbTableMonitorId);
 | 
				
			||||||
            ovsdbClient.cancelMonitor(wifiMasterStateDbTableMonitorId);
 | 
					            ovsdbClient.cancelMonitor(wifiAwlanNodeDbTableMonitorId);
 | 
				
			||||||
        } catch (OvsdbClientException e) {
 | 
					        } catch (OvsdbClientException e) {
 | 
				
			||||||
            LOG.debug("Could not cancel Monitor.  {}", e.getLocalizedMessage());
 | 
					            LOG.debug("Could not cancel Monitor.  {}", e.getLocalizedMessage());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -1560,7 +1518,7 @@ public class OvsdbDao {
 | 
				
			|||||||
                updateColumns.put("sampling_interval", new Atom<>(0));
 | 
					                updateColumns.put("sampling_interval", new Atom<>(0));
 | 
				
			||||||
                updateColumns.put("stats_type", new Atom<>("device"));
 | 
					                updateColumns.put("stats_type", new Atom<>("device"));
 | 
				
			||||||
                // updateColumns.put("survey_interval_ms", new Atom<>(10) );
 | 
					                // updateColumns.put("survey_interval_ms", new Atom<>(10) );
 | 
				
			||||||
                // updateColumns.put("survey_type", new Atom<>("on-chan") );
 | 
					                updateColumns.put("survey_type", new Atom<>("on-chan"));
 | 
				
			||||||
                // updateColumns.put("threshold", thresholds );
 | 
					                // updateColumns.put("threshold", thresholds );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                row = new Row(updateColumns);
 | 
					                row = new Row(updateColumns);
 | 
				
			||||||
@@ -1641,11 +1599,13 @@ public class OvsdbDao {
 | 
				
			|||||||
                updateColumns = new HashMap<>();
 | 
					                updateColumns = new HashMap<>();
 | 
				
			||||||
                // updateColumns.put("channel_list", channels );
 | 
					                // updateColumns.put("channel_list", channels );
 | 
				
			||||||
                updateColumns.put("radio_type", new Atom<>("5GL"));
 | 
					                updateColumns.put("radio_type", new Atom<>("5GL"));
 | 
				
			||||||
 | 
					                updateColumns.put("report_type", new Atom<>("average"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                updateColumns.put("reporting_interval", new Atom<>(60));
 | 
					                updateColumns.put("reporting_interval", new Atom<>(60));
 | 
				
			||||||
                updateColumns.put("sampling_interval", new Atom<>(10));
 | 
					                updateColumns.put("sampling_interval", new Atom<>(10));
 | 
				
			||||||
                updateColumns.put("stats_type", new Atom<>("client"));
 | 
					                updateColumns.put("stats_type", new Atom<>("client"));
 | 
				
			||||||
                // updateColumns.put("survey_interval_ms", new Atom<>(0) );
 | 
					                // updateColumns.put("survey_interval_ms", new Atom<>(0) );
 | 
				
			||||||
                // updateColumns.put("survey_type", new Atom<>("on-chan") );
 | 
					                updateColumns.put("survey_type", new Atom<>("on-chan"));
 | 
				
			||||||
                // updateColumns.put("threshold", thresholds );
 | 
					                // updateColumns.put("threshold", thresholds );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                row = new Row(updateColumns);
 | 
					                row = new Row(updateColumns);
 | 
				
			||||||
@@ -1658,11 +1618,13 @@ public class OvsdbDao {
 | 
				
			|||||||
                updateColumns = new HashMap<>();
 | 
					                updateColumns = new HashMap<>();
 | 
				
			||||||
                // updateColumns.put("channel_list", channels );
 | 
					                // updateColumns.put("channel_list", channels );
 | 
				
			||||||
                updateColumns.put("radio_type", new Atom<>("5GU"));
 | 
					                updateColumns.put("radio_type", new Atom<>("5GU"));
 | 
				
			||||||
 | 
					                updateColumns.put("report_type", new Atom<>("average"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                updateColumns.put("reporting_interval", new Atom<>(60));
 | 
					                updateColumns.put("reporting_interval", new Atom<>(60));
 | 
				
			||||||
                updateColumns.put("sampling_interval", new Atom<>(10));
 | 
					                updateColumns.put("sampling_interval", new Atom<>(10));
 | 
				
			||||||
                updateColumns.put("stats_type", new Atom<>("client"));
 | 
					                updateColumns.put("stats_type", new Atom<>("client"));
 | 
				
			||||||
                // updateColumns.put("survey_interval_ms", new Atom<>(0) );
 | 
					                // updateColumns.put("survey_interval_ms", new Atom<>(0) );
 | 
				
			||||||
                // updateColumns.put("survey_type", new Atom<>("on-chan") );
 | 
					                updateColumns.put("survey_type", new Atom<>("on-chan"));
 | 
				
			||||||
                // updateColumns.put("threshold", thresholds );
 | 
					                // updateColumns.put("threshold", thresholds );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                row = new Row(updateColumns);
 | 
					                row = new Row(updateColumns);
 | 
				
			||||||
@@ -1692,11 +1654,13 @@ public class OvsdbDao {
 | 
				
			|||||||
                updateColumns = new HashMap<>();
 | 
					                updateColumns = new HashMap<>();
 | 
				
			||||||
                // updateColumns.put("channel_list", channels );
 | 
					                // updateColumns.put("channel_list", channels );
 | 
				
			||||||
                updateColumns.put("radio_type", new Atom<>("2.4G"));
 | 
					                updateColumns.put("radio_type", new Atom<>("2.4G"));
 | 
				
			||||||
 | 
					                updateColumns.put("report_type", new Atom<>("average"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                updateColumns.put("reporting_interval", new Atom<>(60));
 | 
					                updateColumns.put("reporting_interval", new Atom<>(60));
 | 
				
			||||||
                updateColumns.put("sampling_interval", new Atom<>(10));
 | 
					                updateColumns.put("sampling_interval", new Atom<>(10));
 | 
				
			||||||
                updateColumns.put("stats_type", new Atom<>("client"));
 | 
					                updateColumns.put("stats_type", new Atom<>("client"));
 | 
				
			||||||
                // updateColumns.put("survey_interval_ms", new Atom<>(0) );
 | 
					                // updateColumns.put("survey_interval_ms", new Atom<>(0) );
 | 
				
			||||||
                // updateColumns.put("survey_type", new Atom<>("on-chan") );
 | 
					                updateColumns.put("survey_type", new Atom<>("on-chan"));
 | 
				
			||||||
                // updateColumns.put("threshold", thresholds );
 | 
					                // updateColumns.put("threshold", thresholds );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                row = new Row(updateColumns);
 | 
					                row = new Row(updateColumns);
 | 
				
			||||||
@@ -1759,7 +1723,8 @@ public class OvsdbDao {
 | 
				
			|||||||
                updateColumns = new HashMap<>();
 | 
					                updateColumns = new HashMap<>();
 | 
				
			||||||
                updateColumns.put("radio_type", new Atom<>(band));
 | 
					                updateColumns.put("radio_type", new Atom<>(band));
 | 
				
			||||||
                updateColumns.put("reporting_interval", new Atom<>(120));
 | 
					                updateColumns.put("reporting_interval", new Atom<>(120));
 | 
				
			||||||
                updateColumns.put("sampling_interval", new Atom<>(0));
 | 
					                updateColumns.put("sampling_interval", new Atom<>(10));
 | 
				
			||||||
 | 
					                updateColumns.put("report_type", new Atom<>("average"));
 | 
				
			||||||
                updateColumns.put("stats_type", new Atom<>("rssi"));
 | 
					                updateColumns.put("stats_type", new Atom<>("rssi"));
 | 
				
			||||||
                updateColumns.put("survey_interval_ms", new Atom<>(0));
 | 
					                updateColumns.put("survey_interval_ms", new Atom<>(0));
 | 
				
			||||||
                updateColumns.put("survey_type", new Atom<>("on-chan"));
 | 
					                updateColumns.put("survey_type", new Atom<>("on-chan"));
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user