# 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.

AUTHOR = 'pstew, wiley, quiche'
NAME = 'network_WiFi_CSA'
TIME = 'SHORT'
TEST_TYPE = 'Server'
ATTRIBUTES = ('suite:wificell-cq')
DEPENDENCIES = 'wificell'

DOC = """
This test verifies that DUT will move off-channel if it is sent a
Spectrum Management action frame that contains a Channel Move
element.  Such frames are sent on a DFS network to vacate the
channel if radar is detected.
Note that not all clients support CSA, but they generally should at least try
to disconnect from the AP.
"""


from autotest_lib.server.cros.network import hostap_config


def run(machine):
    a_mode = hostap_config.HostapConfig.MODE_11A
    configurations = [
        (hostap_config.HostapConfig(
            channel=64, mode=a_mode, spectrum_mgmt_required=True), 36)]
    host = hosts.create_host(machine)
    job.run_test('network_WiFi_CSA',
                 host=host,
                 raw_cmdline_args=args,
                 additional_params=configurations)


parallel_simple(run, machines)
