| # Copyright (c) 2013 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| from autotest_lib.server import site_linux_system |
| from autotest_lib.server.cros.network import hostap_config |
| from autotest_lib.server.cros.network import wifi_cell_test_base |
| |
| |
| class network_WiFi_MaskedBSSID(wifi_cell_test_base.WiFiCellTestBase): |
| """Test behavior around masked BSSIDs.""" |
| version = 1 |
| |
| |
| def run_once(self): |
| """Test body. |
| |
| Set up two APs on the same channel/bssid but with different SSIDs. |
| Check that we can see both APs in scan results. |
| |
| """ |
| self.context.router.require_capabilities( |
| [site_linux_system.LinuxSystem.CAPABILITY_MULTI_AP_SAME_BAND]) |
| frequency = 2412 |
| configurations = [hostap_config.HostapConfig( |
| frequency=frequency, |
| mode=hostap_config.HostapConfig.MODE_11B, |
| bssid='00:11:22:33:44:55', |
| ssid=('CrOS_Masked%d' % i)) for i in range(2)] |
| # Create an AP, manually specifying both the SSID and BSSID. |
| self.context.configure(configurations[0]) |
| # Create a second AP that responds to probe requests with the same BSSID |
| # but an different SSID. These APs together are meant to emulate |
| # situations that occur with some types of APs which broadcast or |
| # respond with more than one (non-empty) SSID. |
| self.context.configure(configurations[1], multi_interface=True) |
| # We cannot connect to this AP, since there are two separate APs that |
| # respond to the same BSSID, but we can test to make sure both SSIDs |
| # appears in the scan. |
| self.context.client.scan([frequency], |
| [config.ssid for config in configurations]) |
| self.context.router.deconfig() |
| |
| |
| |
| |