summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/java/com/android/server/wifi/util/InformationElementUtil.java6
-rw-r--r--tests/wifitests/src/com/android/server/wifi/util/InformationElementUtilTest.java34
2 files changed, 38 insertions, 2 deletions
diff --git a/service/java/com/android/server/wifi/util/InformationElementUtil.java b/service/java/com/android/server/wifi/util/InformationElementUtil.java
index 091707a7a..0b10bf45e 100644
--- a/service/java/com/android/server/wifi/util/InformationElementUtil.java
+++ b/service/java/com/android/server/wifi/util/InformationElementUtil.java
@@ -1494,13 +1494,15 @@ public class InformationElementUtil {
boolean foundVht, boolean foundHt, boolean foundErp) {
if (foundHe) {
return MODE_11AX;
- } else if (foundVht) {
+ } else if (!ScanResult.is24GHz(frequency) && foundVht) {
+ // Do not include subset of VHT on 2.4 GHz vendor extension
+ // in consideration for reporting VHT.
return MODE_11AC;
} else if (foundHt) {
return MODE_11N;
} else if (foundErp) {
return MODE_11G;
- } else if (frequency < 3000) {
+ } else if (ScanResult.is24GHz(frequency)) {
if (maxRate < 24000000) {
return MODE_11B;
} else {
diff --git a/tests/wifitests/src/com/android/server/wifi/util/InformationElementUtilTest.java b/tests/wifitests/src/com/android/server/wifi/util/InformationElementUtilTest.java
index 874da7043..77c99a9d1 100644
--- a/tests/wifitests/src/com/android/server/wifi/util/InformationElementUtilTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/util/InformationElementUtilTest.java
@@ -1706,5 +1706,39 @@ public class InformationElementUtilTest extends WifiBaseTest {
assertEquals(true, vsa.IsOceCapable);
}
+ /**
+ * verify determineMode for various combinations.
+ */
+ @Test
+ public void determineMode() throws Exception {
+ assertEquals(InformationElementUtil.WifiMode.MODE_11B,
+ InformationElementUtil.WifiMode.determineMode(
+ 2412, 11000000, false, false, false, false));
+ assertEquals(InformationElementUtil.WifiMode.MODE_11G,
+ InformationElementUtil.WifiMode.determineMode(
+ 2412, 54000000, false, false, false, false));
+ assertEquals(InformationElementUtil.WifiMode.MODE_11A,
+ InformationElementUtil.WifiMode.determineMode(
+ 5180, 54000000, false, false, false, false));
+ assertEquals(InformationElementUtil.WifiMode.MODE_11G,
+ InformationElementUtil.WifiMode.determineMode(
+ 2412, 54000000, false, false, false, true));
+ assertEquals(InformationElementUtil.WifiMode.MODE_11N,
+ InformationElementUtil.WifiMode.determineMode(
+ 2412, 72000000, false, false, true, false));
+ assertEquals(InformationElementUtil.WifiMode.MODE_11N,
+ InformationElementUtil.WifiMode.determineMode(
+ 2412, 72000000, false, true, true, false));
+ assertEquals(InformationElementUtil.WifiMode.MODE_11AC,
+ InformationElementUtil.WifiMode.determineMode(
+ 5180, 866000000, false, true, true, false));
+ assertEquals(InformationElementUtil.WifiMode.MODE_11AX,
+ InformationElementUtil.WifiMode.determineMode(
+ 5180, 866000000, true, true, true, false));
+ assertEquals(InformationElementUtil.WifiMode.MODE_11AX,
+ InformationElementUtil.WifiMode.determineMode(
+ 2412, 72000000, true, true, true, false));
+ }
+
// TODO: SAE, OWN, SUITE_B
}