mirror of
				https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
				synced 2025-11-03 20:17:53 +00:00 
			
		
		
		
	AP Ssid report Client Stats update. 802.11r set ON by default for SsidProfile (Default)
This commit is contained in:
		@@ -22,7 +22,7 @@ import org.springframework.stereotype.Component;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.telecominfraproject.wlan.alarm.AlarmServiceInterface;
 | 
					import com.telecominfraproject.wlan.alarm.AlarmServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.client.ClientServiceInterface;
 | 
					import com.telecominfraproject.wlan.client.ClientServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.client.models.ClientDetails;
 | 
					import com.telecominfraproject.wlan.client.info.models.ClientInfoDetails;
 | 
				
			||||||
import com.telecominfraproject.wlan.client.session.models.ClientDhcpDetails;
 | 
					import com.telecominfraproject.wlan.client.session.models.ClientDhcpDetails;
 | 
				
			||||||
import com.telecominfraproject.wlan.client.session.models.ClientSession;
 | 
					import com.telecominfraproject.wlan.client.session.models.ClientSession;
 | 
				
			||||||
import com.telecominfraproject.wlan.client.session.models.ClientSessionDetails;
 | 
					import com.telecominfraproject.wlan.client.session.models.ClientSessionDetails;
 | 
				
			||||||
@@ -71,6 +71,7 @@ import com.telecominfraproject.wlan.servicemetric.apssid.models.SsidStatistics;
 | 
				
			|||||||
import com.telecominfraproject.wlan.servicemetric.channelinfo.models.ChannelInfo;
 | 
					import com.telecominfraproject.wlan.servicemetric.channelinfo.models.ChannelInfo;
 | 
				
			||||||
import com.telecominfraproject.wlan.servicemetric.channelinfo.models.ChannelInfoReports;
 | 
					import com.telecominfraproject.wlan.servicemetric.channelinfo.models.ChannelInfoReports;
 | 
				
			||||||
import com.telecominfraproject.wlan.servicemetric.client.models.ClientMetrics;
 | 
					import com.telecominfraproject.wlan.servicemetric.client.models.ClientMetrics;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.servicemetric.models.McsStats;
 | 
				
			||||||
import com.telecominfraproject.wlan.servicemetric.models.ServiceMetric;
 | 
					import com.telecominfraproject.wlan.servicemetric.models.ServiceMetric;
 | 
				
			||||||
import com.telecominfraproject.wlan.servicemetric.neighbourscan.models.NeighbourReport;
 | 
					import com.telecominfraproject.wlan.servicemetric.neighbourscan.models.NeighbourReport;
 | 
				
			||||||
import com.telecominfraproject.wlan.servicemetric.neighbourscan.models.NeighbourScanReports;
 | 
					import com.telecominfraproject.wlan.servicemetric.neighbourscan.models.NeighbourScanReports;
 | 
				
			||||||
