From patchwork Wed Jan 1 13:39:14 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peer, Ilan" X-Patchwork-Id: 305966 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from maxx.maxx.shmoo.com (maxx.shmoo.com [205.134.188.171]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 186F62C0090 for ; Thu, 2 Jan 2014 00:37:55 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id 394339D488; Wed, 1 Jan 2014 08:37:53 -0500 (EST) X-Virus-Scanned: amavisd-new at maxx.shmoo.com Received: from maxx.maxx.shmoo.com ([127.0.0.1]) by localhost (maxx.shmoo.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kteIwTHohfK6; Wed, 1 Jan 2014 08:37:52 -0500 (EST) Received: from maxx.shmoo.com (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id B64C89D483; Wed, 1 Jan 2014 08:37:52 -0500 (EST) X-Original-To: mailman-post+hostap@maxx.shmoo.com Delivered-To: mailman-post+hostap@maxx.shmoo.com Received: from localhost (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id DEDE29D483 for ; Wed, 1 Jan 2014 08:37:51 -0500 (EST) X-Virus-Scanned: amavisd-new at maxx.shmoo.com Received: from maxx.maxx.shmoo.com ([127.0.0.1]) by localhost (maxx.shmoo.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FpNnWLsReTiI for ; Wed, 1 Jan 2014 08:37:51 -0500 (EST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id A06F99D47E for ; Wed, 1 Jan 2014 08:37:51 -0500 (EST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP; 01 Jan 2014 05:37:51 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.95,585,1384329600"; d="scan'208";a="458656958" Received: from ipeer-e6430-1.jer.intel.com ([10.12.217.171]) by fmsmga002.fm.intel.com with ESMTP; 01 Jan 2014 05:37:49 -0800 From: Ilan Peer To: hostap@lists.shmoo.com Subject: [PATCH 4/5] hwsim tests: Add test cases for AP channel switch announcement Date: Wed, 1 Jan 2014 15:39:14 +0200 Message-Id: <1388583554-15043-1-git-send-email-ilan.peer@intel.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1387050197-3183-1-git-send-email-luca@coelho.fi> References: <1387050197-3183-1-git-send-email-luca@coelho.fi> Cc: Luciano Coelho X-BeenThere: hostap@lists.shmoo.com X-Mailman-Version: 2.1.11 Precedence: list List-Id: HostAP Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: hostap-bounces@lists.shmoo.com Errors-To: hostap-bounces@lists.shmoo.com From: Luciano Coelho Signed-hostap: Luciano Coelho --- tests/hwsim/test_ap_csa.py | 85 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 tests/hwsim/test_ap_csa.py diff --git a/tests/hwsim/test_ap_csa.py b/tests/hwsim/test_ap_csa.py new file mode 100644 index 0000000..9b2feb0 --- /dev/null +++ b/tests/hwsim/test_ap_csa.py @@ -0,0 +1,85 @@ +#!/usr/bin/python +# +# AP CSA tests +# Copyright (c) 2013, Luciano Coelho +# +# This software may be distributed under the terms of the BSD license. +# See README for more details. + +import time +import subprocess +import logging +logger = logging.getLogger() + +import hwsim_utils +import hostapd + +def connect(dev, apdev): + params = { "ssid": "ap-csa", + "channel": "1" } + ap = hostapd.add_ap(apdev[0]['ifname'], params) + dev.connect("ap-csa", key_mgmt="NONE") + return ap + +def switch_channel(ap, count, freq): + ap.request("CHAN_SWITCH " + str(count) + " " + str(freq)) + ev = ap.wait_event(["AP-CSA-FINISHED"], timeout=10) + if ev is None: + raise Exception("CSA finished event timed out") + if "freq=" + str(freq) not in ev: + raise Exception("Unexpected channel in CSA finished event") + time.sleep(0.1) + +def test_ap_csa_1_switch(dev, apdev): + """AP Channel Switch, one switch""" + ap = connect(dev[0], apdev) + + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + switch_channel(ap, 10, 2462) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + +def test_ap_csa_2_switches(dev, apdev): + """AP Channel Switch, two switches""" + ap = connect(dev[0], apdev) + + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + switch_channel(ap, 10, 2462) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + switch_channel(ap, 10, 2412) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + +def test_ap_csa_1_switch_count_0(dev, apdev): + """AP Channel Switch, one switch with count 0""" + ap = connect(dev[0], apdev) + + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + switch_channel(ap, 0, 2462) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + +def test_ap_csa_2_switches_count_0(dev, apdev): + """AP Channel Switch, two switches with count 0""" + ap = connect(dev[0], apdev) + + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + switch_channel(ap, 0, 2462) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + switch_channel(ap, 0, 2412) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + +def test_ap_csa_1_switch_count_1(dev, apdev): + """AP Channel Switch, one switch with count 1""" + ap = connect(dev[0], apdev) + + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + switch_channel(ap, 1, 2462) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + +def test_ap_csa_2_switches_count_1(dev, apdev): + """AP Channel Switch, two switches with count 1""" + ap = connect(dev[0], apdev) + + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + switch_channel(ap, 1, 2462) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + switch_channel(ap, 1, 2412) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname'])