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 *.iml
*.iws *.iws
*.ipr *.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.Logger;
import org.slf4j.LoggerFactory; 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.Country;
import com.facebook.openwifi.cloudsdk.ies.LocalPowerConstraint; import com.facebook.openwifi.cloudsdk.ies.LocalPowerConstraint;
import com.facebook.openwifi.cloudsdk.ies.QbssLoad; import com.facebook.openwifi.cloudsdk.ies.QbssLoad;
@@ -304,7 +305,7 @@ public class UCentralUtils {
*/ */
public static Map<String, Map<String, List<Integer>>> getDeviceAvailableChannels( public static Map<String, Map<String, List<Integer>>> getDeviceAvailableChannels(
Map<String, JsonArray> deviceStatus, Map<String, JsonArray> deviceStatus,
Map<String, JsonObject> deviceCapabilities, Map<String, Map<String, Capabilities.Phy>> deviceCapabilities,
Map<String, List<Integer>> defaultAvailableChannels Map<String, List<Integer>> defaultAvailableChannels
) { ) {
Map<String, Map<String, List<Integer>>> deviceAvailableChannels = Map<String, Map<String, List<Integer>>> deviceAvailableChannels =
@@ -323,41 +324,32 @@ public class UCentralUtils {
JsonObject radioObject = e.getAsJsonObject(); JsonObject radioObject = e.getAsJsonObject();
String band = radioObject.get("band").getAsString(); String band = radioObject.get("band").getAsString();
JsonObject capabilitesObject = Map<String, Capabilities.Phy> capabilitiesPhyMap =
deviceCapabilities.get(serialNumber); deviceCapabilities.get(serialNumber);
List<Integer> availableChannels = new ArrayList<>(); List<Integer> availableChannels = new ArrayList<>();
if (capabilitesObject == null) { if (capabilitiesPhyMap == null) {
availableChannels availableChannels
.addAll(defaultAvailableChannels.get(band)); .addAll(defaultAvailableChannels.get(band));
} else { } else {
Set<Entry<String, JsonElement>> entrySet = capabilitesObject Set<Entry<String, Capabilities.Phy>> entrySet =
.entrySet(); capabilitiesPhyMap
for (Map.Entry<String, JsonElement> f : entrySet) { .entrySet();
String bandInsideObject = f.getValue() for (Map.Entry<String, Capabilities.Phy> f : entrySet) {
.getAsJsonObject() Capabilities.Phy phy = f.getValue();
.get("band") String bandInsideObject = phy.band.toString();
.getAsString();
if (bandInsideObject.equals(band)) { if (bandInsideObject.equals(band)) {
// (TODO) Remove the following dfsChannels code block // (TODO) Remove the following dfsChannels code block
// when the DFS channels are available // when the DFS channels are available
Set<Integer> dfsChannels = new HashSet<>(); Set<Integer> dfsChannels = new HashSet<>();
try { try {
JsonArray channelInfo = f.getValue() int[] channelInfo = phy.dfs_channels;
.getAsJsonObject() for (int d : channelInfo) {
.get("dfs_channels") dfsChannels.add(d);
.getAsJsonArray();
for (JsonElement d : channelInfo) {
dfsChannels.add(d.getAsInt());
} }
} catch (Exception d) {} } catch (Exception d) {}
try { try {
JsonArray channelInfo = f.getValue() int[] channelInfo = phy.channels;
.getAsJsonObject() for (int channel : channelInfo) {
.get("channels")
.getAsJsonArray();
for (JsonElement c : channelInfo) {
int channel = c.getAsInt();
if (!dfsChannels.contains(channel)) { if (!dfsChannels.contains(channel)) {
availableChannels.add(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; package com.facebook.openwifi.cloudsdk.models.gw;
import com.google.gson.JsonObject; import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
public class DeviceCapabilities { public class DeviceCapabilities {
public JsonObject capabilities; public Capabilities capabilities;
public long firstUpdate; public long firstUpdate;
public long lastUpdate; public long lastUpdate;
public String serialNumber; 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.WifiScanEntry;
import com.facebook.openwifi.cloudsdk.kafka.UCentralKafkaConsumer; import com.facebook.openwifi.cloudsdk.kafka.UCentralKafkaConsumer;
import com.facebook.openwifi.cloudsdk.kafka.UCentralKafkaConsumer.KafkaRecord; 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.ap.State;
import com.facebook.openwifi.cloudsdk.models.gw.DeviceCapabilities; import com.facebook.openwifi.cloudsdk.models.gw.DeviceCapabilities;
import com.facebook.openwifi.cloudsdk.models.gw.DeviceWithStatus; import com.facebook.openwifi.cloudsdk.models.gw.DeviceWithStatus;
@@ -102,7 +103,7 @@ public class Modeler implements Runnable {
new ConcurrentHashMap<>(); new ConcurrentHashMap<>();
/** List of capabilities per device. */ /** List of capabilities per device. */
public Map<String, JsonObject> latestDeviceCapabilities = public Map<String, Map<String, Capabilities.Phy>> latestDeviceCapabilitiesPhy =
new ConcurrentHashMap<>(); new ConcurrentHashMap<>();
} }
@@ -376,9 +377,9 @@ public class Modeler implements Runnable {
String serialNumber, String serialNumber,
DeviceCapabilities capabilities DeviceCapabilities capabilities
) { ) {
dataModel.latestDeviceCapabilities.put( dataModel.latestDeviceCapabilitiesPhy.put(
serialNumber, 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"); logger.debug("Removed some status entries from data model");
} }
if ( if (
dataModel.latestDeviceCapabilities.entrySet() dataModel.latestDeviceCapabilitiesPhy.entrySet()
.removeIf(e -> !isRRMEnabled(e.getKey())) .removeIf(e -> !isRRMEnabled(e.getKey()))
) { ) {
logger.debug("Removed some capabilities entries from data model"); 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
import com.facebook.openwifi.cloudsdk.AggregatedState; import com.facebook.openwifi.cloudsdk.AggregatedState;
import com.facebook.openwifi.cloudsdk.WifiScanEntry; import com.facebook.openwifi.cloudsdk.WifiScanEntry;
import com.facebook.openwifi.cloudsdk.ies.HTOperation; 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.Aggregator;
import com.facebook.openwifi.rrm.aggregators.MeanAggregator; import com.facebook.openwifi.rrm.aggregators.MeanAggregator;
import com.facebook.openwifi.rrm.modules.Modeler.DataModel; 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. * Modeler utilities.
@@ -562,24 +560,19 @@ public class ModelerUtils {
/** Return the radio's band, or null if band cannot be found */ /** Return the radio's band, or null if band cannot be found */
public static String getBand( public static String getBand(
State.Radio radio, State.Radio radio,
JsonObject deviceCapability Map<String, Capabilities.Phy> capabilityPhy
) { ) {
if (radio.phy == null) { if (radio.phy == null) {
return null; return null;
} }
JsonElement radioCapabilityElement = deviceCapability.get(radio.phy); Capabilities.Phy phy = capabilityPhy.get(radio.phy);
if (radioCapabilityElement == null) { if (phy == null) {
return null; return null;
} }
JsonObject radioCapability = radioCapabilityElement.getAsJsonObject(); String[] bands = phy.band;
JsonElement bandsElement = radioCapability.get("band"); if (bands == null || bands.length == 0) {
if (bandsElement == null) {
return null; return null;
} }
JsonArray bands = bandsElement.getAsJsonArray(); return bands[0];
if (bands.isEmpty()) {
return null;
}
return bands.get(0).getAsString();
} }
} }

View File

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

View File

@@ -337,7 +337,7 @@ public class LeastUsedChannelOptimizer extends ChannelOptimizer {
Map<String, Map<String, List<Integer>>> deviceAvailableChannels = Map<String, Map<String, List<Integer>>> deviceAvailableChannels =
UCentralUtils.getDeviceAvailableChannels( UCentralUtils.getDeviceAvailableChannels(
model.latestDeviceStatusRadios, model.latestDeviceStatusRadios,
model.latestDeviceCapabilities, model.latestDeviceCapabilitiesPhy,
UCentralUtils.AVAILABLE_CHANNELS_BAND UCentralUtils.AVAILABLE_CHANNELS_BAND
); );
@@ -397,7 +397,7 @@ public class LeastUsedChannelOptimizer extends ChannelOptimizer {
band, band,
serialNumber, serialNumber,
state, state,
model.latestDeviceCapabilities model.latestDeviceCapabilitiesPhy
); );
int currentChannel = currentChannelInfo[0]; int currentChannel = currentChannelInfo[0];
// Filter out APs if the radios in the state do not contain a // 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 = Map<String, Map<String, List<Integer>>> deviceAvailableChannels =
UCentralUtils.getDeviceAvailableChannels( UCentralUtils.getDeviceAvailableChannels(
model.latestDeviceStatusRadios, model.latestDeviceStatusRadios,
model.latestDeviceCapabilities, model.latestDeviceCapabilitiesPhy,
UCentralUtils.AVAILABLE_CHANNELS_BAND UCentralUtils.AVAILABLE_CHANNELS_BAND
); );
@@ -208,7 +208,7 @@ public class RandomChannelInitializer extends ChannelOptimizer {
band, band,
serialNumber, serialNumber,
state, state,
model.latestDeviceCapabilities model.latestDeviceCapabilitiesPhy
); );
int currentChannel = currentChannelInfo[0]; int currentChannel = currentChannelInfo[0];
int currentChannelWidth = currentChannelInfo[1]; 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.UCentralUtils;
import com.facebook.openwifi.cloudsdk.WifiScanEntry; 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.cloudsdk.models.ap.State;
import com.facebook.openwifi.rrm.DeviceDataManager; import com.facebook.openwifi.rrm.DeviceDataManager;
import com.facebook.openwifi.rrm.modules.Modeler.DataModel; import com.facebook.openwifi.rrm.modules.Modeler.DataModel;
import com.facebook.openwifi.rrm.modules.ModelerUtils; import com.facebook.openwifi.rrm.modules.ModelerUtils;
import com.google.gson.JsonObject;
/** /**
* Measurement-based AP-AP TPC algorithm. * Measurement-based AP-AP TPC algorithm.
@@ -373,14 +373,15 @@ public class MeasurementBasedApApTPC extends TPC {
State.Radio radio = state.radios[idx]; State.Radio radio = state.radios[idx];
// this specific SSID is not on the band of interest // this specific SSID is not on the band of interest
JsonObject deviceCapability = model.latestDeviceCapabilities Map<String, Capabilities.Phy> capabilitiesPhy =
.get(serialNumber); model.latestDeviceCapabilitiesPhy
if (deviceCapability == null) { .get(serialNumber);
if (capabilitiesPhy == null) {
continue; continue;
} }
final String radioBand = ModelerUtils.getBand( final String radioBand = ModelerUtils.getBand(
radio, radio,
deviceCapability capabilitiesPhy
); );
if (radioBand == null || !radioBand.equals(band)) { if (radioBand == null || !radioBand.equals(band)) {
continue; continue;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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