mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-03 20:17:53 +00:00
Merge branch 'master' of github.com:Telecominfraproject/wlan-cloud-opensync-controller
This commit is contained in:
@@ -13,6 +13,8 @@ import java.util.concurrent.ExecutionException;
|
|||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
|
|
||||||
|
import org.checkerframework.checker.units.qual.K;
|
||||||
|
import org.elasticsearch.common.recycler.Recycler.V;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -21,6 +23,9 @@ import com.telecominfraproject.wlan.core.model.equipment.ChannelBandwidth;
|
|||||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
||||||
import com.telecominfraproject.wlan.equipment.models.ElementRadioConfiguration;
|
import com.telecominfraproject.wlan.equipment.models.ElementRadioConfiguration;
|
||||||
|
import com.telecominfraproject.wlan.equipment.models.GettingDNS;
|
||||||
|
import com.telecominfraproject.wlan.equipment.models.GettingIP;
|
||||||
|
import com.telecominfraproject.wlan.equipment.models.NetworkForwardMode;
|
||||||
import com.telecominfraproject.wlan.equipment.models.RadioConfiguration;
|
import com.telecominfraproject.wlan.equipment.models.RadioConfiguration;
|
||||||
import com.telecominfraproject.wlan.equipment.models.RadioMode;
|
import com.telecominfraproject.wlan.equipment.models.RadioMode;
|
||||||
import com.telecominfraproject.wlan.equipment.models.StateSetting;
|
import com.telecominfraproject.wlan.equipment.models.StateSetting;
|
||||||
@@ -1686,7 +1691,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,
|
||||||
int vifRadioIdx, boolean rrmEnabled, String minHwMode, boolean enabled, int keyRefresh, boolean uapsdEnabled, boolean apBridge) {
|
int vifRadioIdx, boolean rrmEnabled, String minHwMode, boolean enabled, int keyRefresh,
|
||||||
|
boolean uapsdEnabled, boolean apBridge, NetworkForwardMode networkForwardMode, String gateway, String inet, Map<String, String> dns, String ipAssignScheme) {
|
||||||
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
List<Operation> operations = new ArrayList<>();
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
Map<String, Value> updateColumns = new HashMap<>();
|
||||||
@@ -1770,9 +1776,13 @@ public class OvsdbDao {
|
|||||||
}
|
}
|
||||||
Map<String, WifiInetConfigInfo> inetConfigs = getProvisionedWifiInetConfigs(ovsdbClient);
|
Map<String, WifiInetConfigInfo> inetConfigs = getProvisionedWifiInetConfigs(ovsdbClient);
|
||||||
if (inetConfigs.containsKey(ifName))
|
if (inetConfigs.containsKey(ifName))
|
||||||
updateWifiInetConfig(ovsdbClient, vlanId, ifName, enabled);
|
updateWifiInetConfig(ovsdbClient, vlanId, ifName, enabled,
|
||||||
|
(networkForwardMode == NetworkForwardMode.NAT), "vif", gateway, inet, dns,ipAssignScheme);
|
||||||
else
|
else
|
||||||
insertWifiInetConfigForVif(ovsdbClient, vlanId, ifName, enabled);
|
// do nothing for now
|
||||||
|
LOG.debug("No corresponding WifiInetConfig for this Interface");
|
||||||
|
// TODO: should wait for the default config to take place
|
||||||
|
// insertWifiInetConfigForVif(ovsdbClient, vlanId, ifName, enabled);
|
||||||
|
|
||||||
LOG.info("Provisioned SSID {} on interface {} / {}", ssid, ifName, radioIfName);
|
LOG.info("Provisioned SSID {} on interface {} / {}", ssid, ifName, radioIfName);
|
||||||
|
|
||||||
@@ -1796,12 +1806,12 @@ public class OvsdbDao {
|
|||||||
LOG.debug("Existing WifiVifConfigs: {}", provisionedWifiVifConfigs.keySet());
|
LOG.debug("Existing WifiVifConfigs: {}", provisionedWifiVifConfigs.keySet());
|
||||||
|
|
||||||
SsidConfiguration ssidConfig = (SsidConfiguration) ssidProfile.getDetails();
|
SsidConfiguration ssidConfig = (SsidConfiguration) ssidProfile.getDetails();
|
||||||
|
ApElementConfiguration apElementConfig = ((ApElementConfiguration) opensyncApConfig.getCustomerEquipment()
|
||||||
|
.getDetails());
|
||||||
for (RadioType radioType : ssidConfig.getAppliedRadios()) {
|
for (RadioType radioType : ssidConfig.getAppliedRadios()) {
|
||||||
|
|
||||||
int keyRefresh = ssidConfig.getKeyRefresh();
|
int keyRefresh = ssidConfig.getKeyRefresh();
|
||||||
|
|
||||||
|
|
||||||
Map<String, WifiRadioConfigInfo> provisionedWifiRadioConfigs = getProvisionedWifiRadioConfigs(
|
Map<String, WifiRadioConfigInfo> provisionedWifiRadioConfigs = getProvisionedWifiRadioConfigs(
|
||||||
ovsdbClient);
|
ovsdbClient);
|
||||||
|
|
||||||
@@ -1810,9 +1820,27 @@ public class OvsdbDao {
|
|||||||
String ssidSecurityMode = ssidConfig.getSecureMode().name();
|
String ssidSecurityMode = ssidConfig.getSecureMode().name();
|
||||||
String opensyncSecurityMode = "OPEN";
|
String opensyncSecurityMode = "OPEN";
|
||||||
|
|
||||||
RadioConfiguration radioConfiguration = ((ApElementConfiguration) opensyncApConfig.getCustomerEquipment().getDetails())
|
String ipAssignScheme = "none";
|
||||||
.getAdvancedRadioMap().get(radioType);
|
// the following 5 attributes only applicable to static config, else they are
|
||||||
if (radioConfiguration == null) continue; // don't have a radio of this kind in the map
|
// ignored
|
||||||
|
String gateway = null;
|
||||||
|
String inet = null;
|
||||||
|
Map<String,String> dns = null;
|
||||||
|
if (apElementConfig.getStaticIP() != null) {
|
||||||
|
ipAssignScheme = "static";
|
||||||
|
inet = apElementConfig.getStaticIP().getHostAddress();
|
||||||
|
gateway = apElementConfig.getStaticIpGw().getHostAddress();
|
||||||
|
dns = new HashMap<String,String>();
|
||||||
|
dns.put(apElementConfig.getStaticDnsIp1().getHostName(), apElementConfig.getStaticDnsIp1().getHostAddress());
|
||||||
|
dns.put(apElementConfig.getStaticDnsIp2().getHostName(), apElementConfig.getStaticDnsIp2().getHostAddress());
|
||||||
|
} else if (apElementConfig.getGettingIP().equals(GettingIP.dhcp)
|
||||||
|
|| apElementConfig.getGettingDNS().equals(GettingDNS.dhcp)) {
|
||||||
|
ipAssignScheme = "dhcp";
|
||||||
|
}
|
||||||
|
|
||||||
|
RadioConfiguration radioConfiguration = apElementConfig.getAdvancedRadioMap().get(radioType);
|
||||||
|
if (radioConfiguration == null)
|
||||||
|
continue; // don't have a radio of this kind in the map
|
||||||
RadioMode radioMode = radioConfiguration.getRadioMode();
|
RadioMode radioMode = radioConfiguration.getRadioMode();
|
||||||
|
|
||||||
boolean uapsdEnabled = (radioConfiguration.getUapsdState() == StateSetting.enabled);
|
boolean uapsdEnabled = (radioConfiguration.getUapsdState() == StateSetting.enabled);
|
||||||
@@ -1864,7 +1892,8 @@ public class OvsdbDao {
|
|||||||
try {
|
try {
|
||||||
configureSingleSsid(ovsdbClient, bridge, ifName, ssidConfig.getSsid(), ssidBroadcast, security,
|
configureSingleSsid(ovsdbClient, bridge, ifName, ssidConfig.getSsid(), ssidBroadcast, security,
|
||||||
provisionedWifiRadioConfigs, radioIfName, ssidConfig.getVlanId(), vifRadioIdx,
|
provisionedWifiRadioConfigs, radioIfName, ssidConfig.getVlanId(), vifRadioIdx,
|
||||||
rrmEnabled, minHwMode, enabled, keyRefresh, uapsdEnabled, apBridge);
|
rrmEnabled, minHwMode, enabled, keyRefresh, 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
|
||||||
@@ -1914,8 +1943,8 @@ public class OvsdbDao {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateWifiInetConfig(OvsdbClient ovsdbClient, int vlanId, String ifName, boolean enabled
|
private void updateWifiInetConfig(OvsdbClient ovsdbClient, int vlanId, String ifName, boolean enabled,
|
||||||
) {
|
boolean isNAT, String ifType, String gateway, String inet, Map<String, String> dns, String ipAssignScheme) {
|
||||||
|
|
||||||
List<Operation> operations = new ArrayList<>();
|
List<Operation> operations = new ArrayList<>();
|
||||||
Map<String, Value> updateColumns = new HashMap<>();
|
Map<String, Value> updateColumns = new HashMap<>();
|
||||||
@@ -1926,13 +1955,35 @@ public class OvsdbDao {
|
|||||||
/// usr/plume/tools/ovsh i Wifi_Inet_Config NAT:=false enabled:=true
|
/// usr/plume/tools/ovsh i Wifi_Inet_Config NAT:=false enabled:=true
|
||||||
/// if_name:=home-ap-24 if_type:=vif ip_assign_scheme:=none
|
/// if_name:=home-ap-24 if_type:=vif ip_assign_scheme:=none
|
||||||
/// network:=true
|
/// network:=true
|
||||||
|
// dhcpd
|
||||||
updateColumns.put("NAT", new Atom<>(false));
|
updateColumns.put("if_type", new Atom<String>(ifType));
|
||||||
updateColumns.put("enabled", new Atom<Boolean>(enabled));
|
updateColumns.put("enabled", new Atom<Boolean>(enabled));
|
||||||
updateColumns.put("if_type", new Atom<>("vif"));
|
updateColumns.put("NAT", new Atom<Boolean>(isNAT));
|
||||||
updateColumns.put("ip_assign_scheme", new Atom<>("none"));
|
|
||||||
|
// mtu // specified in interface, should take that value when implemented
|
||||||
|
updateColumns.put("mtu", new Atom<>(1500));
|
||||||
updateColumns.put("network", new Atom<>(true));
|
updateColumns.put("network", new Atom<>(true));
|
||||||
|
|
||||||
|
updateColumns.put("ip_assign_scheme", new Atom<>(ipAssignScheme));
|
||||||
|
|
||||||
|
if (ipAssignScheme.equals("static")) {
|
||||||
|
updateColumns.put("dns", com.vmware.ovsdb.protocol.operation.notation.Map.of(dns));
|
||||||
|
updateColumns.put("inet_addr", new Atom<String>(inet));
|
||||||
|
updateColumns.put("gateway", new Atom<String>(gateway));
|
||||||
|
// netmask
|
||||||
|
// broadcast
|
||||||
|
}
|
||||||
|
if (ipAssignScheme.equals("dhcp")) {
|
||||||
|
updateColumns.put("dhcp_sniff", new Atom<Boolean>(true));
|
||||||
|
} else {
|
||||||
|
updateColumns.put("dhcp_sniff", new Atom<Boolean>(false));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ifType.equals("vlan")) {
|
||||||
updateColumns.put("vlan_id",new Atom<Integer>(vlanId));
|
updateColumns.put("vlan_id",new Atom<Integer>(vlanId));
|
||||||
|
} else {
|
||||||
|
updateColumns.put("vlan_id",new com.vmware.ovsdb.protocol.operation.notation.Set());
|
||||||
|
}
|
||||||
|
|
||||||
Row row = new Row(updateColumns);
|
Row row = new Row(updateColumns);
|
||||||
operations.add(new Update(wifiInetConfigDbTable, conditions, row));
|
operations.add(new Update(wifiInetConfigDbTable, conditions, row));
|
||||||
|
|||||||
Reference in New Issue
Block a user