mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-03 20:17:53 +00:00
Take allowed_channels list from Wifi_Radio_State, Retrieval additional attributes from base AP configs, add customer service support and default customer id
This commit is contained in:
@@ -33,6 +33,7 @@ import com.telecominfraproject.wlan.core.model.equipment.EquipmentType;
|
|||||||
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
||||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||||
import com.telecominfraproject.wlan.core.model.equipment.SecurityType;
|
import com.telecominfraproject.wlan.core.model.equipment.SecurityType;
|
||||||
|
import com.telecominfraproject.wlan.customer.models.Customer;
|
||||||
import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface;
|
import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface;
|
||||||
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
|
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
|
||||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
||||||
@@ -245,6 +246,15 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
|
|||||||
ce = equipmentServiceInterface.update(ce);
|
ce = equipmentServiceInterface.update(ce);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Customer customer = customerServiceInterface.getOrNull(ce.getCustomerId());
|
||||||
|
if (customer == null) {
|
||||||
|
customer = new Customer();
|
||||||
|
customer.setId(autoProvisionedCustomerId);
|
||||||
|
customerServiceInterface.create(customer);
|
||||||
|
ce.setCustomerId(customer.getId());
|
||||||
|
equipmentServiceInterface.update(ce);
|
||||||
|
}
|
||||||
|
|
||||||
updateApStatus(ce, connectNodeInfo);
|
updateApStatus(ce, connectNodeInfo);
|
||||||
|
|
||||||
// register equipment routing record
|
// register equipment routing record
|
||||||
@@ -542,10 +552,10 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
|
|||||||
LOG.debug("Config content : Equipment {}", ret.getCustomerEquipment().toPrettyString());
|
LOG.debug("Config content : Equipment {}", ret.getCustomerEquipment().toPrettyString());
|
||||||
LOG.debug("Config content : APProfile {}", ret.getApProfile().toPrettyString());
|
LOG.debug("Config content : APProfile {}", ret.getApProfile().toPrettyString());
|
||||||
|
|
||||||
ret.getSsidProfile().stream().forEach(ssid -> LOG.debug("Config content : SSIDProfile {}", ssid.toPrettyString()));
|
ret.getSsidProfile().stream()
|
||||||
|
.forEach(ssid -> LOG.debug("Config content : SSIDProfile {}", ssid.toPrettyString()));
|
||||||
LOG.debug("Config content : Location {}", ret.getEquipmentLocation().toPrettyString());
|
LOG.debug("Config content : Location {}", ret.getEquipmentLocation().toPrettyString());
|
||||||
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1447,6 +1457,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
|
|||||||
for (OpensyncAPRadioState radioState : radioStateTables) {
|
for (OpensyncAPRadioState radioState : radioStateTables) {
|
||||||
if (radioState.isEnabled())
|
if (radioState.isEnabled())
|
||||||
osNode.updateRadioState(radioState);
|
osNode.updateRadioState(radioState);
|
||||||
|
LOG.debug("RadioState {}", radioState.toPrettyString());
|
||||||
}
|
}
|
||||||
opensyncNodeMap.put(apId, osNode);
|
opensyncNodeMap.put(apId, osNode);
|
||||||
} else {
|
} else {
|
||||||
@@ -1454,6 +1465,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
|
|||||||
for (OpensyncAPRadioState radioState : radioStateTables) {
|
for (OpensyncAPRadioState radioState : radioStateTables) {
|
||||||
if (radioState.isEnabled())
|
if (radioState.isEnabled())
|
||||||
osNode.updateRadioState(radioState);
|
osNode.updateRadioState(radioState);
|
||||||
|
LOG.debug("RadioState {}", radioState.toPrettyString());
|
||||||
|
|
||||||
}
|
}
|
||||||
opensyncNodeMap.put(apId, osNode);
|
opensyncNodeMap.put(apId, osNode);
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,11 @@
|
|||||||
<artifactId>tip-wlan-opensync-protobuf</artifactId>
|
<artifactId>tip-wlan-opensync-protobuf</artifactId>
|
||||||
<version>${tip-wlan-cloud.release.version}</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<artifactId>customer-models</artifactId>
|
||||||
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>equipment-models</artifactId>
|
<artifactId>equipment-models</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
|
|||||||
@@ -3,9 +3,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||||
@@ -25,7 +24,7 @@ public class OpensyncAPRadioState extends BaseJsonModel {
|
|||||||
public String mac;
|
public String mac;
|
||||||
public int bcnInt;
|
public int bcnInt;
|
||||||
public int thermalTxChainmask;
|
public int thermalTxChainmask;
|
||||||
public int[] allowedChannels;
|
public Set<Integer> allowedChannels;
|
||||||
public int thermalShutdown;
|
public int thermalShutdown;
|
||||||
public int channelSync;
|
public int channelSync;
|
||||||
public int hwType;
|
public int hwType;
|
||||||
@@ -104,11 +103,11 @@ public class OpensyncAPRadioState extends BaseJsonModel {
|
|||||||
this.thermalTxChainmask = thermalTxChainmask;
|
this.thermalTxChainmask = thermalTxChainmask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[] getAllowedChannels() {
|
public Set<Integer> getAllowedChannels() {
|
||||||
return allowedChannels;
|
return allowedChannels;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAllowedChannels(int[] allowedChannels) {
|
public void setAllowedChannels(Set<Integer> allowedChannels) {
|
||||||
this.allowedChannels = allowedChannels;
|
this.allowedChannels = allowedChannels;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,5 +20,5 @@
|
|||||||
<listAttribute key="org.eclipse.jdt.launching.MODULEPATH"/>
|
<listAttribute key="org.eclipse.jdt.launching.MODULEPATH"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="opensync-gateway-cloud-process"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="opensync-gateway-cloud-process"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
|
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="--add-opens java.base/java.lang=ALL-UNNAMED -Dssl.props=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/ssl.properties -Dtip.wlan.httpClientConfig=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/httpClientConfig.json -Djavax.net.ssl.keyStore=${connectus_certs}/client_keystore.jks -Djavax.net.ssl.keyStorePassword=mypassword -Djavax.net.ssl.trustStore=${connectus_certs}/truststore.jks -Djavax.net.ssl.trustStorePassword=mypassword -Dconnectus.ovsdb.managerAddr=${local_server_address} -Dconnectus.ovsdb.listenPort=6640 -Dconnectus.ovsdb.redirector.listenPort=6643 -Dconnectus.ovsdb.timeoutSec=30 -Dconnectus.ovsdb.trustStore=${connectus_certs}/truststore.jks -Dconnectus.ovsdb.keyStore=${connectus_certs}/server.pkcs12 -Dconnectus.mqttBroker.address=${local_server_address} -Dconnectus.mqttBroker.listenPort=1883 -Dtip.wlan.introspectTokenApi.host=localhost:9096 -Dtip.wlan.introspectTokenApi.clientToken=token_placeholder -Dtip.wlan.serviceUser=user -Dtip.wlan.servicePassword=password -Dconnectus.ovsdb.wifi-iface.default_radio1=home-ap-24 -Dconnectus.ovsdb.wifi-iface.default_radio2=home-ap-l50 -Dconnectus.ovsdb.wifi-iface.default_radio0=default_radio0	 -Dconnectus.ovsdb.wifi-device.radio0=wifi2 -Dconnectus.ovsdb.wifi-device.radio1=wifi0 -Dconnectus.ovsdb.wifi-device.radio2=wifi1 -Dspring.main.show-banner=false -Dserver.port=9096 -Dtip.wlan.secondaryPort=9097 -Dtip.wlan.csrf-enabled=false -Dspring.profiles.include=opensync_cloud_config,mqtt_receiver,ovsdb_redirector,ovsdb_manager"/>
|
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="--add-opens java.base/java.lang=ALL-UNNAMED -Dssl.props=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/ssl.properties -Dtip.wlan.httpClientConfig=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/httpClientConfig.json -Djavax.net.ssl.keyStore=${connectus_certs}/client_keystore.jks -Djavax.net.ssl.keyStorePassword=mypassword -Djavax.net.ssl.trustStore=${connectus_certs}/truststore.jks -Djavax.net.ssl.trustStorePassword=mypassword -Dconnectus.ovsdb.managerAddr=${local_server_address} -Dconnectus.ovsdb.listenPort=6640 -Dconnectus.ovsdb.redirector.listenPort=6643 -Dconnectus.ovsdb.timeoutSec=30 -Dconnectus.ovsdb.trustStore=${connectus_certs}/truststore.jks -Dconnectus.ovsdb.keyStore=${connectus_certs}/server.pkcs12 -Dconnectus.mqttBroker.address=${local_server_address} -Dconnectus.mqttBroker.listenPort=1883 -Dtip.wlan.introspectTokenApi.host=localhost:9096 -Dtip.wlan.introspectTokenApi.clientToken=token_placeholder -Dtip.wlan.serviceUser=user -Dtip.wlan.servicePassword=password -Dconnectus.ovsdb.autoProvisionedCustomerId=2 -Dconnectus.ovsdb.autoProvisionedSsid=Connectus-cloud -Dconnectus.ovsdb.wifi-iface.default_radio1=home-ap-24 -Dconnectus.ovsdb.wifi-iface.default_radio2=home-ap-l50 -Dconnectus.ovsdb.wifi-iface.default_radio0=home-ap-u50	 -Dconnectus.ovsdb.wifi-device.radio0=wifi2 -Dconnectus.ovsdb.wifi-device.radio1=wifi0 -Dconnectus.ovsdb.wifi-device.radio2=wifi1 -Dspring.main.show-banner=false -Dserver.port=9096 -Dtip.wlan.secondaryPort=9097 -Dtip.wlan.csrf-enabled=false -Dspring.profiles.include=opensync_cloud_config,mqtt_receiver,ovsdb_redirector,ovsdb_manager"/>
|
||||||
</launchConfiguration>
|
</launchConfiguration>
|
||||||
|
|||||||
@@ -256,7 +256,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
|
|||||||
CompletableFuture<TableUpdates> rsCf = ovsdbClient
|
CompletableFuture<TableUpdates> rsCf = ovsdbClient
|
||||||
.monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiRadioStateDbTable + "_" + key,
|
.monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiRadioStateDbTable + "_" + key,
|
||||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiRadioStateDbTable,
|
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiRadioStateDbTable,
|
||||||
new MonitorRequest(new MonitorSelect(true, true, false, true)))),
|
new MonitorRequest(new MonitorSelect(true, true, true, true)))),
|
||||||
new MonitorCallback() {
|
new MonitorCallback() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -273,7 +273,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
|
|||||||
CompletableFuture<TableUpdates> isCf = ovsdbClient
|
CompletableFuture<TableUpdates> isCf = ovsdbClient
|
||||||
.monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiInetStateDbTable + "_" + key,
|
.monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiInetStateDbTable + "_" + key,
|
||||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiInetStateDbTable,
|
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiInetStateDbTable,
|
||||||
new MonitorRequest(new MonitorSelect(true, true, false, true)))),
|
new MonitorRequest(new MonitorSelect(true, true, true, true)))),
|
||||||
new MonitorCallback() {
|
new MonitorCallback() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -383,7 +383,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
|
|||||||
CompletableFuture<TableUpdates> awCf = ovsdbClient
|
CompletableFuture<TableUpdates> awCf = ovsdbClient
|
||||||
.monitor(OvsdbDao.ovsdbName, OvsdbDao.awlanNodeDbTable + "_" + key,
|
.monitor(OvsdbDao.ovsdbName, OvsdbDao.awlanNodeDbTable + "_" + key,
|
||||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.awlanNodeDbTable,
|
new MonitorRequests(ImmutableMap.of(OvsdbDao.awlanNodeDbTable,
|
||||||
new MonitorRequest(new MonitorSelect(true, false, false, true)))),
|
new MonitorRequest(new MonitorSelect(true, true, true, true)))),
|
||||||
new MonitorCallback() {
|
new MonitorCallback() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -424,6 +424,13 @@ public class OvsdbDao {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public <T> Set<T> getSet(Row row, String columnName) {
|
||||||
|
|
||||||
|
Set<T> set = (row != null) ? row.getSetColumn(columnName) : null;
|
||||||
|
|
||||||
|
return set;
|
||||||
|
}
|
||||||
|
|
||||||
public <T> T getSingleValueFromSet(Row row, String columnName) {
|
public <T> T getSingleValueFromSet(Row row, String columnName) {
|
||||||
|
|
||||||
Set<T> set = (row != null) ? row.getSetColumn(columnName) : null;
|
Set<T> set = (row != null) ? row.getSetColumn(columnName) : null;
|
||||||
@@ -588,7 +595,7 @@ public class OvsdbDao {
|
|||||||
|
|
||||||
columns.add("_uuid");
|
columns.add("_uuid");
|
||||||
columns.add("if_name");
|
columns.add("if_name");
|
||||||
|
columns.add("bcn_int");
|
||||||
columns.add("channel");
|
columns.add("channel");
|
||||||
columns.add("channel_mode");
|
columns.add("channel_mode");
|
||||||
columns.add("country");
|
columns.add("country");
|
||||||
@@ -598,6 +605,7 @@ public class OvsdbDao {
|
|||||||
columns.add("vif_configs");
|
columns.add("vif_configs");
|
||||||
columns.add("freq_band");
|
columns.add("freq_band");
|
||||||
columns.add("hw_config");
|
columns.add("hw_config");
|
||||||
|
columns.add("hw_type");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
LOG.debug("Retrieving WifiRadioConfig:");
|
LOG.debug("Retrieving WifiRadioConfig:");
|
||||||
@@ -615,6 +623,10 @@ public class OvsdbDao {
|
|||||||
WifiRadioConfigInfo wifiRadioConfigInfo = new WifiRadioConfigInfo();
|
WifiRadioConfigInfo wifiRadioConfigInfo = new WifiRadioConfigInfo();
|
||||||
wifiRadioConfigInfo.uuid = row.getUuidColumn("_uuid");
|
wifiRadioConfigInfo.uuid = row.getUuidColumn("_uuid");
|
||||||
wifiRadioConfigInfo.ifName = row.getStringColumn("if_name");
|
wifiRadioConfigInfo.ifName = row.getStringColumn("if_name");
|
||||||
|
Long beaconTmp = getSingleValueFromSet(row, "bcn_int");
|
||||||
|
if (beaconTmp == null)
|
||||||
|
beaconTmp = 0L;
|
||||||
|
wifiRadioConfigInfo.beaconInterval = beaconTmp.intValue();
|
||||||
Long channelTmp = getSingleValueFromSet(row, "channel");
|
Long channelTmp = getSingleValueFromSet(row, "channel");
|
||||||
if (channelTmp == null) {
|
if (channelTmp == null) {
|
||||||
channelTmp = -1L;
|
channelTmp = -1L;
|
||||||
@@ -629,7 +641,7 @@ public class OvsdbDao {
|
|||||||
wifiRadioConfigInfo.vifConfigUuids = row.getSetColumn("vif_configs");
|
wifiRadioConfigInfo.vifConfigUuids = row.getSetColumn("vif_configs");
|
||||||
wifiRadioConfigInfo.freqBand = row.getStringColumn("freq_band");
|
wifiRadioConfigInfo.freqBand = row.getStringColumn("freq_band");
|
||||||
wifiRadioConfigInfo.hwConfig = row.getMapColumn("hw_config");
|
wifiRadioConfigInfo.hwConfig = row.getMapColumn("hw_config");
|
||||||
|
wifiRadioConfigInfo.hwType = row.getStringColumn("hw_type");
|
||||||
ret.put(wifiRadioConfigInfo.ifName, wifiRadioConfigInfo);
|
ret.put(wifiRadioConfigInfo.ifName, wifiRadioConfigInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -650,12 +662,14 @@ public class OvsdbDao {
|
|||||||
List<Condition> conditions = new ArrayList<>();
|
List<Condition> conditions = new ArrayList<>();
|
||||||
List<String> columns = new ArrayList<>();
|
List<String> columns = new ArrayList<>();
|
||||||
columns.add("bridge");
|
columns.add("bridge");
|
||||||
|
columns.add("ap_bridge");
|
||||||
columns.add("_uuid");
|
columns.add("_uuid");
|
||||||
columns.add("btm");
|
columns.add("btm");
|
||||||
columns.add("enabled");
|
columns.add("enabled");
|
||||||
columns.add("ft_psk");
|
columns.add("ft_psk");
|
||||||
columns.add("group_rekey");
|
columns.add("group_rekey");
|
||||||
columns.add("if_name");
|
columns.add("if_name");
|
||||||
|
columns.add("min_hw_mode");
|
||||||
columns.add("mode");
|
columns.add("mode");
|
||||||
columns.add("rrm");
|
columns.add("rrm");
|
||||||
columns.add("ssid");
|
columns.add("ssid");
|
||||||
@@ -680,18 +694,23 @@ public class OvsdbDao {
|
|||||||
|
|
||||||
WifiVifConfigInfo wifiVifConfigInfo = new WifiVifConfigInfo();
|
WifiVifConfigInfo wifiVifConfigInfo = new WifiVifConfigInfo();
|
||||||
wifiVifConfigInfo.bridge = row.getStringColumn("bridge");
|
wifiVifConfigInfo.bridge = row.getStringColumn("bridge");
|
||||||
|
wifiVifConfigInfo.apBridge = row.getBooleanColumn("ap_bridge");
|
||||||
wifiVifConfigInfo.uuid = row.getUuidColumn("_uuid");
|
wifiVifConfigInfo.uuid = row.getUuidColumn("_uuid");
|
||||||
wifiVifConfigInfo.btm = row.getIntegerColumn("btm").intValue();
|
wifiVifConfigInfo.btm = row.getIntegerColumn("btm").intValue();
|
||||||
wifiVifConfigInfo.enabled = row.getBooleanColumn("enabled");
|
wifiVifConfigInfo.enabled = row.getBooleanColumn("enabled");
|
||||||
wifiVifConfigInfo.ftPsk = row.getIntegerColumn("ft_psk").intValue();
|
wifiVifConfigInfo.ftPsk = row.getIntegerColumn("ft_psk").intValue();
|
||||||
wifiVifConfigInfo.groupRekey = row.getIntegerColumn("group_rekey").intValue();
|
wifiVifConfigInfo.groupRekey = row.getIntegerColumn("group_rekey").intValue();
|
||||||
|
wifiVifConfigInfo.minHwMode = row.getStringColumn("min_hw_mode");
|
||||||
wifiVifConfigInfo.ifName = row.getStringColumn("if_name");
|
wifiVifConfigInfo.ifName = row.getStringColumn("if_name");
|
||||||
wifiVifConfigInfo.mode = row.getStringColumn("mode");
|
wifiVifConfigInfo.mode = row.getStringColumn("mode");
|
||||||
wifiVifConfigInfo.rrm = row.getIntegerColumn("rrm").intValue();
|
wifiVifConfigInfo.rrm = row.getIntegerColumn("rrm").intValue();
|
||||||
wifiVifConfigInfo.ssid = row.getStringColumn("ssid");
|
wifiVifConfigInfo.ssid = row.getStringColumn("ssid");
|
||||||
wifiVifConfigInfo.ssidBroadcast = row.getStringColumn("ssid_broadcast");
|
wifiVifConfigInfo.ssidBroadcast = row.getStringColumn("ssid_broadcast");
|
||||||
wifiVifConfigInfo.uapsdEnable = row.getBooleanColumn("uapsd_enable");
|
wifiVifConfigInfo.uapsdEnable = row.getBooleanColumn("uapsd_enable");
|
||||||
// wifiVifConfigInfo.vifRadioIdx = row.getIntegerColumn("vif_radio_idx").intValue();
|
Long radioIdxTmp = getSingleValueFromSet(row, "vif_radio_idx");
|
||||||
|
if (radioIdxTmp == null)
|
||||||
|
radioIdxTmp = 0L;
|
||||||
|
wifiVifConfigInfo.vifRadioIdx = radioIdxTmp.intValue();
|
||||||
wifiVifConfigInfo.security = row.getMapColumn("security");
|
wifiVifConfigInfo.security = row.getMapColumn("security");
|
||||||
|
|
||||||
if (row.getColumns().get("vlan_id") != null && row.getColumns().get("vlan_id").getClass()
|
if (row.getColumns().get("vlan_id") != null && row.getColumns().get("vlan_id").getClass()
|
||||||
@@ -719,11 +738,15 @@ public class OvsdbDao {
|
|||||||
List<String> columns = new ArrayList<>();
|
List<String> columns = new ArrayList<>();
|
||||||
columns.add("NAT");
|
columns.add("NAT");
|
||||||
columns.add("_uuid");
|
columns.add("_uuid");
|
||||||
|
columns.add("broadcast");
|
||||||
columns.add("enabled");
|
columns.add("enabled");
|
||||||
columns.add("if_name");
|
columns.add("if_name");
|
||||||
columns.add("if_type");
|
columns.add("if_type");
|
||||||
columns.add("ip_assign_scheme");
|
columns.add("ip_assign_scheme");
|
||||||
columns.add("network");
|
columns.add("network");
|
||||||
|
columns.add("inet_addr");
|
||||||
|
columns.add("mtu");
|
||||||
|
columns.add("netmask");
|
||||||
columns.add("vlan_id");
|
columns.add("vlan_id");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -744,11 +767,27 @@ public class OvsdbDao {
|
|||||||
wifiInetConfigInfo.nat = natTmp != null ? natTmp : false;
|
wifiInetConfigInfo.nat = natTmp != null ? natTmp : false;
|
||||||
|
|
||||||
wifiInetConfigInfo.uuid = row.getUuidColumn("_uuid");
|
wifiInetConfigInfo.uuid = row.getUuidColumn("_uuid");
|
||||||
|
if (row.getColumns().get("broadcast") != null && row.getColumns().get("broadcast").getClass()
|
||||||
|
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||||
|
wifiInetConfigInfo.broadcast = row.getStringColumn("broadcast");
|
||||||
|
}
|
||||||
wifiInetConfigInfo.enabled = row.getBooleanColumn("enabled");
|
wifiInetConfigInfo.enabled = row.getBooleanColumn("enabled");
|
||||||
wifiInetConfigInfo.ifName = row.getStringColumn("if_name");
|
wifiInetConfigInfo.ifName = row.getStringColumn("if_name");
|
||||||
wifiInetConfigInfo.ifType = row.getStringColumn("if_type");
|
wifiInetConfigInfo.ifType = row.getStringColumn("if_type");
|
||||||
wifiInetConfigInfo.ipAssignScheme = row.getStringColumn("ip_assign_scheme");
|
wifiInetConfigInfo.ipAssignScheme = row.getStringColumn("ip_assign_scheme");
|
||||||
wifiInetConfigInfo.network = row.getBooleanColumn("network");
|
wifiInetConfigInfo.network = row.getBooleanColumn("network");
|
||||||
|
if (row.getColumns().get("inet_addr") != null && row.getColumns().get("inet_addr").getClass()
|
||||||
|
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||||
|
wifiInetConfigInfo.inetAddr = (row.getStringColumn("inet_addr"));
|
||||||
|
}
|
||||||
|
if (row.getColumns().get("mtu") != null && row.getColumns().get("mtu").getClass()
|
||||||
|
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||||
|
wifiInetConfigInfo.mtu = (row.getIntegerColumn("mtu").intValue());
|
||||||
|
}
|
||||||
|
if (row.getColumns().get("netmask") != null && row.getColumns().get("netmask").getClass()
|
||||||
|
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||||
|
wifiInetConfigInfo.netmask = (row.getStringColumn("netmask"));
|
||||||
|
}
|
||||||
if (row.getColumns().get("vlan_id") != null && row.getColumns().get("vlan_id").getClass()
|
if (row.getColumns().get("vlan_id") != null && row.getColumns().get("vlan_id").getClass()
|
||||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||||
wifiInetConfigInfo.vlanId = (row.getIntegerColumn("vlan_id").intValue());
|
wifiInetConfigInfo.vlanId = (row.getIntegerColumn("vlan_id").intValue());
|
||||||
@@ -833,7 +872,6 @@ public class OvsdbDao {
|
|||||||
Map<String, BridgeInfo> provisionedBridges)
|
Map<String, BridgeInfo> provisionedBridges)
|
||||||
throws OvsdbClientException, TimeoutException, ExecutionException, InterruptedException {
|
throws OvsdbClientException, TimeoutException, ExecutionException, InterruptedException {
|
||||||
|
|
||||||
|
|
||||||
LOG.debug("InterfaceName {} BridgeName {} InterfaceType {}", interfaceName, bridgeName, interfaceType);
|
LOG.debug("InterfaceName {} BridgeName {} InterfaceType {}", interfaceName, bridgeName, interfaceType);
|
||||||
if (!provisionedInterfaces.containsKey(interfaceName)) {
|
if (!provisionedInterfaces.containsKey(interfaceName)) {
|
||||||
// Create this interface and link it to the port and the bridge
|
// Create this interface and link it to the port and the bridge
|
||||||
@@ -1167,7 +1205,8 @@ public class OvsdbDao {
|
|||||||
configName = radioName2pt4GHz;
|
configName = radioName2pt4GHz;
|
||||||
break;
|
break;
|
||||||
case is5GHz:
|
case is5GHz:
|
||||||
// 802.11h dfs (Dynamic Frequency Selection) aka military and weather radar avoidance protocol
|
// 802.11h dfs (Dynamic Frequency Selection) aka military and weather radar
|
||||||
|
// avoidance protocol
|
||||||
// Must not be disabled (by law)
|
// Must not be disabled (by law)
|
||||||
// NA for 2.4GHz
|
// NA for 2.4GHz
|
||||||
hwConfig.put("dfs_enable", "1");
|
hwConfig.put("dfs_enable", "1");
|
||||||
@@ -1176,7 +1215,8 @@ public class OvsdbDao {
|
|||||||
configName = radioName5GHzU;
|
configName = radioName5GHzU;
|
||||||
break;
|
break;
|
||||||
case is5GHzL:
|
case is5GHzL:
|
||||||
// 802.11h dfs (Dynamic Frequency Selection) aka military and weather radar avoidance protocol
|
// 802.11h dfs (Dynamic Frequency Selection) aka military and weather radar
|
||||||
|
// avoidance protocol
|
||||||
// Must not be disabled (by law)
|
// Must not be disabled (by law)
|
||||||
// NA for 2.4GHz
|
// NA for 2.4GHz
|
||||||
hwConfig.put("dfs_enable", "1");
|
hwConfig.put("dfs_enable", "1");
|
||||||
@@ -1185,7 +1225,8 @@ public class OvsdbDao {
|
|||||||
configName = radioName5GHzL;
|
configName = radioName5GHzL;
|
||||||
break;
|
break;
|
||||||
case is5GHzU:
|
case is5GHzU:
|
||||||
// 802.11h dfs (Dynamic Frequency Selection) aka military and weather radar avoidance protocol
|
// 802.11h dfs (Dynamic Frequency Selection) aka military and weather radar
|
||||||
|
// avoidance protocol
|
||||||
// Must not be disabled (by law)
|
// Must not be disabled (by law)
|
||||||
// NA for 2.4GHz
|
// NA for 2.4GHz
|
||||||
hwConfig.put("dfs_enable", "1");
|
hwConfig.put("dfs_enable", "1");
|
||||||
@@ -1290,6 +1331,16 @@ public class OvsdbDao {
|
|||||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||||
tableState.setVersion(row.getUuidColumn("_uuid"));
|
tableState.setVersion(row.getUuidColumn("_uuid"));
|
||||||
}
|
}
|
||||||
|
if (map.get("allowed_channels") != null) {
|
||||||
|
|
||||||
|
Set<Long> allowedChannels = getSet(row, "allowed_channels");
|
||||||
|
|
||||||
|
Set<Integer> allowed = new HashSet<Integer>();
|
||||||
|
for (Long channel : allowedChannels) {
|
||||||
|
allowed.add(channel.intValue());
|
||||||
|
}
|
||||||
|
tableState.setAllowedChannels(allowed);
|
||||||
|
}
|
||||||
|
|
||||||
ret.add(tableState);
|
ret.add(tableState);
|
||||||
}
|
}
|
||||||
@@ -1749,7 +1800,6 @@ public class OvsdbDao {
|
|||||||
LOG.debug("Provisioned SSID {} on {}", ssid, ifName);
|
LOG.debug("Provisioned SSID {} on {}", ssid, ifName);
|
||||||
|
|
||||||
Uuid vifConfigUuid = null;
|
Uuid vifConfigUuid = null;
|
||||||
String vifIfName = null;
|
|
||||||
for (OperationResult res : result) {
|
for (OperationResult res : result) {
|
||||||
LOG.debug("Op Result {}", res);
|
LOG.debug("Op Result {}", res);
|
||||||
if (res instanceof InsertResult) {
|
if (res instanceof InsertResult) {
|
||||||
@@ -1796,17 +1846,16 @@ 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,
|
(networkForwardMode == NetworkForwardMode.NAT), "vif", gateway, inet, dns, ipAssignScheme,
|
||||||
vifConfigUuid);
|
vifConfigUuid);
|
||||||
else
|
} else {
|
||||||
// do nothing for now
|
|
||||||
LOG.debug("No corresponding WifiInetConfig for this Interface");
|
LOG.debug("No corresponding WifiInetConfig for this Interface");
|
||||||
// TODO: should wait for the default config to take place
|
|
||||||
insertWifiInetConfigForVif(ovsdbClient, vlanId, ifName, enabled,
|
insertWifiInetConfigForVif(ovsdbClient, vlanId, ifName, enabled,
|
||||||
(networkForwardMode == NetworkForwardMode.NAT), "vif", gateway, inet, dns, ipAssignScheme,
|
(networkForwardMode == NetworkForwardMode.NAT), "vif", gateway, inet, dns, ipAssignScheme,
|
||||||
vifConfigUuid);
|
vifConfigUuid);
|
||||||
|
}
|
||||||
|
|
||||||
LOG.info("Provisioned SSID {} on interface {} / {}", ssid, ifName, radioIfName);
|
LOG.info("Provisioned SSID {} on interface {} / {}", ssid, ifName, radioIfName);
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ public class WifiInetConfigInfo implements Cloneable{
|
|||||||
|
|
||||||
public Uuid uuid;
|
public Uuid uuid;
|
||||||
public int vlanId;
|
public int vlanId;
|
||||||
|
public String broadcast;
|
||||||
|
public String inetAddr;
|
||||||
|
public int mtu;
|
||||||
|
public String netmask;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WifiInetConfigInfo clone() {
|
public WifiInetConfigInfo clone() {
|
||||||
@@ -27,8 +31,8 @@ public class WifiInetConfigInfo implements Cloneable{
|
|||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format(
|
return String.format(
|
||||||
"WifiInetConfigInfo [nat=%s, enabled=%s, ifName=%s, ifType=%s, ipAssignScheme=%s, network=%s, uuid=%s, vlanId=%s]",
|
"WifiInetConfigInfo [nat=%s, broadcast=%s, enabled=%s, ifName=%s, ifType=%s, ipAssignScheme=%s, network=%s, uuid=%s, inetAddr=%s, mtu=%s, netmask=%s, vlanId=%s]",
|
||||||
nat, enabled, ifName, ifType, ipAssignScheme, network, uuid, vlanId);
|
nat, broadcast, enabled, ifName, ifType, ipAssignScheme, network, uuid,inetAddr, mtu, netmask, vlanId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -24,6 +24,8 @@ public class WifiRadioConfigInfo implements Cloneable {
|
|||||||
public String ifName;
|
public String ifName;
|
||||||
public Uuid uuid;
|
public Uuid uuid;
|
||||||
|
|
||||||
|
public String hwType;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WifiRadioConfigInfo clone() {
|
public WifiRadioConfigInfo clone() {
|
||||||
try {
|
try {
|
||||||
@@ -44,8 +46,8 @@ public class WifiRadioConfigInfo implements Cloneable {
|
|||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format(
|
return String.format(
|
||||||
"WifiRadioConfigInfo [vifConfigUuids=%s, freqBand=%s, channel=%s, txPower=%s, channelMode=%s, enabled=%s, htMode=%s, hwConfig=%s, country=%s, bcn_int=%s, ifName=%s, uuid=%s]",
|
"WifiRadioConfigInfo [vifConfigUuids=%s, freqBand=%s, channel=%s, txPower=%s, channelMode=%s, enabled=%s, htMode=%s, hwConfig=%s, hwType=%s, country=%s, bcn_int=%s, ifName=%s, uuid=%s]",
|
||||||
vifConfigUuids, freqBand, channel, txPower, channelMode, enabled, htMode, hwConfig, country,
|
vifConfigUuids, freqBand, channel, txPower, channelMode, enabled, htMode, hwConfig, hwType,country,
|
||||||
beaconInterval, ifName, uuid);
|
beaconInterval, ifName, uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ public class WifiVifConfigInfo implements Cloneable{
|
|||||||
|
|
||||||
public Uuid uuid;
|
public Uuid uuid;
|
||||||
public int vlanId;
|
public int vlanId;
|
||||||
|
public Boolean apBridge;
|
||||||
|
public String minHwMode;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WifiVifConfigInfo clone() {
|
public WifiVifConfigInfo clone() {
|
||||||
@@ -41,8 +43,8 @@ public class WifiVifConfigInfo implements Cloneable{
|
|||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format(
|
return String.format(
|
||||||
"WifiVifConfigInfo [bridge=%s, btm=%s, enabled=%s, ftPsk=%s, groupRekey=%s, ifName=%s, mode=%s, rrm=%s, ssid=%s, ssidBroadcast=%s, uapsdEnable=%s, vifRadioIdx=%s, security=%s, uuid=%s, vlanId=%s]",
|
"WifiVifConfigInfo [bridge=%s, ap_bridge=%s, btm=%s, enabled=%s, ftPsk=%s, groupRekey=%s, ifName=%s, minHwMode=%s, mode=%s, rrm=%s, ssid=%s, ssidBroadcast=%s, uapsdEnable=%s, vifRadioIdx=%s, security=%s, uuid=%s, vlanId=%s]",
|
||||||
bridge, btm, enabled, ftPsk, groupRekey, ifName, mode, rrm, ssid, ssidBroadcast, uapsdEnable,
|
bridge, apBridge, btm, enabled, ftPsk, groupRekey, ifName, minHwMode, mode, rrm, ssid, ssidBroadcast, uapsdEnable,
|
||||||
vifRadioIdx, security, uuid,vlanId);
|
vifRadioIdx, security, uuid,vlanId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user