Create separate Capabilities structure (#108)

This commit is contained in:
Jun Woo Shin
2022-10-21 12:01:45 -04:00
committed by GitHub
parent c635af6c1d
commit e1b9052ecc
21 changed files with 242 additions and 217 deletions

3
.gitignore vendored
View File

@@ -14,3 +14,6 @@ bin/
*.iml
*.iws
*.ipr
# Miscellaneous files thzt should not be checked in
temp/

View File

@@ -21,6 +21,7 @@ import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
import com.facebook.openwifi.cloudsdk.ies.Country;
import com.facebook.openwifi.cloudsdk.ies.LocalPowerConstraint;
import com.facebook.openwifi.cloudsdk.ies.QbssLoad;
@@ -304,7 +305,7 @@ public class UCentralUtils {
*/
public static Map<String, Map<String, List<Integer>>> getDeviceAvailableChannels(
Map<String, JsonArray> deviceStatus,
Map<String, JsonObject> deviceCapabilities,
Map<String, Map<String, Capabilities.Phy>> deviceCapabilities,
Map<String, List<Integer>> defaultAvailableChannels
) {
Map<String, Map<String, List<Integer>>> deviceAvailableChannels =
@@ -323,41 +324,32 @@ public class UCentralUtils {
JsonObject radioObject = e.getAsJsonObject();
String band = radioObject.get("band").getAsString();
JsonObject capabilitesObject =
Map<String, Capabilities.Phy> capabilitiesPhyMap =
deviceCapabilities.get(serialNumber);
List<Integer> availableChannels = new ArrayList<>();
if (capabilitesObject == null) {
if (capabilitiesPhyMap == null) {
availableChannels
.addAll(defaultAvailableChannels.get(band));
} else {
Set<Entry<String, JsonElement>> entrySet = capabilitesObject
.entrySet();
for (Map.Entry<String, JsonElement> f : entrySet) {
String bandInsideObject = f.getValue()
.getAsJsonObject()
.get("band")
.getAsString();
Set<Entry<String, Capabilities.Phy>> entrySet =
capabilitiesPhyMap
.entrySet();
for (Map.Entry<String, Capabilities.Phy> f : entrySet) {
Capabilities.Phy phy = f.getValue();
String bandInsideObject = phy.band.toString();
if (bandInsideObject.equals(band)) {
// (TODO) Remove the following dfsChannels code block
// when the DFS channels are available
Set<Integer> dfsChannels = new HashSet<>();
try {
JsonArray channelInfo = f.getValue()
.getAsJsonObject()
.get("dfs_channels")
.getAsJsonArray();
for (JsonElement d : channelInfo) {
dfsChannels.add(d.getAsInt());
int[] channelInfo = phy.dfs_channels;
for (int d : channelInfo) {
dfsChannels.add(d);
}
} catch (Exception d) {}
try {
JsonArray channelInfo = f.getValue()
.getAsJsonObject()
.get("channels")
.getAsJsonArray();
for (JsonElement c : channelInfo) {
int channel = c.getAsInt();
int[] channelInfo = phy.channels;
for (int channel : channelInfo) {
if (!dfsChannels.contains(channel)) {
availableChannels.add(channel);
}

View File

@@ -0,0 +1,51 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree.
*/
package com.facebook.openwifi.cloudsdk.models.ap;
import java.util.Map;
import java.util.List;
import com.google.gson.annotations.SerializedName;
public class Capabilities {
public String compatible;
public String model;
public String platform;
public Map<String, List<String>> network;
public static class Switch {
public boolean enable;
public boolean reset;
}
@SerializedName("switch") public Map<String, Switch> switch_;
public static class Phy {
public int tx_ant;
public int rx_ant;
public int[] frequencies;
public int[] channels;
public int[] dfs_channels;
public String[] htmode;
public String[] band;
public int ht_capa;
public int vht_capa;
public int[] he_phy_capa;
public int[] he_mac_capa;
public String country;
public String dfs_region;
public int temperature;
}
public Map<String, Phy> wifi;
// TODO The fields below were omitted
// macaddr;
// country_code;
// label_macaddr;
}

View File

@@ -1,21 +0,0 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree.
*/
package com.facebook.openwifi.cloudsdk.models.ap;
import com.google.gson.JsonObject;
import com.google.gson.annotations.SerializedName;
public class DeviceCapabilities {
public String compatible;
public String model;
public String platform;
public JsonObject network;
@SerializedName("switch") public JsonObject switch_;
public JsonObject wifi;
}

View File

@@ -8,10 +8,10 @@
package com.facebook.openwifi.cloudsdk.models.gw;
import com.google.gson.JsonObject;
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
public class DeviceCapabilities {
public JsonObject capabilities;
public Capabilities capabilities;
public long firstUpdate;
public long lastUpdate;
public String serialNumber;

View File

@@ -26,6 +26,7 @@ import com.facebook.openwifi.cloudsdk.UCentralUtils;
import com.facebook.openwifi.cloudsdk.WifiScanEntry;
import com.facebook.openwifi.cloudsdk.kafka.UCentralKafkaConsumer;
import com.facebook.openwifi.cloudsdk.kafka.UCentralKafkaConsumer.KafkaRecord;
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
import com.facebook.openwifi.cloudsdk.models.ap.State;
import com.facebook.openwifi.cloudsdk.models.gw.DeviceCapabilities;
import com.facebook.openwifi.cloudsdk.models.gw.DeviceWithStatus;
@@ -102,7 +103,7 @@ public class Modeler implements Runnable {
new ConcurrentHashMap<>();
/** List of capabilities per device. */
public Map<String, JsonObject> latestDeviceCapabilities =
public Map<String, Map<String, Capabilities.Phy>> latestDeviceCapabilitiesPhy =
new ConcurrentHashMap<>();
}
@@ -376,9 +377,9 @@ public class Modeler implements Runnable {
String serialNumber,
DeviceCapabilities capabilities
) {
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
serialNumber,
capabilities.capabilities.getAsJsonObject("wifi")
capabilities.capabilities.wifi
);
}
@@ -448,7 +449,7 @@ public class Modeler implements Runnable {
logger.debug("Removed some status entries from data model");
}
if (
dataModel.latestDeviceCapabilities.entrySet()
dataModel.latestDeviceCapabilitiesPhy.entrySet()
.removeIf(e -> !isRRMEnabled(e.getKey()))
) {
logger.debug("Removed some capabilities entries from data model");

View File

@@ -19,6 +19,7 @@ import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
import com.facebook.openwifi.cloudsdk.AggregatedState;
import com.facebook.openwifi.cloudsdk.WifiScanEntry;
import com.facebook.openwifi.cloudsdk.ies.HTOperation;
@@ -30,9 +31,6 @@ import com.facebook.openwifi.cloudsdk.models.ap.State.Interface.SSID.Association
import com.facebook.openwifi.rrm.aggregators.Aggregator;
import com.facebook.openwifi.rrm.aggregators.MeanAggregator;
import com.facebook.openwifi.rrm.modules.Modeler.DataModel;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
/**
* Modeler utilities.
@@ -562,24 +560,19 @@ public class ModelerUtils {
/** Return the radio's band, or null if band cannot be found */
public static String getBand(
State.Radio radio,
JsonObject deviceCapability
Map<String, Capabilities.Phy> capabilityPhy
) {
if (radio.phy == null) {
return null;
}
JsonElement radioCapabilityElement = deviceCapability.get(radio.phy);
if (radioCapabilityElement == null) {
Capabilities.Phy phy = capabilityPhy.get(radio.phy);
if (phy == null) {
return null;
}
JsonObject radioCapability = radioCapabilityElement.getAsJsonObject();
JsonElement bandsElement = radioCapability.get("band");
if (bandsElement == null) {
String[] bands = phy.band;
if (bands == null || bands.length == 0) {
return null;
}
JsonArray bands = bandsElement.getAsJsonArray();
if (bands.isEmpty()) {
return null;
}
return bands.get(0).getAsString();
return bands[0];
}
}

View File

@@ -18,6 +18,7 @@ import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
import com.facebook.openwifi.cloudsdk.UCentralConstants;
import com.facebook.openwifi.cloudsdk.UCentralUtils;
import com.facebook.openwifi.cloudsdk.WifiScanEntry;
@@ -29,7 +30,6 @@ import com.facebook.openwifi.rrm.DeviceDataManager;
import com.facebook.openwifi.rrm.modules.ConfigManager;
import com.facebook.openwifi.rrm.modules.Modeler.DataModel;
import com.facebook.openwifi.rrm.modules.ModelerUtils;
import com.google.gson.JsonObject;
/**
* Channel optimizer base class.
@@ -142,7 +142,7 @@ public abstract class ChannelOptimizer {
.removeIf(serialNumber -> !deviceConfigs.containsKey(serialNumber));
this.model.latestDeviceStatusRadios.keySet()
.removeIf(serialNumber -> !deviceConfigs.containsKey(serialNumber));
this.model.latestDeviceCapabilities.keySet()
this.model.latestDeviceCapabilitiesPhy.keySet()
.removeIf(serialNumber -> !deviceConfigs.containsKey(serialNumber));
}
@@ -349,7 +349,7 @@ public abstract class ChannelOptimizer {
* @param band the operational band (e.g., "2G")
* @param serialNumber the device's serial number
* @param state the latest state of all the devices
* @param latestDeviceCapabilities latest device capabilities
* @param latestDeviceCapabilitiesPhy latest device phy from capabilities
* @return the current channel and channel width (MHz) of the device in the
* given band; returns a current channel of 0 if no channel in the given
* band is found.
@@ -358,7 +358,7 @@ public abstract class ChannelOptimizer {
String band,
String serialNumber,
State state,
Map<String, JsonObject> latestDeviceCapabilities
Map<String, Map<String, Capabilities.Phy>> latestDeviceCapabilitiesPhy
) {
int currentChannel = 0;
int currentChannelWidth = MIN_CHANNEL_WIDTH;
@@ -370,14 +370,14 @@ public abstract class ChannelOptimizer {
) {
State.Radio radio = state.radios[radioIndex];
// check if radio is in band of interest
JsonObject deviceCapability =
latestDeviceCapabilities.get(serialNumber);
if (deviceCapability == null) {
Map<String, Capabilities.Phy> capabilitiesPhy =
latestDeviceCapabilitiesPhy.get(serialNumber);
if (capabilitiesPhy == null) {
continue;
}
final String radioBand = ModelerUtils.getBand(
radio,
deviceCapability
capabilitiesPhy
);
if (radioBand == null || !radioBand.equals(band)) {
continue;

View File

@@ -337,7 +337,7 @@ public class LeastUsedChannelOptimizer extends ChannelOptimizer {
Map<String, Map<String, List<Integer>>> deviceAvailableChannels =
UCentralUtils.getDeviceAvailableChannels(
model.latestDeviceStatusRadios,
model.latestDeviceCapabilities,
model.latestDeviceCapabilitiesPhy,
UCentralUtils.AVAILABLE_CHANNELS_BAND
);
@@ -397,7 +397,7 @@ public class LeastUsedChannelOptimizer extends ChannelOptimizer {
band,
serialNumber,
state,
model.latestDeviceCapabilities
model.latestDeviceCapabilitiesPhy
);
int currentChannel = currentChannelInfo[0];
// Filter out APs if the radios in the state do not contain a

View File

@@ -125,7 +125,7 @@ public class RandomChannelInitializer extends ChannelOptimizer {
Map<String, Map<String, List<Integer>>> deviceAvailableChannels =
UCentralUtils.getDeviceAvailableChannels(
model.latestDeviceStatusRadios,
model.latestDeviceCapabilities,
model.latestDeviceCapabilitiesPhy,
UCentralUtils.AVAILABLE_CHANNELS_BAND
);
@@ -208,7 +208,7 @@ public class RandomChannelInitializer extends ChannelOptimizer {
band,
serialNumber,
state,
model.latestDeviceCapabilities
model.latestDeviceCapabilitiesPhy
);
int currentChannel = currentChannelInfo[0];
int currentChannelWidth = currentChannelInfo[1];

View File

@@ -22,11 +22,11 @@ import org.slf4j.LoggerFactory;
import com.facebook.openwifi.cloudsdk.UCentralUtils;
import com.facebook.openwifi.cloudsdk.WifiScanEntry;
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
import com.facebook.openwifi.cloudsdk.models.ap.State;
import com.facebook.openwifi.rrm.DeviceDataManager;
import com.facebook.openwifi.rrm.modules.Modeler.DataModel;
import com.facebook.openwifi.rrm.modules.ModelerUtils;
import com.google.gson.JsonObject;
/**
* Measurement-based AP-AP TPC algorithm.
@@ -373,14 +373,15 @@ public class MeasurementBasedApApTPC extends TPC {
State.Radio radio = state.radios[idx];
// this specific SSID is not on the band of interest
JsonObject deviceCapability = model.latestDeviceCapabilities
.get(serialNumber);
if (deviceCapability == null) {
Map<String, Capabilities.Phy> capabilitiesPhy =
model.latestDeviceCapabilitiesPhy
.get(serialNumber);
if (capabilitiesPhy == null) {
continue;
}
final String radioBand = ModelerUtils.getBand(
radio,
deviceCapability
capabilitiesPhy
);
if (radioBand == null || !radioBand.equals(band)) {
continue;

View File

@@ -18,12 +18,12 @@ import java.util.TreeMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
import com.facebook.openwifi.cloudsdk.UCentralUtils;
import com.facebook.openwifi.cloudsdk.models.ap.State;
import com.facebook.openwifi.rrm.DeviceDataManager;
import com.facebook.openwifi.rrm.modules.Modeler.DataModel;
import com.facebook.openwifi.rrm.modules.ModelerUtils;
import com.google.gson.JsonObject;
/**
* Measurement-based AP-client algorithm.
@@ -307,14 +307,15 @@ public class MeasurementBasedApClientTPC extends TPC {
Map<String, Integer> radioMap = new TreeMap<>();
for (State.Radio radio : state.radios) {
JsonObject deviceCapability = model.latestDeviceCapabilities
.get(serialNumber);
if (deviceCapability == null) {
Map<String, Capabilities.Phy> capabilityPhy =
model.latestDeviceCapabilitiesPhy
.get(serialNumber);
if (capabilityPhy == null) {
continue;
}
final String band = ModelerUtils.getBand(
radio,
deviceCapability
capabilityPhy
);
if (band == null) {
continue;

View File

@@ -20,13 +20,13 @@ import java.util.stream.IntStream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
import com.facebook.openwifi.cloudsdk.models.ap.State;
import com.facebook.openwifi.rrm.DeviceConfig;
import com.facebook.openwifi.rrm.DeviceDataManager;
import com.facebook.openwifi.rrm.modules.ConfigManager;
import com.facebook.openwifi.rrm.modules.Modeler.DataModel;
import com.facebook.openwifi.rrm.modules.ModelerUtils;
import com.google.gson.JsonObject;
/**
* TPC (Transmit Power Control) base class.
@@ -78,7 +78,7 @@ public abstract class TPC {
this.model.latestDeviceStatusRadios.keySet()
.removeIf(serialNumber -> !deviceConfigs.containsKey(serialNumber)
);
this.model.latestDeviceCapabilities.keySet()
this.model.latestDeviceCapabilitiesPhy.keySet()
.removeIf(serialNumber -> !deviceConfigs.containsKey(serialNumber)
);
}
@@ -204,14 +204,14 @@ public abstract class TPC {
if (currentChannel == 0) {
continue;
}
JsonObject deviceCapability =
model.latestDeviceCapabilities.get(serialNumber);
if (deviceCapability == null) {
Map<String, Capabilities.Phy> capabilitiesPhy =
model.latestDeviceCapabilitiesPhy.get(serialNumber);
if (capabilitiesPhy == null) {
continue;
}
final String band = ModelerUtils.getBand(
radio,
deviceCapability
capabilitiesPhy
);
if (band == null) {
continue;

View File

@@ -11,6 +11,7 @@ package com.facebook.openwifi.rrm.optimizers;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -21,6 +22,7 @@ import com.facebook.openwifi.cloudsdk.AggregatedState;
import com.facebook.openwifi.cloudsdk.UCentralConstants;
import com.facebook.openwifi.cloudsdk.UCentralUtils;
import com.facebook.openwifi.cloudsdk.WifiScanEntry;
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
import com.facebook.openwifi.cloudsdk.models.ap.State;
import com.facebook.openwifi.rrm.DeviceTopology;
import com.google.gson.Gson;
@@ -764,11 +766,9 @@ public class TestUtils {
/**
* Create a radio capability object which is part of the device capability.
*/
public static JsonObject createRadioCapability(String band) {
JsonObject radioCapability = new JsonObject();
JsonArray bandArray = new JsonArray();
bandArray.add(band);
radioCapability.add("band", bandArray);
public static Capabilities.Phy createCapabilitiesPhy(String band) {
Capabilities.Phy phy = new Capabilities.Phy();
phy.band = new String[] { band };
// the following fields are present but unused so they are excluded here
// channels
// dfs_channels
@@ -780,23 +780,27 @@ public class TestUtils {
// rx_ant
// tx_ant
// vht_capa
return radioCapability;
return phy;
}
/** Create a device capability object with radios in the given bands. */
public static JsonObject createDeviceCapability(String[] bands) {
JsonObject deviceCapability = new JsonObject();
public static Map<String, Capabilities.Phy> createDeviceCapabilityPhy(
String[] bands
) {
Map<String, Capabilities.Phy> capabilitiesPhy = new HashMap<>();
for (int i = 0; i < bands.length; i++) {
String phyId = generatePhyString(i);
JsonObject radioCapability = createRadioCapability(bands[i]);
deviceCapability.add(phyId, radioCapability);
Capabilities.Phy radioCapability = createCapabilitiesPhy(bands[i]);
capabilitiesPhy.put(phyId, radioCapability);
}
return deviceCapability;
return capabilitiesPhy;
}
/** Create a device capability object with a radio in the given band. */
public static JsonObject createDeviceCapability(String band) {
return createDeviceCapability(new String[] { band });
public static Map<String, Capabilities.Phy> createDeviceCapabilityPhy(
String band
) {
return createDeviceCapabilityPhy(new String[] { band });
}
/**

View File

@@ -63,9 +63,9 @@ public class LeastUsedChannelOptimizerTest {
.createState(aExpectedChannel, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceA,
@@ -89,9 +89,9 @@ public class LeastUsedChannelOptimizerTest {
deviceB,
Arrays.asList(TestUtils.createState(40, channelWidth, dummyBssid))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceB,
@@ -116,9 +116,9 @@ public class LeastUsedChannelOptimizerTest {
TestUtils.createState(149, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceC,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceC,
@@ -167,9 +167,9 @@ public class LeastUsedChannelOptimizerTest {
.createState(aExpectedChannel, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceA,
@@ -193,9 +193,9 @@ public class LeastUsedChannelOptimizerTest {
deviceB,
Arrays.asList(TestUtils.createState(6, channelWidth, dummyBssid))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceB,
@@ -215,9 +215,9 @@ public class LeastUsedChannelOptimizerTest {
deviceC,
Arrays.asList(TestUtils.createState(6, channelWidth, dummyBssid))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceC,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceC,
@@ -275,9 +275,9 @@ public class LeastUsedChannelOptimizerTest {
.createState(aExpectedChannel, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceA,
@@ -300,9 +300,9 @@ public class LeastUsedChannelOptimizerTest {
deviceB,
Arrays.asList(TestUtils.createState(40, channelWidth, dummyBssid))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceB,
@@ -326,9 +326,9 @@ public class LeastUsedChannelOptimizerTest {
TestUtils.createState(149, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceC,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceC,
@@ -385,9 +385,9 @@ public class LeastUsedChannelOptimizerTest {
.createState(aExpectedChannel, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceA,
@@ -412,9 +412,9 @@ public class LeastUsedChannelOptimizerTest {
deviceB,
Arrays.asList(TestUtils.createState(40, channelWidth, dummyBssid))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceB,
@@ -439,9 +439,9 @@ public class LeastUsedChannelOptimizerTest {
TestUtils.createState(149, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceC,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceC,
@@ -492,9 +492,9 @@ public class LeastUsedChannelOptimizerTest {
.createState(aExpectedChannel, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceA,
@@ -520,9 +520,9 @@ public class LeastUsedChannelOptimizerTest {
deviceB,
Arrays.asList(TestUtils.createState(40, channelWidth, dummyBssid))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceB,
@@ -547,9 +547,9 @@ public class LeastUsedChannelOptimizerTest {
TestUtils.createState(149, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceC,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceC,
@@ -571,9 +571,9 @@ public class LeastUsedChannelOptimizerTest {
deviceD,
Arrays.asList(TestUtils.createState(40, channelWidth, dummyBssid))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceD,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceD,
@@ -631,9 +631,9 @@ public class LeastUsedChannelOptimizerTest {
.createState(aExpectedChannel, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceA,
@@ -657,9 +657,9 @@ public class LeastUsedChannelOptimizerTest {
deviceB,
Arrays.asList(TestUtils.createState(36, channelWidth, dummyBssid))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceB,
@@ -684,9 +684,9 @@ public class LeastUsedChannelOptimizerTest {
TestUtils.createState(149, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceC,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceC,
@@ -710,9 +710,9 @@ public class LeastUsedChannelOptimizerTest {
deviceD,
Arrays.asList(TestUtils.createState(36, channelWidth, dummyBssid))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceD,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceD,
@@ -742,9 +742,9 @@ public class LeastUsedChannelOptimizerTest {
.createState(aExpectedChannel, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceE,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceE,
@@ -795,9 +795,9 @@ public class LeastUsedChannelOptimizerTest {
.createState(aExpectedChannel, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceA,
@@ -820,9 +820,9 @@ public class LeastUsedChannelOptimizerTest {
deviceB,
Arrays.asList(TestUtils.createState(48, channelWidth, dummyBssid))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceB,
@@ -858,9 +858,9 @@ public class LeastUsedChannelOptimizerTest {
TestUtils.createState(149, channelWidth, dummyBssid)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceC,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceC,

View File

@@ -67,13 +67,13 @@ public class RandomChannelInitializerTest {
deviceB,
TestUtils.createDeviceStatus(band, 8)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
ChannelOptimizer optimizer = new RandomChannelInitializer(
@@ -124,17 +124,17 @@ public class RandomChannelInitializerTest {
deviceB,
TestUtils.createDeviceStatus(band, 8)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(
TestUtils.createDeviceCapabilityPhy(
new String[] {
UCentralConstants.BAND_2G,
UCentralConstants.BAND_2G }
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(
TestUtils.createDeviceCapabilityPhy(
new String[] {
UCentralConstants.BAND_2G,
UCentralConstants.BAND_2G }

View File

@@ -65,9 +65,9 @@ public class UnmanagedApAwareChannelOptimizerTest {
.createState(aExpectedChannel, channelWidth, bssidA)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceA,
@@ -93,9 +93,9 @@ public class UnmanagedApAwareChannelOptimizerTest {
deviceB,
Arrays.asList(TestUtils.createState(40, channelWidth, bssidB))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceB,
@@ -131,9 +131,9 @@ public class UnmanagedApAwareChannelOptimizerTest {
deviceC,
Arrays.asList(TestUtils.createState(149, channelWidth, bssidC))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceC,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceC,
@@ -185,9 +185,9 @@ public class UnmanagedApAwareChannelOptimizerTest {
.createState(aExpectedChannel, channelWidth, bssidA)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceA,
@@ -211,9 +211,9 @@ public class UnmanagedApAwareChannelOptimizerTest {
deviceB,
Arrays.asList(TestUtils.createState(6, channelWidth, bssidB))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceB,
@@ -233,9 +233,9 @@ public class UnmanagedApAwareChannelOptimizerTest {
deviceC,
Arrays.asList(TestUtils.createState(6, channelWidth, bssidC))
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceC,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
dataModel.latestWifiScans.put(
deviceC,

View File

@@ -145,9 +145,9 @@ public class LocationBasedOptimalTPCTest {
)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
device,
TestUtils.createDeviceCapability(
TestUtils.createDeviceCapabilityPhy(
new String[] {
UCentralConstants.BAND_2G,
UCentralConstants.BAND_5G }
@@ -222,9 +222,9 @@ public class LocationBasedOptimalTPCTest {
)
)
);
dataModel2.latestDeviceCapabilities.put(
dataModel2.latestDeviceCapabilitiesPhy.put(
device,
TestUtils.createDeviceCapability(
TestUtils.createDeviceCapabilityPhy(
new String[] {
UCentralConstants.BAND_2G,
UCentralConstants.BAND_5G }
@@ -249,9 +249,9 @@ public class LocationBasedOptimalTPCTest {
)
)
);
dataModel2.latestDeviceCapabilities.put(
dataModel2.latestDeviceCapabilitiesPhy.put(
deviceC,
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
);
Map<String, Map<String, Integer>> expected2 = new HashMap<>();
@@ -347,9 +347,9 @@ public class LocationBasedOptimalTPCTest {
)
)
);
dataModel2.latestDeviceCapabilities.put(
dataModel2.latestDeviceCapabilitiesPhy.put(
device,
TestUtils.createDeviceCapability(
TestUtils.createDeviceCapabilityPhy(
new String[] {
UCentralConstants.BAND_2G,
UCentralConstants.BAND_5G }
@@ -416,9 +416,9 @@ public class LocationBasedOptimalTPCTest {
)
)
);
dataModel3.latestDeviceCapabilities.put(
dataModel3.latestDeviceCapabilitiesPhy.put(
device,
TestUtils.createDeviceCapability(
TestUtils.createDeviceCapabilityPhy(
new String[] {
UCentralConstants.BAND_2G,
UCentralConstants.BAND_5G }
@@ -475,9 +475,9 @@ public class LocationBasedOptimalTPCTest {
)
)
);
dataModel4.latestDeviceCapabilities.put(
dataModel4.latestDeviceCapabilitiesPhy.put(
device,
TestUtils.createDeviceCapability(
TestUtils.createDeviceCapabilityPhy(
new String[] {
UCentralConstants.BAND_2G,
UCentralConstants.BAND_2G }

View File

@@ -108,9 +108,9 @@ public class MeasurementBasedApApTPCTest {
TestUtils
.createDeviceStatusSingleBand(channel, MAX_TX_POWER)
);
model.latestDeviceCapabilities.put(
model.latestDeviceCapabilitiesPhy.put(
device,
TestUtils.createDeviceCapability(band)
TestUtils.createDeviceCapabilityPhy(band)
);
}
@@ -161,9 +161,9 @@ public class MeasurementBasedApApTPCTest {
MAX_TX_POWER
)
);
model.latestDeviceCapabilities.put(
model.latestDeviceCapabilitiesPhy.put(
device,
TestUtils.createDeviceCapability(
TestUtils.createDeviceCapabilityPhy(
new String[] {
UCentralConstants.BAND_2G,
UCentralConstants.BAND_5G }
@@ -604,9 +604,9 @@ public class MeasurementBasedApApTPCTest {
MAX_TX_POWER
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
DEVICE_C,
TestUtils.createDeviceCapability(UCentralConstants.BAND_2G)
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_2G)
);
optimizer = new MeasurementBasedApApTPC(
dataModel,

View File

@@ -61,9 +61,9 @@ public class MeasurementBasedApClientTPCTest {
TestUtils.createState(36, 20, 20, null, new int[] {})
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
);
dataModel.latestStates.put(
deviceB,
@@ -71,9 +71,9 @@ public class MeasurementBasedApClientTPCTest {
TestUtils.createState(36, 20, 20, "", new int[] { -65 })
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
);
dataModel.latestStates.put(
deviceC,
@@ -87,9 +87,9 @@ public class MeasurementBasedApClientTPCTest {
)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceC,
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
);
dataModel.latestStates.put(
deviceD,
@@ -97,9 +97,9 @@ public class MeasurementBasedApClientTPCTest {
TestUtils.createState(36, 20, 22, null, new int[] { -80 })
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceD,
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
);
dataModel.latestStates.put(
deviceE,
@@ -107,9 +107,9 @@ public class MeasurementBasedApClientTPCTest {
TestUtils.createState(36, 20, 23, null, new int[] { -45 })
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceE,
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
);
TPC optimizer = new MeasurementBasedApClientTPC(
@@ -178,9 +178,9 @@ public class MeasurementBasedApClientTPCTest {
TestUtils.createState(1, 20, 20, null, new int[] {})
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(UCentralConstants.BAND_2G)
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_2G)
);
// 5G only
dataModel.latestStates.put(
@@ -189,9 +189,9 @@ public class MeasurementBasedApClientTPCTest {
TestUtils.createState(36, 20, 20, null, new int[] {})
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
);
// 2G and 5G
dataModel.latestStates.put(
@@ -209,9 +209,9 @@ public class MeasurementBasedApClientTPCTest {
)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceC,
TestUtils.createDeviceCapability(
TestUtils.createDeviceCapabilityPhy(
new String[] {
UCentralConstants.BAND_2G,
UCentralConstants.BAND_5G }
@@ -284,9 +284,9 @@ public class MeasurementBasedApClientTPCTest {
TestUtils.createState(36, 20, 20, null, new int[] {})
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceA,
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
);
dataModel.latestStates.put(
deviceB,
@@ -294,9 +294,9 @@ public class MeasurementBasedApClientTPCTest {
TestUtils.createState(36, 20, 20, "", new int[] { -65 })
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceB,
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
);
dataModel.latestStates.put(
deviceC,
@@ -310,9 +310,9 @@ public class MeasurementBasedApClientTPCTest {
)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
deviceC,
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
);
TPC optimizer = new MeasurementBasedApClientTPC(

View File

@@ -78,9 +78,9 @@ public class RandomTxPowerInitializerTest {
)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
DEVICE_A,
TestUtils.createDeviceCapability(
TestUtils.createDeviceCapabilityPhy(
new String[] {
UCentralConstants.BAND_5G,
UCentralConstants.BAND_2G }
@@ -97,9 +97,9 @@ public class RandomTxPowerInitializerTest {
)
)
);
dataModel.latestDeviceCapabilities.put(
dataModel.latestDeviceCapabilitiesPhy.put(
DEVICE_B,
TestUtils.createDeviceCapability(UCentralConstants.BAND_2G)
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_2G)
);
return dataModel;
}