mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-21 20:35:02 +00:00
WIFI-1110: vifS is not applying as wm is crashing due to garbage in /etc/wireless/config
This commit is contained in:
@@ -193,40 +193,34 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
|
||||
LOG.debug("Client {} connect for AP {}", clientCn, apId);
|
||||
|
||||
ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
|
||||
ovsdbDao.removeAllSsids(ovsdbClient); // always
|
||||
ovsdbDao.removeAllInetConfigs(ovsdbClient);
|
||||
ovsdbDao.removeWifiRrm(ovsdbClient);
|
||||
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
|
||||
|
||||
OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId);
|
||||
ovsdbDao.configureInterfaces(ovsdbClient);
|
||||
|
||||
if (opensyncAPConfig != null) {
|
||||
// cleanup existing
|
||||
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
|
||||
ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
|
||||
ovsdbDao.removeWifiRrm(ovsdbClient);
|
||||
ovsdbDao.removeAllInetConfigs(ovsdbClient);
|
||||
ovsdbDao.removeAllSsids(ovsdbClient); // always
|
||||
// reconfigure
|
||||
|
||||
ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureInterfaces(ovsdbClient);
|
||||
ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.createVlanNetworkInterfaces(ovsdbClient, opensyncAPConfig);
|
||||
|
||||
ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
|
||||
if (opensyncAPConfig.getHotspotConfig() != null) {
|
||||
ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
|
||||
}
|
||||
ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig);
|
||||
if (((ApNetworkConfiguration) opensyncAPConfig.getApProfile().getDetails()).getSyntheticClientEnabled()) {
|
||||
ovsdbDao.enableNetworkProbeForSyntheticClient(ovsdbClient);
|
||||
}
|
||||
} else {
|
||||
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
|
||||
ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
|
||||
ovsdbDao.removeWifiRrm(ovsdbClient);
|
||||
ovsdbDao.removeAllInetConfigs(ovsdbClient);
|
||||
ovsdbDao.removeAllSsids(ovsdbClient); // always
|
||||
}
|
||||
|
||||
if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) {
|
||||
ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats);
|
||||
}
|
||||
|
||||
} else {
|
||||
LOG.info("No Configuration available for {}", apId);
|
||||
}
|
||||
|
||||
LOG.debug("Client connect Done");
|
||||
return connectNodeInfo;
|
||||
@@ -270,17 +264,20 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
LOG.warn("AP with id " + apId + " does not have a config to apply.");
|
||||
return;
|
||||
}
|
||||
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
|
||||
|
||||
ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
|
||||
ovsdbDao.removeWifiRrm(ovsdbClient);
|
||||
ovsdbDao.removeAllInetConfigs(ovsdbClient);
|
||||
ovsdbDao.removeAllSsids(ovsdbClient); // always
|
||||
ovsdbDao.removeAllInetConfigs(ovsdbClient);
|
||||
ovsdbDao.removeWifiRrm(ovsdbClient);
|
||||
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
|
||||
|
||||
ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureInterfaces(ovsdbClient);
|
||||
ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.createVlanNetworkInterfaces(ovsdbClient, opensyncAPConfig);
|
||||
|
||||
ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
|
||||
if (opensyncAPConfig.getHotspotConfig() != null) {
|
||||
ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
|
||||
}
|
||||
|
||||
@@ -613,8 +613,9 @@ public class OvsdbDao {
|
||||
|
||||
/**
|
||||
* @param ovsdbClient
|
||||
* @return value of reporting_interval column for the stats_type=device from the
|
||||
* Wifi_Stats_Config table. If value is not provisioned then return -1.
|
||||
* @return value of reporting_interval column for the stats_type=device from
|
||||
* the Wifi_Stats_Config table. If value is not provisioned then
|
||||
* return -1.
|
||||
*/
|
||||
public long getDeviceStatsReportingInterval(OvsdbClient ovsdbClient) {
|
||||
long ret = -1;
|
||||
@@ -658,9 +659,10 @@ public class OvsdbDao {
|
||||
|
||||
/**
|
||||
* @param ovsdbClient
|
||||
* @param value of reporting_interval column for the stats_type=device
|
||||
* from the Wifi_Stats_Config table. If value is not
|
||||
* provisioned then return -1.
|
||||
* @param value
|
||||
* of reporting_interval column for the stats_type=device from
|
||||
* the Wifi_Stats_Config table. If value is not provisioned then
|
||||
* return -1.
|
||||
*/
|
||||
public void updateDeviceStatsReportingInterval(OvsdbClient ovsdbClient, long newValue) {
|
||||
try {
|
||||
@@ -1770,14 +1772,15 @@ public class OvsdbDao {
|
||||
|
||||
public void removeAllInetConfigs(OvsdbClient ovsdbClient) {
|
||||
try {
|
||||
Collection<WifiInetConfigInfo> provisionedWifiInetConfigs = getProvisionedWifiInetConfigs(ovsdbClient).values();
|
||||
Collection<WifiInetConfigInfo> provisionedWifiInetConfigs = getProvisionedWifiInetConfigs(ovsdbClient)
|
||||
.values();
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
|
||||
|
||||
for (WifiInetConfigInfo wifiInetConfigInfo : provisionedWifiInetConfigs) {
|
||||
|
||||
if (wifiInetConfigInfo.vlanId > 1 || wifiInetConfigInfo.ifType.equals("vif") || wifiInetConfigInfo.ifType.equals("gre")) {
|
||||
if (wifiInetConfigInfo.vlanId > 1 || wifiInetConfigInfo.ifType.equals("vif")
|
||||
|| wifiInetConfigInfo.ifType.equals("gre")) {
|
||||
conditions = new ArrayList<>();
|
||||
conditions.add(new Condition("if_name", Function.EQUALS, new Atom<>(wifiInetConfigInfo.ifName)));
|
||||
operations.add(new Delete(wifiInetConfigDbTable, conditions));
|
||||
@@ -1829,37 +1832,6 @@ public class OvsdbDao {
|
||||
|
||||
}
|
||||
|
||||
void removeInvalidInterfaceConfigurations(OvsdbClient ovsdbClient, List<String> invalidInterfaces) {
|
||||
|
||||
try {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
|
||||
operations = new ArrayList<>();
|
||||
|
||||
for (String invalidInterface : invalidInterfaces) {
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
conditions.add(new Condition("if_name", Function.EQUALS, new Atom<>(invalidInterface)));
|
||||
operations.add(new Delete(wifiInetConfigDbTable, conditions));
|
||||
operations.add(new Delete(wifiVifConfigDbTable, conditions));
|
||||
}
|
||||
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Removed all existing vif interfaces configs from {}:", wifiInetConfigDbTable);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
}
|
||||
}
|
||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
||||
LOG.error("Error removing invalid interfaces", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void removeAllPasspointConfigs(OvsdbClient ovsdbClient) {
|
||||
removeAllHotspot20Config(ovsdbClient);
|
||||
removeAllHotspot20OsuProviders(ovsdbClient);
|
||||
@@ -2580,7 +2552,7 @@ public class OvsdbDao {
|
||||
}
|
||||
}
|
||||
|
||||
private void configureSingleSsid(OvsdbClient ovsdbClient, String vifInterfaceName, String ssid,
|
||||
private Uuid configureSingleSsid(OvsdbClient ovsdbClient, String vifInterfaceName, String ssid,
|
||||
boolean ssidBroadcast, Map<String, String> security, String radioFreqBand, int vlanId, boolean rrmEnabled,
|
||||
boolean enable80211r, int mobilityDomain, boolean enable80211v, boolean enable80211k, String minHwMode,
|
||||
boolean enabled, int keyRefresh, boolean uapsdEnabled, boolean apBridge,
|
||||
@@ -2602,7 +2574,7 @@ public class OvsdbDao {
|
||||
}
|
||||
|
||||
if (vlanId > 1) {
|
||||
createVlanNetworkInterfaces(ovsdbClient, vlanId);
|
||||
// createVlanNetworkInterfaces(ovsdbClient, vlanId);
|
||||
updateColumns.put("vlan_id", new Atom<>(vlanId));
|
||||
} else {
|
||||
updateColumns.put("vlan_id", new Atom<>(1));
|
||||
@@ -2694,10 +2666,8 @@ public class OvsdbDao {
|
||||
updateBlockList(updateColumns, macBlockList);
|
||||
Row row = new Row(updateColumns);
|
||||
|
||||
|
||||
operations.add(new Insert(wifiVifConfigDbTable, row));
|
||||
|
||||
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
@@ -2713,13 +2683,45 @@ public class OvsdbDao {
|
||||
if (vifConfigUuid == null) {
|
||||
throw new IllegalStateException("Wifi_VIF_Config entry was not created successfully");
|
||||
}
|
||||
updateColumns.clear();
|
||||
operations.clear();
|
||||
updateVifConfigsSetForRadio(ovsdbClient, ssid, radioFreqBand, operations, updateColumns, vifConfigUuid);
|
||||
|
||||
confirmVifConfigRow(ovsdbClient, vifConfigUuid);
|
||||
|
||||
LOG.info("configureSingleSsid:Provisioned SSID {} on interface {} / {}", ssid, vifInterfaceName,
|
||||
radioFreqBand);
|
||||
|
||||
return vifConfigUuid;
|
||||
|
||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
||||
LOG.error("Error in configureSingleSsid", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void confirmVifConfigRow(OvsdbClient ovsdbClient, Uuid vifConfigUuid) {
|
||||
try {
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
conditions.add(new Condition("_uuid", Function.EQUALS, new Atom<>(vifConfigUuid)));
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
operations.add(new Select(wifiVifConfigDbTable, conditions));
|
||||
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
if (res instanceof SelectResult) {
|
||||
LOG.info("Select Result for confirmVifConfigRow with Uuid {} {}", vifConfigUuid,
|
||||
((SelectResult) res).getRows());
|
||||
}
|
||||
}
|
||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
||||
LOG.error("Unable to confirm creation of VifConfig row for Uuid {}", vifConfigUuid, e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void configureInetVifInterface(OvsdbClient ovsdbClient, String vifInterfaceName, boolean enabled,
|
||||
NetworkForwardMode networkForwardMode) {
|
||||
Map<String, WifiInetConfigInfo> inetConfigs = getProvisionedWifiInetConfigs(ovsdbClient);
|
||||
|
||||
if (inetConfigs.containsKey(vifInterfaceName)) {
|
||||
@@ -2729,12 +2731,6 @@ public class OvsdbDao {
|
||||
configureInetInterface(ovsdbClient, vifInterfaceName, enabled, "vif", false,
|
||||
(networkForwardMode == NetworkForwardMode.NAT));
|
||||
}
|
||||
|
||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
||||
LOG.error("Error in configureSingleSsid", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void updateBlockList(Map<String, Value> updateColumns, List<MacAddress> macBlockList) {
|
||||
@@ -2786,9 +2782,9 @@ public class OvsdbDao {
|
||||
}
|
||||
|
||||
private void updateVifConfigsSetForRadio(OvsdbClient ovsdbClient, String ssid, String radioFreqBand,
|
||||
List<Operation> operations, Map<String, Value> updateColumns, Uuid vifConfigUuid)
|
||||
Uuid vifConfigUuid)
|
||||
throws OvsdbClientException, InterruptedException, ExecutionException, TimeoutException {
|
||||
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
conditions.add(new Condition("freq_band", Function.EQUALS, new Atom<>(radioFreqBand)));
|
||||
|
||||
@@ -3000,54 +2996,8 @@ public class OvsdbDao {
|
||||
String ssidSecurityMode = ssidConfig.getSecureMode().name();
|
||||
String opensyncSecurityMode = "OPEN";
|
||||
|
||||
if (ssidSecurityMode.equals("wpaPSK") || ssidSecurityMode.equals("wpa2PSK")
|
||||
|| ssidSecurityMode.equals("wpa2OnlyPSK")) {
|
||||
opensyncSecurityMode = "WPA-PSK";
|
||||
} else if (ssidSecurityMode.equals("wep")) {
|
||||
opensyncSecurityMode = "WEP";
|
||||
} else if (ssidSecurityMode.equals("wpaEAP") || ssidSecurityMode.equals("wpa2EAP")
|
||||
|| ssidSecurityMode.equals("wpa2OnlyEAP")) {
|
||||
opensyncSecurityMode = "WPA-EAP";
|
||||
} else if (ssidSecurityMode.equals("wpaRadius") || ssidSecurityMode.equals("wpa2OnlyRadius")
|
||||
|| ssidSecurityMode.equals("wpa2Radius")) {
|
||||
opensyncSecurityMode = "WPA-EAP";
|
||||
}
|
||||
|
||||
security.put("encryption", opensyncSecurityMode);
|
||||
// key and mode is N/A for OPEN security
|
||||
if (!opensyncSecurityMode.equals("OPEN")) {
|
||||
if (ssidSecurityMode.equals("wpa2PSK")) {
|
||||
security.put("key", ssidConfig.getKeyStr());
|
||||
security.put("mode", "mixed");
|
||||
} else if (ssidSecurityMode.equals("wpa2OnlyPSK")) {
|
||||
security.put("key", ssidConfig.getKeyStr());
|
||||
security.put("mode", "2");
|
||||
} else if (ssidSecurityMode.equals("wpaPSK")) {
|
||||
security.put("key", ssidConfig.getKeyStr());
|
||||
security.put("mode", "1");
|
||||
} else if (ssidSecurityMode.equals("wpa2OnlyEAP") || ssidSecurityMode.equals("wpa2OnlyRadius")) {
|
||||
security.put("mode", "2");
|
||||
getRadiusConfiguration(opensyncApConfig, ssidConfig, security);
|
||||
if (ssidConfig.getRadiusAccountingServiceName() != null) {
|
||||
getRadiusAccountingConfiguration(opensyncApConfig, ssidConfig, security);
|
||||
}
|
||||
} else if (ssidSecurityMode.equals("wpa2EAP") || ssidSecurityMode.equals("wpa2Radius")) {
|
||||
security.put("mode", "mixed");
|
||||
getRadiusConfiguration(opensyncApConfig, ssidConfig, security);
|
||||
if (ssidConfig.getRadiusAccountingServiceName() != null) {
|
||||
getRadiusAccountingConfiguration(opensyncApConfig, ssidConfig, security);
|
||||
}
|
||||
} else if (ssidSecurityMode.equals("wpaEAP") || ssidSecurityMode.equals("wpaRadius")) {
|
||||
security.put("mode", "1");
|
||||
getRadiusConfiguration(opensyncApConfig, ssidConfig, security);
|
||||
if (ssidConfig.getRadiusAccountingServiceName() != null) {
|
||||
getRadiusAccountingConfiguration(opensyncApConfig, ssidConfig, security);
|
||||
}
|
||||
} else if (ssidSecurityMode.equals("wep")) {
|
||||
security.put("key", ssidConfig.getKeyStr());
|
||||
security.put("mode", "1");
|
||||
}
|
||||
}
|
||||
opensyncSecurityMode = getOpensyncSecurityMode(ssidSecurityMode, opensyncSecurityMode);
|
||||
populateSecurityMap(opensyncApConfig, ssidConfig, security, ssidSecurityMode, opensyncSecurityMode);
|
||||
|
||||
// TODO put into AP captive parameter
|
||||
Map<String, String> captiveMap = new HashMap<>();
|
||||
@@ -3085,19 +3035,24 @@ public class OvsdbDao {
|
||||
} else {
|
||||
// take the first available interface for this band
|
||||
ifName = interfaces.get(0);
|
||||
LOG.info("Configuring new Wifi_VIF_Config for ssid {} with if_name {}",
|
||||
ssidConfig.getSsid(), ifName);
|
||||
LOG.info("Configuring new Wifi_VIF_Config for ssid {} with if_name {}", ssidConfig.getSsid(),
|
||||
ifName);
|
||||
}
|
||||
|
||||
configureSingleSsid(ovsdbClient, ifName, ssidConfig.getSsid(), ssidBroadcast, security, freqBand,
|
||||
ssidConfig.getVlanId() != null ? ssidConfig.getVlanId() : 1, rrmEnabled, enable80211r,
|
||||
mobilityDomain, enable80211v, enable80211k, minHwMode, enabled, keyRefresh, uapsdEnabled,
|
||||
apBridge, ssidConfig.getForwardMode(), gateway, inet, dns, ipAssignScheme, macBlockList,
|
||||
rateLimitEnable, ssidDlLimit, ssidUlLimit, clientDlLimit, clientUlLimit, rtsCtsThreshold,
|
||||
fragThresholdBytes, dtimPeriod, captiveMap, walledGardenAllowlist, bonjourServiceMap
|
||||
);
|
||||
Uuid vifConfigUuid = configureSingleSsid(ovsdbClient, ifName, ssidConfig.getSsid(), ssidBroadcast,
|
||||
security, freqBand, ssidConfig.getVlanId() != null ? ssidConfig.getVlanId() : 1, rrmEnabled,
|
||||
enable80211r, mobilityDomain, enable80211v, enable80211k, minHwMode, enabled, keyRefresh,
|
||||
uapsdEnabled, apBridge, ssidConfig.getForwardMode(), gateway, inet, dns, ipAssignScheme,
|
||||
macBlockList, rateLimitEnable, ssidDlLimit, ssidUlLimit, clientDlLimit, clientUlLimit,
|
||||
rtsCtsThreshold, fragThresholdBytes, dtimPeriod, captiveMap, walledGardenAllowlist,
|
||||
bonjourServiceMap);
|
||||
|
||||
} catch (IllegalStateException e) {
|
||||
updateVifConfigsSetForRadio(ovsdbClient, ssidConfig.getSsid(), freqBand, vifConfigUuid);
|
||||
|
||||
configureInetVifInterface(ovsdbClient, ifName, enabled, ssidConfig.getForwardMode());
|
||||
|
||||
} catch (IllegalStateException | OvsdbClientException | InterruptedException | ExecutionException
|
||||
| TimeoutException e) {
|
||||
// could not provision this SSID, but still can go on
|
||||
LOG.warn("could not provision SSID {} on {}", ssidConfig.getSsid(), freqBand);
|
||||
}
|
||||
@@ -3108,6 +3063,61 @@ public class OvsdbDao {
|
||||
|
||||
}
|
||||
|
||||
private void populateSecurityMap(OpensyncAPConfig opensyncApConfig, SsidConfiguration ssidConfig,
|
||||
Map<String, String> security, String ssidSecurityMode, String opensyncSecurityMode) {
|
||||
security.put("encryption", opensyncSecurityMode);
|
||||
// key and mode is N/A for OPEN security
|
||||
if (!opensyncSecurityMode.equals("OPEN")) {
|
||||
if (ssidSecurityMode.equals("wpa2PSK")) {
|
||||
security.put("key", ssidConfig.getKeyStr());
|
||||
security.put("mode", "mixed");
|
||||
} else if (ssidSecurityMode.equals("wpa2OnlyPSK")) {
|
||||
security.put("key", ssidConfig.getKeyStr());
|
||||
security.put("mode", "2");
|
||||
} else if (ssidSecurityMode.equals("wpaPSK")) {
|
||||
security.put("key", ssidConfig.getKeyStr());
|
||||
security.put("mode", "1");
|
||||
} else if (ssidSecurityMode.equals("wpa2OnlyEAP") || ssidSecurityMode.equals("wpa2OnlyRadius")) {
|
||||
security.put("mode", "2");
|
||||
getRadiusConfiguration(opensyncApConfig, ssidConfig, security);
|
||||
if (ssidConfig.getRadiusAccountingServiceName() != null) {
|
||||
getRadiusAccountingConfiguration(opensyncApConfig, ssidConfig, security);
|
||||
}
|
||||
} else if (ssidSecurityMode.equals("wpa2EAP") || ssidSecurityMode.equals("wpa2Radius")) {
|
||||
security.put("mode", "mixed");
|
||||
getRadiusConfiguration(opensyncApConfig, ssidConfig, security);
|
||||
if (ssidConfig.getRadiusAccountingServiceName() != null) {
|
||||
getRadiusAccountingConfiguration(opensyncApConfig, ssidConfig, security);
|
||||
}
|
||||
} else if (ssidSecurityMode.equals("wpaEAP") || ssidSecurityMode.equals("wpaRadius")) {
|
||||
security.put("mode", "1");
|
||||
getRadiusConfiguration(opensyncApConfig, ssidConfig, security);
|
||||
if (ssidConfig.getRadiusAccountingServiceName() != null) {
|
||||
getRadiusAccountingConfiguration(opensyncApConfig, ssidConfig, security);
|
||||
}
|
||||
} else if (ssidSecurityMode.equals("wep")) {
|
||||
security.put("key", ssidConfig.getKeyStr());
|
||||
security.put("mode", "1");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private String getOpensyncSecurityMode(String ssidSecurityMode, String opensyncSecurityMode) {
|
||||
if (ssidSecurityMode.equals("wpaPSK") || ssidSecurityMode.equals("wpa2PSK")
|
||||
|| ssidSecurityMode.equals("wpa2OnlyPSK")) {
|
||||
opensyncSecurityMode = "WPA-PSK";
|
||||
} else if (ssidSecurityMode.equals("wep")) {
|
||||
opensyncSecurityMode = "WEP";
|
||||
} else if (ssidSecurityMode.equals("wpaEAP") || ssidSecurityMode.equals("wpa2EAP")
|
||||
|| ssidSecurityMode.equals("wpa2OnlyEAP")) {
|
||||
opensyncSecurityMode = "WPA-EAP";
|
||||
} else if (ssidSecurityMode.equals("wpaRadius") || ssidSecurityMode.equals("wpa2OnlyRadius")
|
||||
|| ssidSecurityMode.equals("wpa2Radius")) {
|
||||
opensyncSecurityMode = "WPA-EAP";
|
||||
}
|
||||
return opensyncSecurityMode;
|
||||
}
|
||||
|
||||
public void configureHotspots(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
||||
|
||||
provisionHotspot2IconConfig(ovsdbClient, opensyncApConfig);
|
||||
@@ -3187,6 +3197,19 @@ public class OvsdbDao {
|
||||
|
||||
}
|
||||
|
||||
public void createVlanNetworkInterfaces(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
||||
Set<Integer> vlans = new HashSet<>();
|
||||
for (Profile ssidProfile : opensyncApConfig.getSsidProfile()) {
|
||||
Integer vlanId = ((SsidConfiguration) ssidProfile.getDetails()).getVlanId();
|
||||
if (vlanId != null && vlanId > 1) {
|
||||
vlans.add(vlanId);
|
||||
}
|
||||
}
|
||||
for (Integer vlanId : vlans) {
|
||||
createVlanNetworkInterfaces(ovsdbClient, vlanId);
|
||||
}
|
||||
}
|
||||
|
||||
private void createVlanNetworkInterfaces(OvsdbClient ovsdbClient, int vlanId) {
|
||||
try {
|
||||
|
||||
@@ -4956,19 +4979,16 @@ public class OvsdbDao {
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Removed rrm from {}:", wifiRrmConfigDbTable);
|
||||
LOG.info("Removed rrm from {}:", wifiRrmConfigDbTable);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
if (res instanceof UpdateResult) {
|
||||
|
||||
LOG.info("Delete Result {}", (UpdateResult) res);
|
||||
}
|
||||
}
|
||||
|
||||
LOG.info("Removed Wifi_RRM_Config");
|
||||
|
||||
} catch (ExecutionException e) {
|
||||
LOG.error("Error in removeRrm", e);
|
||||
} catch (OvsdbClientException | TimeoutException | InterruptedException e) {
|
||||
} catch (ExecutionException | OvsdbClientException | TimeoutException | InterruptedException e) {
|
||||
LOG.error("Error in removeRrm", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user