From 3280ce7359f081628980661afc46890bd90a71c9 Mon Sep 17 00:00:00 2001 From: Veerendranath Jakkam Date: Mon, 11 May 2020 09:33:06 +0530 Subject: Add check to consider band in determining VHT capability determineMode returning MODE_11AC capability when VHT IEs found. Thus all APs that have support for the vendor specific partial VHT support in the 2.4 GHz band were also being reported as 11AC capable. However, IEEE Std 802.11ac-2013 defines VHT STA to operate in frequency bands below 6 GHz excluding the 2.4 GHz band. Do not report MODE_11AC capability when operating channel is 2.4 GHz. Bug: 156571060 Test: Manual - Enabled verbose logging in NetworkDetail Class and verified that WifiMode is determined correctly for 2.4GHz APs supporting 11ax, 11ac and 11n. Test: atest com.android.server.wifi.util.InformationElementUtilTest Change-Id: Iae202a0d3116f99e9a672d7510bec9baf7c709d2 --- .../wifi/util/InformationElementUtilTest.java | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'tests') 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 } -- cgit v1.2.3