mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-02 11:37:49 +00:00
Improvements:
WIFI-2989: Remove dependency on customerid from ovsdb session WIFI-2988: Ovsdb schema check for Wifi_Radio_Config and Wifi_RRM_Config Signed-off-by: Mike Hansen <mike.hansen@connectus.ai>
This commit is contained in:
@@ -258,7 +258,8 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig);
|
||||
if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) {
|
||||
ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats);
|
||||
}
|
||||
}
|
||||
ovsdbDao.enableNetworkProbeForSyntheticClient(ovsdbClient);
|
||||
ovsdbDao.updateEventReportingInterval(ovsdbClient, collectionIntervalSecEvent);
|
||||
|
||||
} else {
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.vmware.ovsdb.protocol.operation.Operation;
|
||||
import com.vmware.ovsdb.protocol.operation.Update;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.*;
|
||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
||||
import com.vmware.ovsdb.protocol.schema.DatabaseSchema;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -39,83 +40,88 @@ public class OvsdbRadioConfig extends OvsdbDaoBase {
|
||||
Map<String, WifiRadioConfigInfo> provisionedRadioConfigs = ovsdbGet.getProvisionedWifiRadioConfigs(ovsdbClient);
|
||||
Map<String, WifiVifConfigInfo> vifConfigs = ovsdbGet.getProvisionedWifiVifConfigs(ovsdbClient);
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
for (RadioType radioType : apElementConfiguration.getRadioMap().keySet()) {
|
||||
Map<String, String> hwConfig = new HashMap<>();
|
||||
ElementRadioConfiguration elementRadioConfig = apElementConfiguration.getRadioMap().get(radioType);
|
||||
RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(radioType);
|
||||
if (elementRadioConfig == null || rfElementConfig == null) {
|
||||
continue;
|
||||
}
|
||||
boolean autoChannelSelection = rfElementConfig.getAutoChannelSelection();
|
||||
int channel = elementRadioConfig.getActiveChannel(autoChannelSelection);
|
||||
LOG.debug("configureWifiRadios autoChannelSelection {} activeChannel {} getChannelNumber {} ", autoChannelSelection, channel,
|
||||
elementRadioConfig.getChannelNumber());
|
||||
ChannelBandwidth bandwidth = rfElementConfig.getChannelBandwidth();
|
||||
String ht_mode = getBandwidth(bandwidth);
|
||||
RadioConfiguration radioConfig = apElementConfiguration.getAdvancedRadioMap().get(radioType);
|
||||
int beaconInterval = rfElementConfig.getBeaconInterval();
|
||||
boolean enabled = radioConfig.getRadioAdminState().equals(StateSetting.enabled);
|
||||
boolean autoCellSizeSelection = rfElementConfig.getAutoCellSizeSelection();
|
||||
int txPower = 0;
|
||||
if (autoCellSizeSelection) {
|
||||
if (elementRadioConfig.getEirpTxPower() != null) {
|
||||
txPower = elementRadioConfig.getEirpTxPower().getValue();
|
||||
}
|
||||
} else {
|
||||
txPower = rfElementConfig.getEirpTxPower();
|
||||
}
|
||||
String hwMode = getHwMode(rfElementConfig);
|
||||
String freqBand = getHwConfigAndFreq(radioType, hwConfig);
|
||||
String radioName = null;
|
||||
for (String key : provisionedRadioConfigs.keySet()) {
|
||||
if (provisionedRadioConfigs.get(key).freqBand.equals(freqBand)) {
|
||||
radioName = key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (radioName == null)
|
||||
continue;
|
||||
String ifName = null; // for vifConfigs
|
||||
if (radioName.equals(radio0)) {
|
||||
ifName = defaultRadio0;
|
||||
} else if (radioName.equals(radio1)) {
|
||||
ifName = defaultRadio1;
|
||||
} else if (radioName.equals(radio2)) {
|
||||
ifName = defaultRadio2;
|
||||
}
|
||||
if (ifName == null)
|
||||
continue;
|
||||
Set<Uuid> vifUuidsForRadio = new HashSet<>();
|
||||
for (String key : vifConfigs.keySet()) {
|
||||
if (key.contains(ifName))
|
||||
vifUuidsForRadio.add(vifConfigs.get(key).uuid);
|
||||
}
|
||||
int mimoMode = MimoMode.none.getId();
|
||||
if (rfElementConfig.getMimoMode() != null) {
|
||||
mimoMode = rfElementConfig.getMimoMode().getId();
|
||||
}
|
||||
int maxNumClients = 0;
|
||||
if (rfElementConfig.getMaxNumClients() != null) {
|
||||
maxNumClients = rfElementConfig.getMaxNumClients();
|
||||
}
|
||||
try {
|
||||
configureWifiRadios(freqBand, channel, hwConfig, country.toUpperCase(), beaconInterval, enabled, hwMode, ht_mode, txPower, mimoMode,
|
||||
vifUuidsForRadio, operations, maxNumClients);
|
||||
} catch (OvsdbClientException e) {
|
||||
LOG.error("ConfigureWifiRadios failed with OvsdbClient exception.", e);
|
||||
throw new RuntimeException(e);
|
||||
} catch (TimeoutException e) {
|
||||
LOG.error("ConfigureWifiRadios failed with Timeout.", e);
|
||||
throw new RuntimeException(e);
|
||||
} catch (ExecutionException e) {
|
||||
LOG.error("ConfigureWifiRadios excecution failed.", e);
|
||||
throw new RuntimeException(e);
|
||||
} catch (InterruptedException e) {
|
||||
LOG.error("ConfigureWifiRadios interrupted.", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
try {
|
||||
CompletableFuture<DatabaseSchema> cfDatabaseSchema = ovsdbClient.getSchema(ovsdbName);
|
||||
DatabaseSchema databaseSchema = cfDatabaseSchema.get();
|
||||
Set<String> columnNames = databaseSchema.getTables().get(wifiRadioConfigDbTable).getColumns().keySet();
|
||||
|
||||
for (RadioType radioType : apElementConfiguration.getRadioMap().keySet()) {
|
||||
Map<String, String> hwConfig = new HashMap<>();
|
||||
ElementRadioConfiguration elementRadioConfig = apElementConfiguration.getRadioMap().get(radioType);
|
||||
RfElementConfiguration rfElementConfig = rfConfig.getRfConfig(radioType);
|
||||
if (elementRadioConfig == null || rfElementConfig == null) {
|
||||
continue;
|
||||
}
|
||||
boolean autoChannelSelection = rfElementConfig.getAutoChannelSelection();
|
||||
int channel = elementRadioConfig.getActiveChannel(autoChannelSelection);
|
||||
LOG.debug("configureWifiRadios autoChannelSelection {} activeChannel {} getChannelNumber {} ", autoChannelSelection, channel,
|
||||
elementRadioConfig.getChannelNumber());
|
||||
ChannelBandwidth bandwidth = rfElementConfig.getChannelBandwidth();
|
||||
String ht_mode = getBandwidth(bandwidth);
|
||||
RadioConfiguration radioConfig = apElementConfiguration.getAdvancedRadioMap().get(radioType);
|
||||
int beaconInterval = rfElementConfig.getBeaconInterval();
|
||||
boolean enabled = radioConfig.getRadioAdminState().equals(StateSetting.enabled);
|
||||
boolean autoCellSizeSelection = rfElementConfig.getAutoCellSizeSelection();
|
||||
int txPower = 0;
|
||||
if (autoCellSizeSelection) {
|
||||
if (elementRadioConfig.getEirpTxPower() != null) {
|
||||
txPower = elementRadioConfig.getEirpTxPower().getValue();
|
||||
}
|
||||
} else {
|
||||
txPower = rfElementConfig.getEirpTxPower();
|
||||
}
|
||||
String hwMode = getHwMode(rfElementConfig);
|
||||
String freqBand = getHwConfigAndFreq(radioType, hwConfig);
|
||||
String radioName = null;
|
||||
for (String key : provisionedRadioConfigs.keySet()) {
|
||||
if (provisionedRadioConfigs.get(key).freqBand.equals(freqBand)) {
|
||||
radioName = key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (radioName == null)
|
||||
continue;
|
||||
String ifName = null; // for vifConfigs
|
||||
if (radioName.equals(radio0)) {
|
||||
ifName = defaultRadio0;
|
||||
} else if (radioName.equals(radio1)) {
|
||||
ifName = defaultRadio1;
|
||||
} else if (radioName.equals(radio2)) {
|
||||
ifName = defaultRadio2;
|
||||
}
|
||||
if (ifName == null)
|
||||
continue;
|
||||
Set<Uuid> vifUuidsForRadio = new HashSet<>();
|
||||
for (String key : vifConfigs.keySet()) {
|
||||
if (key.contains(ifName))
|
||||
vifUuidsForRadio.add(vifConfigs.get(key).uuid);
|
||||
}
|
||||
int mimoMode = MimoMode.none.getId();
|
||||
if (rfElementConfig.getMimoMode() != null) {
|
||||
mimoMode = rfElementConfig.getMimoMode().getId();
|
||||
}
|
||||
int maxNumClients = 0;
|
||||
if (rfElementConfig.getMaxNumClients() != null) {
|
||||
maxNumClients = rfElementConfig.getMaxNumClients();
|
||||
}
|
||||
try {
|
||||
configureWifiRadios(freqBand, channel, hwConfig, country.toUpperCase(), beaconInterval, enabled, hwMode, ht_mode, txPower, mimoMode,
|
||||
vifUuidsForRadio, operations, maxNumClients,columnNames);
|
||||
} catch (OvsdbClientException e) {
|
||||
LOG.error("ConfigureWifiRadios failed with OvsdbClient exception.", e);
|
||||
throw new RuntimeException(e);
|
||||
} catch (TimeoutException e) {
|
||||
LOG.error("ConfigureWifiRadios failed with Timeout.", e);
|
||||
throw new RuntimeException(e);
|
||||
} catch (ExecutionException e) {
|
||||
LOG.error("ConfigureWifiRadios excecution failed.", e);
|
||||
throw new RuntimeException(e);
|
||||
} catch (InterruptedException e) {
|
||||
LOG.error("ConfigureWifiRadios interrupted.", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
for (OperationResult res : result) {
|
||||
@@ -227,7 +233,7 @@ public class OvsdbRadioConfig extends OvsdbDaoBase {
|
||||
}
|
||||
|
||||
void configureWifiRadios(String freqBand, int channel, Map<String, String> hwConfig, String country, int beaconInterval, boolean enabled, String hwMode,
|
||||
String ht_mode, int txPower, int mimoMode, Set<Uuid> vifUuidsForRadio, List<Operation> operations, int maxNumClients)
|
||||
String ht_mode, int txPower, int mimoMode, Set<Uuid> vifUuidsForRadio, List<Operation> operations, int maxNumClients, Set<String> tableColumns)
|
||||
throws OvsdbClientException, TimeoutException, ExecutionException, InterruptedException {
|
||||
Map<String, Value> updateColumns = new HashMap<>();
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
@@ -253,7 +259,7 @@ public class OvsdbRadioConfig extends OvsdbDaoBase {
|
||||
updateColumns.put("hw_mode", new Atom<>(hwMode));
|
||||
}
|
||||
configureCustomOptionsMap(maxNumClients, updateColumns);
|
||||
setTxAndRxChainmask(mimoMode, updateColumns);
|
||||
setTxAndRxChainmask(mimoMode, updateColumns,tableColumns);
|
||||
if (vifUuidsForRadio.size() > 0) {
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set vifConfigUuids = com.vmware.ovsdb.protocol.operation.notation.Set.of(vifUuidsForRadio);
|
||||
updateColumns.put("vif_configs", vifConfigUuids);
|
||||
@@ -270,7 +276,7 @@ public class OvsdbRadioConfig extends OvsdbDaoBase {
|
||||
updateColumns.put("custom_options", customOptionsMap);
|
||||
}
|
||||
|
||||
void setTxAndRxChainmask(int mimoMode, Map<String, Value> updateColumns) {
|
||||
void setTxAndRxChainmask(int mimoMode, Map<String, Value> updateColumns, Set<String> tableColumns) {
|
||||
/*
|
||||
* Chainmask is a bitmask, so map mimo mode values accordingly
|
||||
* Note values 0, 1 remain unchanged
|
||||
@@ -314,7 +320,9 @@ public class OvsdbRadioConfig extends OvsdbDaoBase {
|
||||
break;
|
||||
}
|
||||
updateColumns.put("tx_chainmask", new Atom<>(mimoMode));
|
||||
updateColumns.put("rx_chainmask", new Atom<>(mimoMode));
|
||||
if (tableColumns.contains("rx_chainmask")) {
|
||||
updateColumns.put("rx_chainmask", new Atom<>(mimoMode));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -41,6 +42,7 @@ import com.vmware.ovsdb.protocol.operation.result.ErrorResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.InsertResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.UpdateResult;
|
||||
import com.vmware.ovsdb.protocol.schema.DatabaseSchema;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
|
||||
@Component
|
||||
@@ -49,6 +51,7 @@ public class OvsdbRrmConfig extends OvsdbDaoBase {
|
||||
|
||||
ApElementConfiguration apElementConfig = (ApElementConfiguration) opensyncApConfig.getCustomerEquipment().getDetails();
|
||||
RfConfiguration rfConfig = (RfConfiguration) opensyncApConfig.getRfProfile().getDetails();
|
||||
|
||||
for (RadioType radioType : apElementConfig.getRadioMap().keySet()) {
|
||||
String freqBand = null;
|
||||
if (radioType == RadioType.is2dot4GHz) {
|
||||
@@ -138,60 +141,76 @@ public class OvsdbRrmConfig extends OvsdbDaoBase {
|
||||
int noiseFloorThresholdInDB, int noiseFloorThresholdTimeInSeconds, int nonWifiThresholdInPercentage, int nonWifiThresholdTimeInSeconds)
|
||||
throws OvsdbClientException, TimeoutException, ExecutionException, InterruptedException {
|
||||
|
||||
CompletableFuture<DatabaseSchema> cfDatabaseSchema = ovsdbClient.getSchema(ovsdbName);
|
||||
DatabaseSchema databaseSchema = cfDatabaseSchema.get();
|
||||
Set<String> columnNames = databaseSchema.getTables().get(wifiRrmConfigDbTable).getColumns().keySet();
|
||||
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
Map<String, Value> updateColumns = new HashMap<>();
|
||||
|
||||
updateColumns.put("freq_band", new Atom<>(freqBand));
|
||||
updateColumns.put("backup_channel", new Atom<>(backupChannel));
|
||||
|
||||
if (multicastRate == null || multicastRate == MulticastRate.auto) {
|
||||
updateColumns.put("mcast_rate", new Atom<>(0));
|
||||
} else {
|
||||
updateColumns.put("mcast_rate", new Atom<>(multicastRate.getId()));
|
||||
if (columnNames.contains("freq_band")) updateColumns.put("freq_band", new Atom<>(freqBand));
|
||||
if (columnNames.contains("backup_channel")) updateColumns.put("backup_channel", new Atom<>(backupChannel));
|
||||
if (columnNames.contains("mcast_rate")) {
|
||||
if (multicastRate == null || multicastRate == MulticastRate.auto) {
|
||||
updateColumns.put("mcast_rate", new Atom<>(0));
|
||||
} else {
|
||||
updateColumns.put("mcast_rate", new Atom<>(multicastRate.getId()));
|
||||
}
|
||||
}
|
||||
|
||||
if (probeResponseThreshold == null) {
|
||||
updateColumns.put("probe_resp_threshold", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
||||
} else {
|
||||
updateColumns.put("probe_resp_threshold", new Atom<>(probeResponseThreshold.intValue()));
|
||||
if (columnNames.contains("probe_resp_threshold")) {
|
||||
if (probeResponseThreshold == null) {
|
||||
updateColumns.put("probe_resp_threshold", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
||||
} else {
|
||||
updateColumns.put("probe_resp_threshold", new Atom<>(probeResponseThreshold.intValue()));
|
||||
}
|
||||
}
|
||||
if (columnNames.contains("client_disconnect_threshold")) {
|
||||
if (clientDisconnectThreshold == null) {
|
||||
updateColumns.put("client_disconnect_threshold", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
||||
} else {
|
||||
updateColumns.put("client_disconnect_threshold", new Atom<>(clientDisconnectThreshold.intValue()));
|
||||
}
|
||||
}
|
||||
if (columnNames.contains("beacon_rate")) {
|
||||
if (managementRate == null || managementRate == ManagementRate.auto) {
|
||||
updateColumns.put("beacon_rate", new Atom<>(0));
|
||||
} else {
|
||||
updateColumns.put("beacon_rate", new Atom<>(managementRate.getId() * 10));
|
||||
}
|
||||
}
|
||||
|
||||
if (clientDisconnectThreshold == null) {
|
||||
updateColumns.put("client_disconnect_threshold", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
||||
} else {
|
||||
updateColumns.put("client_disconnect_threshold", new Atom<>(clientDisconnectThreshold.intValue()));
|
||||
}
|
||||
|
||||
if (managementRate == null || managementRate == ManagementRate.auto) {
|
||||
updateColumns.put("beacon_rate", new Atom<>(0));
|
||||
} else {
|
||||
updateColumns.put("beacon_rate", new Atom<>(managementRate.getId() * 10));
|
||||
}
|
||||
|
||||
if (bestApSettings == null) {
|
||||
updateColumns.put("min_load", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
||||
updateColumns.put("snr_percentage_drop", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
||||
} else {
|
||||
if (bestApSettings.getDropInSnrPercentage() == null) {
|
||||
if (columnNames.contains("min_load") && columnNames.contains("snr_percentage_drop")) {
|
||||
if (bestApSettings == null) {
|
||||
updateColumns.put("min_load", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
||||
updateColumns.put("snr_percentage_drop", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
||||
} else {
|
||||
updateColumns.put("snr_percentage_drop", new Atom<>(bestApSettings.getDropInSnrPercentage()));
|
||||
}
|
||||
if (bestApSettings.getMinLoadFactor() == null) {
|
||||
updateColumns.put("min_load", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
||||
} else {
|
||||
updateColumns.put("min_load", new Atom<>(bestApSettings.getMinLoadFactor()));
|
||||
if (bestApSettings.getDropInSnrPercentage() == null) {
|
||||
updateColumns.put("snr_percentage_drop", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
||||
} else {
|
||||
updateColumns.put("snr_percentage_drop", new Atom<>(bestApSettings.getDropInSnrPercentage()));
|
||||
}
|
||||
if (bestApSettings.getMinLoadFactor() == null) {
|
||||
updateColumns.put("min_load", new com.vmware.ovsdb.protocol.operation.notation.Set());
|
||||
} else {
|
||||
updateColumns.put("min_load", new Atom<>(bestApSettings.getMinLoadFactor()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (obssHopMode != null) {
|
||||
if (obssHopMode != null && columnNames.contains("obss_hop_mode"))
|
||||
|
||||
{
|
||||
updateColumns.put("obss_hop_mode", new Atom<>(obssHopMode.equals(OBSSHopMode.NON_WIFI) ? 1 : 2));
|
||||
}
|
||||
updateColumns.put("noise_floor_thresh", new Atom<>(noiseFloorThresholdInDB));
|
||||
updateColumns.put("noise_floor_time", new Atom<>(noiseFloorThresholdTimeInSeconds));
|
||||
updateColumns.put("non_wifi_thresh", new Atom<>(nonWifiThresholdInPercentage));
|
||||
updateColumns.put("non_wifi_time", new Atom<>(nonWifiThresholdTimeInSeconds));
|
||||
|
||||
if (columnNames.contains("noise_floor_thresh"))
|
||||
updateColumns.put("noise_floor_thresh", new Atom<>(noiseFloorThresholdInDB));
|
||||
if (columnNames.contains("noise_floor_time"))
|
||||
updateColumns.put("noise_floor_time", new Atom<>(noiseFloorThresholdTimeInSeconds));
|
||||
if (columnNames.contains("non_wifi_thresh"))
|
||||
updateColumns.put("non_wifi_thresh", new Atom<>(nonWifiThresholdInPercentage));
|
||||
if (columnNames.contains("non_wifi_time"))
|
||||
updateColumns.put("non_wifi_time", new Atom<>(nonWifiThresholdTimeInSeconds));
|
||||
|
||||
Row row = new Row(updateColumns);
|
||||
operations.add(new Insert(wifiRrmConfigDbTable, row));
|
||||
|
||||
@@ -63,7 +63,6 @@ public class OvsdbStatsConfig extends OvsdbDaoBase {
|
||||
|
||||
provisionWifiStatsConfigClient(radioConfigs, ovsdbGet.getProvisionedWifiStatsConfigs(ovsdbClient),
|
||||
operations);
|
||||
|
||||
if (!operations.isEmpty()) {
|
||||
LOG.debug("Sending batch of operations : {} ", operations);
|
||||
|
||||
@@ -78,11 +77,7 @@ public class OvsdbStatsConfig extends OvsdbDaoBase {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: when schema support is added, these should be part of the
|
||||
// bulk provisioning operation above.
|
||||
provisionVideoVoiceStats(ovsdbClient);
|
||||
|
||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
@@ -248,7 +243,6 @@ public class OvsdbStatsConfig extends OvsdbDaoBase {
|
||||
rowColumns.put("report_type", new Atom<>("raw"));
|
||||
rowColumns.put("sampling_interval", new Atom<>(10));
|
||||
rowColumns.put("stats_type", new Atom<>("client"));
|
||||
rowColumns.put("survey_interval_ms", new Atom<>(65));
|
||||
Row updateRow = new Row(rowColumns);
|
||||
operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
|
||||
|
||||
@@ -258,6 +252,7 @@ public class OvsdbStatsConfig extends OvsdbDaoBase {
|
||||
|
||||
}
|
||||
|
||||
|
||||
void provisionWifiStatsConfigNeighbor(Map<String, Set<Integer>> allowedChannels,
|
||||
Map<String, WifiRadioConfigInfo> radioConfigs, Map<String, WifiStatsConfigInfo> provisionedWifiStatsConfigs,
|
||||
List<Operation> operations) {
|
||||
@@ -280,6 +275,7 @@ public class OvsdbStatsConfig extends OvsdbDaoBase {
|
||||
rowColumns.put("reporting_interval", new Atom<>(defaultOffChannelReportingIntervalSeconds));
|
||||
rowColumns.put("stats_type", new Atom<>("neighbor"));
|
||||
rowColumns.put("survey_type", new Atom<>("off-chan"));
|
||||
rowColumns.put("survey_interval_ms", new Atom<>(10));
|
||||
|
||||
Row updateRow = new Row(rowColumns);
|
||||
operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
|
||||
@@ -299,6 +295,7 @@ public class OvsdbStatsConfig extends OvsdbDaoBase {
|
||||
rowColumns.put("reporting_interval", new Atom<>(defaultReportingIntervalSeconds));
|
||||
rowColumns.put("stats_type", new Atom<>("neighbor"));
|
||||
rowColumns.put("survey_type", new Atom<>("on-chan"));
|
||||
rowColumns.put("survey_interval_ms", new Atom<>(0));
|
||||
|
||||
Row updateRow = new Row(rowColumns);
|
||||
operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
|
||||
@@ -354,8 +351,8 @@ public class OvsdbStatsConfig extends OvsdbDaoBase {
|
||||
rowColumns.put("report_type", new Atom<>("raw"));
|
||||
rowColumns.put("stats_type", new Atom<>("survey"));
|
||||
rowColumns.put("survey_type", new Atom<>("off-chan"));
|
||||
rowColumns.put("sampling_interval", new Atom<>(10));
|
||||
rowColumns.put("survey_interval_ms", new Atom<>(50));
|
||||
rowColumns.put("sampling_interval", new Atom<>(0));
|
||||
rowColumns.put("survey_interval_ms", new Atom<>(10));
|
||||
rowColumns.put("threshold", thresholds);
|
||||
Row updateRow = new Row(rowColumns);
|
||||
operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
|
||||
|
||||
Reference in New Issue
Block a user