@@ -215,8 +216,11 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
				ssidConfig.setSsid("DefaultSsid-2g");
 | 
									ssidConfig.setSsid("DefaultSsid-2g");
 | 
				
			||||||
				ssidConfig.setSecureMode(SecureMode.wpa2PSK);
 | 
									ssidConfig.setSecureMode(SecureMode.wpa2PSK);
 | 
				
			||||||
				ssidConfig.setKeyStr("12345678");
 | 
									ssidConfig.setKeyStr("12345678");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				Set<RadioType> appliedRadios = new HashSet<>();
 | 
									Set<RadioType> appliedRadios = new HashSet<>();
 | 
				
			||||||
				appliedRadios.add(RadioType.is2dot4GHz);
 | 
									appliedRadios.add(RadioType.is2dot4GHz);
 | 
				
			||||||
 | 
									ssidConfig.getRadioBasedConfigs().get(RadioType.is2dot4GHz).setEnable80211r(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				ssidConfig.setAppliedRadios(appliedRadios);
 | 
									ssidConfig.setAppliedRadios(appliedRadios);
 | 
				
			||||||
				ssidProfile.setDetails(ssidConfig);
 | 
									ssidProfile.setDetails(ssidConfig);
 | 
				
			||||||
				ssidProfile = profileServiceInterface.create(ssidProfile);
 | 
									ssidProfile = profileServiceInterface.create(ssidProfile);
 | 
				
			||||||
@@ -232,6 +236,9 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
				appliedRadios5g.add(RadioType.is5GHzL);
 | 
									appliedRadios5g.add(RadioType.is5GHzL);
 | 
				
			||||||
				appliedRadios5g.add(RadioType.is5GHzU);
 | 
									appliedRadios5g.add(RadioType.is5GHzU);
 | 
				
			||||||
				ssidConfig5g.setAppliedRadios(appliedRadios5g);
 | 
									ssidConfig5g.setAppliedRadios(appliedRadios5g);
 | 
				
			||||||
 | 
									ssidConfig5g.getRadioBasedConfigs().get(RadioType.is5GHzL).setEnable80211r(true);
 | 
				
			||||||
 | 
									ssidConfig5g.getRadioBasedConfigs().get(RadioType.is5GHzU).setEnable80211r(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				ssidProfile5g.setDetails(ssidConfig5g);
 | 
									ssidProfile5g.setDetails(ssidConfig5g);
 | 
				
			||||||
				ssidProfile5g = profileServiceInterface.create(ssidProfile5g);
 | 
									ssidProfile5g = profileServiceInterface.create(ssidProfile5g);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -873,7 +880,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
	private void populateNeighbourScanReports(List<ServiceMetric> metricRecordList, Report report, int customerId,
 | 
						private void populateNeighbourScanReports(List<ServiceMetric> metricRecordList, Report report, int customerId,
 | 
				
			||||||
			long equipmentId) {
 | 
								long equipmentId) {
 | 
				
			||||||
		LOG.debug("populateNeighbourScanReports for Customer {} Equipment {}", customerId, equipmentId);
 | 
							LOG.debug("populateNeighbourScanReports for Customer {} Equipment {}", customerId, equipmentId);
 | 
				
			||||||
		LOG.debug("Opensync Stats for Neighbors {}", report.getNeighborsList());
 | 
					//		LOG.debug("Opensync Stats for Neighbors {}", report.getNeighborsList());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		for (Neighbor neighbor : report.getNeighborsList()) {
 | 
							for (Neighbor neighbor : report.getNeighborsList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -926,16 +933,13 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
				nr.setSsid(nBss.getSsid());
 | 
									nr.setSsid(nBss.getSsid());
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (LOG.isDebugEnabled()) {
 | 
								LOG.debug("populateNeighbourScanReports created report {} from stats {}", neighbourScanReports, neighbor);
 | 
				
			||||||
				LOG.debug("populateNeighbourScanReports created report {} from stats {}", neighbourScanReports,
 | 
					 | 
				
			||||||
						neighbor);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private void handleClientSessionUpdate(int customerId, long equipmentId, String apId, long locationId, int channel,
 | 
						private void handleClientSessionUpdate(int customerId, long equipmentId, String apId, long locationId, int channel,
 | 
				
			||||||
			RadioBandType band, long timestamp, sts.OpensyncStats.Client client) {
 | 
								RadioBandType band, long timestamp, sts.OpensyncStats.Client client, String nodeId) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		com.telecominfraproject.wlan.client.models.Client clientInstance = clientServiceInterface.getOrNull(customerId,
 | 
							com.telecominfraproject.wlan.client.models.Client clientInstance = clientServiceInterface.getOrNull(customerId,
 | 
				
			||||||
				new MacAddress(client.getMacAddress()));
 | 
									new MacAddress(client.getMacAddress()));
 | 
				
			||||||
@@ -943,11 +947,11 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
			clientInstance = new com.telecominfraproject.wlan.client.models.Client();
 | 
								clientInstance = new com.telecominfraproject.wlan.client.models.Client();
 | 
				
			||||||
			clientInstance.setCustomerId(customerId);
 | 
								clientInstance.setCustomerId(customerId);
 | 
				
			||||||
			clientInstance.setMacAddress(new MacAddress(client.getMacAddress()));
 | 
								clientInstance.setMacAddress(new MacAddress(client.getMacAddress()));
 | 
				
			||||||
			clientInstance.setDetails(new ClientDetails());
 | 
								clientInstance.setDetails(new ClientInfoDetails());
 | 
				
			||||||
			clientInstance = clientServiceInterface.create(clientInstance);
 | 
								clientInstance = clientServiceInterface.create(clientInstance);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							ClientInfoDetails clientDetails = (ClientInfoDetails) clientInstance.getDetails();
 | 
				
			||||||
		clientServiceInterface.getSessionOrNull(customerId, equipmentId, clientInstance.getMacAddress());
 | 
							clientDetails.setHostName(nodeId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		try {
 | 
							try {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -983,7 +987,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
				LOG.debug("Band {} is not supported.", band);
 | 
									LOG.debug("Band {} is not supported.", band);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			clientSession.getDetails().setRadioType(radioType);
 | 
								clientSession.getDetails().setRadioType(radioType);
 | 
				
			||||||
 | 
					 | 
				
			||||||
			clientSession.getDetails().setSessionId(clientSession.getMacAddress().getAddressAsLong());
 | 
								clientSession.getDetails().setSessionId(clientSession.getMacAddress().getAddressAsLong());
 | 
				
			||||||
			clientSession.getDetails().setSsid(client.getSsid());
 | 
								clientSession.getDetails().setSsid(client.getSsid());
 | 
				
			||||||
			clientSession.getDetails().setAssociationStatus(0);
 | 
								clientSession.getDetails().setAssociationStatus(0);
 | 
				
			||||||
@@ -1020,7 +1023,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
	private void populateApSsidMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId,
 | 
						private void populateApSsidMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId,
 | 
				
			||||||
			long equipmentId, String apId) {
 | 
								long equipmentId, String apId) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		LOG.debug("populateApSsidMetrics for Customer {} Equipment {}");
 | 
							LOG.debug("populateApSsidMetrics for Customer {} Equipment {}", customerId, equipmentId);
 | 
				
			||||||
		ServiceMetric smr = new ServiceMetric(customerId, equipmentId);
 | 
							ServiceMetric smr = new ServiceMetric(customerId, equipmentId);
 | 
				
			||||||
		ApSsidMetrics apSsidMetrics = new ApSsidMetrics();
 | 
							ApSsidMetrics apSsidMetrics = new ApSsidMetrics();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1030,7 +1033,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
		long locationId = (equipment != null) ? equipment.getLocationId() : 0;
 | 
							long locationId = (equipment != null) ? equipment.getLocationId() : 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		smr.setDetails(apSsidMetrics);
 | 
							smr.setDetails(apSsidMetrics);
 | 
				
			||||||
		LOG.debug("ApSsidMetrics Keys {}: ", apSsidMetrics.getSsidStats().keySet());
 | 
					 | 
				
			||||||
		metricRecordList.add(smr);
 | 
							metricRecordList.add(smr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		for (ClientReport clientReport : report.getClientsList()) {
 | 
							for (ClientReport clientReport : report.getClientsList()) {
 | 
				
			||||||
@@ -1041,27 +1043,81 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
				smr.setCreatedTimestamp(clientReport.getTimestampMs());
 | 
									smr.setCreatedTimestamp(clientReport.getTimestampMs());
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			long txBytes = 0;
 | 
								long txBytes = 0L;
 | 
				
			||||||
			long rxBytes = 0;
 | 
								long rxBytes = 0L;
 | 
				
			||||||
 | 
								long txFrames = 0L;
 | 
				
			||||||
 | 
								long rxFrames = 0L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			int txErrors = 0;
 | 
								int txErrors = 0;
 | 
				
			||||||
 | 
								int rxErrors = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								int txRetries = 0;
 | 
				
			||||||
			int rxRetries = 0;
 | 
								int rxRetries = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								double txRate = 0.0D;
 | 
				
			||||||
 | 
								double rxRate = 0.0D;
 | 
				
			||||||
			int lastRssi = 0;
 | 
								int lastRssi = 0;
 | 
				
			||||||
			String ssid = null;
 | 
								String ssid = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								List<McsStats> mcsStats = new ArrayList<McsStats>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			Set<String> clientMacs = new HashSet<String>();
 | 
								Set<String> clientMacs = new HashSet<String>();
 | 
				
			||||||
			for (Client client : clientReport.getClientListList()) {
 | 
								for (Client client : clientReport.getClientListList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									if (client.hasSsid()) {
 | 
				
			||||||
 | 
										ssid = client.getSsid();
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									LOG.debug("Client {} connected {} connectedCount {}", client.getMacAddress(), client.getConnected(),
 | 
				
			||||||
 | 
											client.getConnectCount());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if (client.hasStats()) {
 | 
									if (client.hasStats()) {
 | 
				
			||||||
					clientMacs.add(client.getMacAddress());
 | 
										clientMacs.add(client.getMacAddress());
 | 
				
			||||||
 | 
										sts.OpensyncStats.Client.Stats clientStats = client.getStats();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//			        optional uint64     rx_bytes        = 1;
 | 
				
			||||||
 | 
					//			        optional uint64     tx_bytes        = 2;
 | 
				
			||||||
 | 
					//			        optional uint64     rx_frames       = 3;
 | 
				
			||||||
 | 
					//			        optional uint64     tx_frames       = 4;
 | 
				
			||||||
 | 
					//			        optional uint64     rx_retries      = 5;
 | 
				
			||||||
 | 
					//			        optional uint64     tx_retries      = 6;
 | 
				
			||||||
 | 
					//			        optional uint64     rx_errors       = 7;
 | 
				
			||||||
 | 
					//			        optional uint64     tx_errors       = 8;
 | 
				
			||||||
 | 
					//			        optional double     rx_rate         = 9;
 | 
				
			||||||
 | 
					//			        optional double     tx_rate         = 10;
 | 
				
			||||||
 | 
					//			        optional uint32     rssi            = 11;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										rxBytes += clientStats.getRxBytes();
 | 
				
			||||||
 | 
										txBytes += clientStats.getTxBytes();
 | 
				
			||||||
 | 
										txFrames += clientStats.getRxFrames();
 | 
				
			||||||
 | 
										rxFrames += clientStats.getTxFrames();
 | 
				
			||||||
 | 
										rxRetries += clientStats.getRxRetries();
 | 
				
			||||||
 | 
										txRetries += clientStats.getTxRetries();
 | 
				
			||||||
 | 
										rxErrors += clientStats.getRxErrors();
 | 
				
			||||||
 | 
										txErrors += clientStats.getTxErrors();
 | 
				
			||||||
 | 
										rxRate += clientStats.getRxRate();
 | 
				
			||||||
 | 
										txRate += clientStats.getTxRate();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					txBytes += client.getStats().getTxBytes();
 | 
					 | 
				
			||||||
					rxBytes += client.getStats().getRxBytes();
 | 
					 | 
				
			||||||
					txErrors += client.getStats().getTxErrors();
 | 
					 | 
				
			||||||
					rxRetries += client.getStats().getRxRetries();
 | 
					 | 
				
			||||||
					lastRssi = client.getStats().getRssi();
 | 
										lastRssi = client.getStats().getRssi();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										for (sts.OpensyncStats.Client.TxStats txStats : client.getTxStatsList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											LOG.debug("txStats {}", txStats);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										for (sts.OpensyncStats.Client.RxStats rxStats : client.getRxStatsList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											LOG.debug("rxStats {}", rxStats);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										for (sts.OpensyncStats.Client.TidStats tidStats : client.getTidStatsList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											LOG.debug("tidStats {}", tidStats);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					try {
 | 
										try {
 | 
				
			||||||
						handleClientSessionUpdate(customerId, equipmentId, apId, locationId, clientReport.getChannel(),
 | 
											handleClientSessionUpdate(customerId, equipmentId, apId, locationId, clientReport.getChannel(),
 | 
				
			||||||
								clientReport.getBand(), clientReport.getTimestampMs(), client);
 | 
													clientReport.getBand(), clientReport.getTimestampMs(), client, report.getNodeID());
 | 
				
			||||||
					} catch (Exception e) {
 | 
										} catch (Exception e) {
 | 
				
			||||||
						LOG.debug("Unabled to update client {} session {}", client, e);
 | 
											LOG.debug("Unabled to update client {} session {}", client, e);
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
@@ -1076,8 +1132,11 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			SsidStatistics ssidStatistics = new SsidStatistics();
 | 
								SsidStatistics ssidStatistics = new SsidStatistics();
 | 
				
			||||||
			ssidStatistics.setRxLastRssi(-1 * lastRssi);
 | 
								ssidStatistics.setRxLastRssi(-1 * lastRssi);
 | 
				
			||||||
			ssidStatistics.setRxBytes(rxBytes);
 | 
								ssidStatistics.setNumRxData(Long.valueOf(rxFrames).intValue());
 | 
				
			||||||
			ssidStatistics.setNumTxBytesSucc(txBytes - txErrors);
 | 
								ssidStatistics.setRxBytes(rxBytes - rxErrors - rxRetries);
 | 
				
			||||||
 | 
								ssidStatistics.setNumTxDataRetries(txRetries);
 | 
				
			||||||
 | 
								ssidStatistics.setNumRcvFrameForTx(txFrames);
 | 
				
			||||||
 | 
								ssidStatistics.setNumTxBytesSucc(txBytes - txErrors - txRetries);
 | 
				
			||||||
			ssidStatistics.setNumRxRetry(rxRetries);
 | 
								ssidStatistics.setNumRxRetry(rxRetries);
 | 
				
			||||||
			ssidStatistics.setNumClient(clientMacs.size());
 | 
								ssidStatistics.setNumClient(clientMacs.size());
 | 
				
			||||||
			ssidStatistics.setSsid(ssid);
 | 
								ssidStatistics.setSsid(ssid);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1780,7 +1780,7 @@ public class OvsdbDao {
 | 
				
			|||||||
		updateColumns.put("hw_config", hwConfigMap);
 | 
							updateColumns.put("hw_config", hwConfigMap);
 | 
				
			||||||
		updateColumns.put("bcn_int", new Atom<>(beaconInterval));
 | 
							updateColumns.put("bcn_int", new Atom<>(beaconInterval));
 | 
				
			||||||
		updateColumns.put("enabled", new Atom<>(enabled));
 | 
							updateColumns.put("enabled", new Atom<>(enabled));
 | 
				
			||||||
		updateColumns.put("ht_mode", new Atom<>(ht_mode));
 | 
					//		updateColumns.put("ht_mode", new Atom<>(ht_mode));
 | 
				
			||||||
		if (txPower > 0) {
 | 
							if (txPower > 0) {
 | 
				
			||||||
			updateColumns.put("tx_power", new Atom<>(txPower));
 | 
								updateColumns.put("tx_power", new Atom<>(txPower));
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
@@ -1803,8 +1803,8 @@ public class OvsdbDao {
 | 
				
			|||||||
	public void configureSingleSsid(OvsdbClient ovsdbClient, String bridge, String ifName, String ssid,
 | 
						public void configureSingleSsid(OvsdbClient ovsdbClient, String bridge, String ifName, String ssid,
 | 
				
			||||||
			boolean ssidBroadcast, Map<String, String> security,
 | 
								boolean ssidBroadcast, Map<String, String> security,
 | 
				
			||||||
			Map<String, WifiRadioConfigInfo> provisionedWifiRadioConfigs, String radioIfName, int vlanId,
 | 
								Map<String, WifiRadioConfigInfo> provisionedWifiRadioConfigs, String radioIfName, int vlanId,
 | 
				
			||||||
			boolean rrmEnabled, String minHwMode, boolean enabled, int keyRefresh, boolean uapsdEnabled,
 | 
								boolean rrmEnabled, boolean enable80211r, String minHwMode, boolean enabled, int keyRefresh,
 | 
				
			||||||
			boolean apBridge, NetworkForwardMode networkForwardMode, String gateway, String inet,
 | 
								boolean uapsdEnabled, boolean apBridge, NetworkForwardMode networkForwardMode, String gateway, String inet,
 | 
				
			||||||
			Map<String, String> dns, String ipAssignScheme) {
 | 
								Map<String, String> dns, String ipAssignScheme) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		List<Operation> operations = new ArrayList<>();
 | 
							List<Operation> operations = new ArrayList<>();
 | 
				
			||||||
@@ -1814,7 +1814,12 @@ public class OvsdbDao {
 | 
				
			|||||||
			updateColumns.put("bridge", new Atom<String>(bridge));
 | 
								updateColumns.put("bridge", new Atom<String>(bridge));
 | 
				
			||||||
			updateColumns.put("btm", new Atom<>(1));
 | 
								updateColumns.put("btm", new Atom<>(1));
 | 
				
			||||||
			updateColumns.put("enabled", new Atom<>(enabled));
 | 
								updateColumns.put("enabled", new Atom<>(enabled));
 | 
				
			||||||
 | 
								if (enable80211r) {
 | 
				
			||||||
 | 
									updateColumns.put("ft_psk", new Atom<>(1));
 | 
				
			||||||
 | 
									updateColumns.put("ft_mobility_domain", new Atom<>(17911));
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
				updateColumns.put("ft_psk", new Atom<>(0));
 | 
									updateColumns.put("ft_psk", new Atom<>(0));
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
			updateColumns.put("if_name", new Atom<>(ifName));
 | 
								updateColumns.put("if_name", new Atom<>(ifName));
 | 
				
			||||||
			updateColumns.put("mode", new Atom<>("ap"));
 | 
								updateColumns.put("mode", new Atom<>("ap"));
 | 
				
			||||||
			updateColumns.put("rrm", new Atom<>(rrmEnabled ? 1 : 0));
 | 
								updateColumns.put("rrm", new Atom<>(rrmEnabled ? 1 : 0));
 | 
				
			||||||
@@ -1966,6 +1971,8 @@ public class OvsdbDao {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
				boolean apBridge = radioConfiguration.getStationIsolation() == StateSetting.enabled; // stationIsolation
 | 
									boolean apBridge = radioConfiguration.getStationIsolation() == StateSetting.enabled; // stationIsolation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									boolean enable80211r = ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211r();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				String minHwMode = "11n"; // min_hw_mode is 11ac, wifi 5, we can
 | 
									String minHwMode = "11n"; // min_hw_mode is 11ac, wifi 5, we can
 | 
				
			||||||
											// also take ++ (11ax) but 2.4GHz only
 | 
																// also take ++ (11ax) but 2.4GHz only
 | 
				
			||||||
											// Wifi4 --
 | 
																// Wifi4 --
 | 
				
			||||||
@@ -2034,8 +2041,9 @@ public class OvsdbDao {
 | 
				
			|||||||
					try {
 | 
										try {
 | 
				
			||||||
						configureSingleSsid(ovsdbClient, bridgeNameVifInterfaces, ifName, ssidConfig.getSsid(),
 | 
											configureSingleSsid(ovsdbClient, bridgeNameVifInterfaces, ifName, ssidConfig.getSsid(),
 | 
				
			||||||
								ssidBroadcast, security, provisionedWifiRadioConfigs, radioIfName,
 | 
													ssidBroadcast, security, provisionedWifiRadioConfigs, radioIfName,
 | 
				
			||||||
								ssidConfig.getVlanId(), rrmEnabled, minHwMode, enabled, keyRefresh, uapsdEnabled,
 | 
													ssidConfig.getVlanId(), rrmEnabled, enable80211r, minHwMode, enabled, keyRefresh,
 | 
				
			||||||
								apBridge, ssidConfig.getForwardMode(), gateway, inet, dns, ipAssignScheme);
 | 
													uapsdEnabled, apBridge, ssidConfig.getForwardMode(), gateway, inet, dns,
 | 
				
			||||||
 | 
													ipAssignScheme);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					} catch (IllegalStateException e) {
 | 
										} catch (IllegalStateException e) {
 | 
				
			||||||
						// could not provision this SSID, but still can go on
 | 
											// could not provision this SSID, but still can go on
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user