diff options
-rw-r--r-- | service/java/com/android/server/wifi/util/InformationElementUtil.java | 6 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/util/InformationElementUtilTest.java | 34 |
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 } |