From patchwork Tue Oct 13 10:16:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janusz Dziedzic X-Patchwork-Id: 1381441 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=LGEoXpdC; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=iopQxrIV; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4C9Wgv59SSz9sTv for ; Tue, 13 Oct 2020 21:17:31 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:MIME-Version:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Owner; bh=b1vqahXnTf+vFNzRn7Om7IwUdzk3WLlCJ5VcK8lC+og=; b=LGEoXpdC+Yqc1Y5nik3qxE4N+9 UOy6uHmZs+nxfwoY46jr0GDftwWpg6CNULwd3dYKBS30+fXSg6zH7nOVqlocLTWWY6wO5+1vFECtW Ys9zTQ0C7Wt0AYDiTEBK59CT6/LLtSjvKdPOwIZukOSB3OVfTyHT7ko6Hoe9vBIcKikzj2ZhDCGOF u+NX05/Ez8CJ7MJ35NFhcJ+AhFaUpWfEpqHk3b6HdMc2L8RTArWu3FLufUm1INh5ZukUl6iOLWYMx ZzhePdSOHSvE/+hcARxsAHDEwKkh4dvAqm/L7h+S2QgtgFv1cEH63BEKCWsE5rc7cX15u4/q00ZP1 2tjcc6KA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kSHMH-0000lc-5k; Tue, 13 Oct 2020 10:16:41 +0000 Received: from mail-lj1-x234.google.com ([2a00:1450:4864:20::234]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kSHME-0000jf-9m for hostap@lists.infradead.org; Tue, 13 Oct 2020 10:16:39 +0000 Received: by mail-lj1-x234.google.com with SMTP id d24so16839367ljg.10 for ; Tue, 13 Oct 2020 03:16:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=kG5mHKXeZduBnk1Gd25DSCz+gcu+CC/OzdkXUtKoUhs=; b=iopQxrIVxwMnjf2N40Jl8MKr6W4CUbRgHfupe1HocXQJ/BzMwk3LUWx8wQGS7hijDh cuEjcjA34n+R7SfAvQth78Mr3EssQO+M+JdrLMPxDouB8Po8Y7yeNUrbYZzrA2+26Jc7 ZKXcSfgroyfZBudayLJd7Mr8Pzb+x6w42LR/xt16DM4WgipwgxTsw1e5xCwwPSCowp6J 6upS9uc7jEbFgt7jKuiRJ9uEMG/TOFof5S2Cc5Omj1uQ+WWleKdx/gzP+1+9RNaniL8v Av/N0UCiGBW1/EGWACg2t1JnXoXUYVgA/e76XlTQnudFqVV5NuGyVD+PWLLzvCpygkML oJMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=kG5mHKXeZduBnk1Gd25DSCz+gcu+CC/OzdkXUtKoUhs=; b=jbocA9RaC8e0ykbCEa6KNaoxkjXOpYYTOoooQDrIeD3tmn7sVIV9Lt11YM37Mkg9l1 wxoWPrKaE5goA7jOADSgAJb/Hm9xTkUXrIz1ABPMfeVNn1fOiP0JzAs7Rrnz5S99EP/f pVbcA/YSHAFuVUJloJN6SNlm5v67B0OVD0zNCEPsRlH9Jv0TFPtROCJ+CqjmeWSTQCPs +pCAh6aqXVb3cZ3RtoQ7n6TIgmh8de4A4KRZf8ETb2MzL/exkIWsGStbnreeqHoiHpWm S65bYlfajubyabZtdZQ7OG+X7+Z41QKDS7HMJeYTPblYBTXIJB9cFdz0H2ohlPYp9Tx2 x1NQ== X-Gm-Message-State: AOAM533uaK1FQ38jjckLUgm0WU2oSKK6n0FMajlBM5Ig3M1MR3+6d9W3 OtfQzrJehkMbYz/cxelyeNN9TvWbEkc= X-Google-Smtp-Source: ABdhPJyJqIB9o8f3l+yhE+NPolYfyhKL1ZWP3jhz0aS7d8TgZzgFcl/SYmZaJ+A6J0hiyqMcH07d0w== X-Received: by 2002:a2e:9242:: with SMTP id v2mr3386487ljg.115.1602584194885; Tue, 13 Oct 2020 03:16:34 -0700 (PDT) Received: from localhost.localdomain ([62.141.212.102]) by smtp.gmail.com with ESMTPSA id b14sm2075320lfo.39.2020.10.13.03.16.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2020 03:16:34 -0700 (PDT) From: Janusz Dziedzic To: hostap@lists.infradead.org Subject: [PATCH 1/2] tests: multi_ap pass params_backhaul Date: Tue, 13 Oct 2020 12:16:26 +0200 Message-Id: <20201013101627.17868-1-janusz.dziedzic@gmail.com> X-Mailer: git-send-email 2.17.1 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201013_061638_412142_42AEFA64 X-CRM114-Status: GOOD ( 11.76 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:234 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [janusz.dziedzic[at]gmail.com] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain X-BeenThere: hostap@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: j@w1.fi, Janusz Dziedzic MIME-Version: 1.0 Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Pass backhaul params as a parameter. This is preparation for channel switch test for multi_ap. Signed-off-by: Janusz Dziedzic --- tests/hwsim/test_multi_ap.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/hwsim/test_multi_ap.py b/tests/hwsim/test_multi_ap.py index 4070d3ea7..4e32b8cfd 100644 --- a/tests/hwsim/test_multi_ap.py +++ b/tests/hwsim/test_multi_ap.py @@ -63,7 +63,7 @@ def test_multi_ap_fronthaul_on_ap(dev, apdev): if "CTRL-EVENT-DISCONNECTED" not in ev: raise Exception("Unexpected connection result") -def run_multi_ap_wps(dev, apdev, params, multi_ap_bssid=None): +def run_multi_ap_wps(dev, apdev, params, params_backhaul=None): """Helper for running Multi-AP WPS tests dev[0] does multi_ap WPS, dev[1] does normal WPS. apdev[0] is the fronthaul @@ -72,8 +72,12 @@ def run_multi_ap_wps(dev, apdev, params, multi_ap_bssid=None): the WPS parameters. multi_ap_bssid must be given if it is not equal to the fronthaul BSSID.""" - if multi_ap_bssid is None: + if params_backhaul: + hapd_backhaul = hostapd.add_ap(apdev[1], params_backhaul) + multi_ap_bssid = hapd_backhaul.own_addr() + else: multi_ap_bssid = apdev[0]['bssid'] + params.update({"wps_state": "2", "eap_server": "1"}) # WPS with multi-ap station dev[0] @@ -163,9 +167,8 @@ def test_multi_ap_wps_split(dev, apdev): params_backhaul = hostapd.wpa2_params(ssid=backhaul_ssid, passphrase=backhaul_passphrase) params_backhaul.update({"multi_ap": "1"}) - hapd_backhaul = hostapd.add_ap(apdev[1], params_backhaul) - run_multi_ap_wps(dev, apdev, params, hapd_backhaul.own_addr()) + run_multi_ap_wps(dev, apdev, params, params_backhaul) def test_multi_ap_wps_split_psk(dev, apdev): """WPS on split fronthaul and backhaul AP""" @@ -178,9 +181,8 @@ def test_multi_ap_wps_split_psk(dev, apdev): "multi_ap_backhaul_wpa_psk": backhaul_psk}) params_backhaul = hostapd.wpa2_params(ssid=backhaul_ssid) params_backhaul.update({"multi_ap": "1", "wpa_psk": backhaul_psk}) - hapd_backhaul = hostapd.add_ap(apdev[1], params_backhaul) - run_multi_ap_wps(dev, apdev, params, hapd_backhaul.own_addr()) + run_multi_ap_wps(dev, apdev, params, params_backhaul) def test_multi_ap_wps_split_mixed(dev, apdev): """WPS on split fronthaul and backhaul AP with mixed-mode fronthaul""" @@ -195,9 +197,8 @@ def test_multi_ap_wps_split_mixed(dev, apdev): params_backhaul = hostapd.wpa2_params(ssid=backhaul_ssid, passphrase=backhaul_passphrase) params_backhaul.update({"multi_ap": "1"}) - hapd_backhaul = hostapd.add_ap(apdev[1], params_backhaul) - run_multi_ap_wps(dev, apdev, params, hapd_backhaul.own_addr()) + run_multi_ap_wps(dev, apdev, params, params_backhaul) def test_multi_ap_wps_split_open(dev, apdev): """WPS on split fronthaul and backhaul AP with open fronthaul""" @@ -209,9 +210,8 @@ def test_multi_ap_wps_split_open(dev, apdev): params_backhaul = hostapd.wpa2_params(ssid=backhaul_ssid, passphrase=backhaul_passphrase) params_backhaul.update({"multi_ap": "1"}) - hapd_backhaul = hostapd.add_ap(apdev[1], params_backhaul) - run_multi_ap_wps(dev, apdev, params, hapd_backhaul.own_addr()) + run_multi_ap_wps(dev, apdev, params, params_backhaul) def test_multi_ap_wps_fail_non_multi_ap(dev, apdev): """Multi-AP WPS on non-WPS AP fails""" From patchwork Tue Oct 13 10:16:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janusz Dziedzic X-Patchwork-Id: 1381440 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=pHLKAKPE; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=tWpTS8Wi; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4C9Wgk2Vfbz9sTv for ; Tue, 13 Oct 2020 21:17:22 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:MIME-Version:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:References:In-Reply-To:Message-Id:Date:Subject:To: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=9dcXOjr0T9tre7lXOgxRgGToXc1nRX7qw2UitfUSFms=; b=pHLKAKPEx7hzZG7hmnpPfdbF+Z bTX6N4eOWPfJ0nAq+mLB/GMpg8O3pShVqTr/ttov74ZwRxzt0EBl3xnbdTygs353RjoCXYjfuhJDQ w9BrZQgz7e20oV2GuuW1TknqGEGl9q3BR+6KSGc6UERmDUtv0fbp0+a7aQIf9tcLuNwpy2nPkxBn5 VE4h4PF2mQXixWHSYMp7w54htZK2ztZ25bAQH3sQENdx/msfY4LKM2erEVlJ/yw5CmAXOwsrvWVzm RrSkHHyPNhECgZyCP9QhsiLjUNw09kU2AApC6MQLfkuIyrE6qOchT7e4btFhqom/dw7wJMP/m1zJU GxJwzReA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kSHMJ-0000mY-KP; Tue, 13 Oct 2020 10:16:43 +0000 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kSHMF-0000k1-Lb for hostap@lists.infradead.org; Tue, 13 Oct 2020 10:16:40 +0000 Received: by mail-lf1-x136.google.com with SMTP id 184so21482677lfd.6 for ; Tue, 13 Oct 2020 03:16:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=/uWR7eVzN26eHf1iyEaX21QyTuk9d1vQqSOvRyg5sdc=; b=tWpTS8Wig/fe/v8nYoftJt2c9yjIg4Udn74J5k5RQ+hpApEXEWQ8/ri5WQSB/H6K7V pDIInaizm33PYp/960fNtQlFAm4xCV2No6HNecxRIQ+18eJ54FrTDIiZBIEByYrNw3ky 4ckJ7RbcB9K0RsqI4aPmaBbBR6TSPw9x8EjHUJsHeM7s7LEsc7bICG2yZaTZQaQwgylP j4OCSqMVJfE3FPaUGr4kdHec9Y8LKMzlDU+GZLSfg/j+VVeLeuGTGB37OjLT3eONpMLI y4q/9fnziFUJ0MxtNyOkpLT63A8i1JuDOOYzD3V/9cwdgycmhTNqtSswZuJY4TNWg4+K cX7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=/uWR7eVzN26eHf1iyEaX21QyTuk9d1vQqSOvRyg5sdc=; b=HSCquxcmMU8ZCRlefSKaTWYtGCAB3chtO42hKbNHg1Lg7AwNFVEgg4zdZNMy7xLvCO uE9eIJeLrHuUSqgF2+zX/vwkhY0dyqUSRRP0WICOvZnM2qiGtZpf39P8ZEmo+yARP7Y+ 8EHx8Ij2hDel8Lo8dZtB44bBdshD+P+yELupYn0MAeFh/FiZmEqd1fg2Cw/P9EW3rd/H QaeDqCi8LGmca+xOJc8kUqmnQ7hZy1tf+AcN6Nbu0BJV2K40K6+iMVPm+2XGqflRHfz9 fsMc8ADuG1dBGORw3zg/rOkUhj84lJnMZtMoZzzyUnRXUp3JcI4Xz7s7M9NjZKNAdlf7 S3xA== X-Gm-Message-State: AOAM532r5nPk5dYtgcR73npv35Uqwc7MwIQ/EEx+RVmj6oOQeKutU32w BNcqIhfNlHLGY76PpYl471tzLSCUZZY= X-Google-Smtp-Source: ABdhPJzhetVsuKn2VhlunJd8iYSJZSbaP8ntFszKtKaHUDlDqkxMr0hpmoJO8MgbotrGany//MrqkA== X-Received: by 2002:a19:97:: with SMTP id 145mr7539430lfa.277.1602584196191; Tue, 13 Oct 2020 03:16:36 -0700 (PDT) Received: from localhost.localdomain ([62.141.212.102]) by smtp.gmail.com with ESMTPSA id b14sm2075320lfo.39.2020.10.13.03.16.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2020 03:16:35 -0700 (PDT) From: Janusz Dziedzic To: hostap@lists.infradead.org Subject: [PATCH 2/2] tests: multi AP extend tests Date: Tue, 13 Oct 2020 12:16:27 +0200 Message-Id: <20201013101627.17868-2-janusz.dziedzic@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201013101627.17868-1-janusz.dziedzic@gmail.com> References: <20201013101627.17868-1-janusz.dziedzic@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201013_061639_746346_D99353BF X-CRM114-Status: GOOD ( 17.71 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:136 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [janusz.dziedzic[at]gmail.com] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain X-BeenThere: hostap@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: j@w1.fi, Janusz Dziedzic MIME-Version: 1.0 Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Add option to: - add new AP on the same phy that bhaul-sta using - run CSA from the parent Adding new AP (bhaul/fhaul) on the same phy we have for bhaul-sta is closer to the real repeater implementation. Add test case for that and run CSA. This is common problem when we have on the same phy: - connected bhaul STA - we started fhaul/bhaul AP - we receive (from parent) CSA on sta interface This is multi_ap_wps_shared_apdev_csa test case, which fail today - even with hwsim. This also fail with ath9k. Signed-off-by: Janusz Dziedzic --- tests/hwsim/test_multi_ap.py | 56 ++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/tests/hwsim/test_multi_ap.py b/tests/hwsim/test_multi_ap.py index 4e32b8cfd..73a60af39 100644 --- a/tests/hwsim/test_multi_ap.py +++ b/tests/hwsim/test_multi_ap.py @@ -63,8 +63,8 @@ def test_multi_ap_fronthaul_on_ap(dev, apdev): if "CTRL-EVENT-DISCONNECTED" not in ev: raise Exception("Unexpected connection result") -def run_multi_ap_wps(dev, apdev, params, params_backhaul=None): - """Helper for running Multi-AP WPS tests +def run_multi_ap_wps(dev, apdev, params, params_backhaul=None, add_apdev=False, run_csa=False): + """Help/er for running Multi-AP WPS tests dev[0] does multi_ap WPS, dev[1] does normal WPS. apdev[0] is the fronthaul BSS. If there is a separate backhaul BSS, it must have been set up by the @@ -72,6 +72,8 @@ def run_multi_ap_wps(dev, apdev, params, params_backhaul=None): the WPS parameters. multi_ap_bssid must be given if it is not equal to the fronthaul BSSID.""" + wpas_apdev = None + if params_backhaul: hapd_backhaul = hostapd.add_ap(apdev[1], params_backhaul) multi_ap_bssid = hapd_backhaul.own_addr() @@ -134,6 +136,36 @@ def run_multi_ap_wps(dev, apdev, params, params_backhaul=None): if len(dev[1].list_networks()) != 1: raise Exception("Unexpected number of network blocks") + try: + # Add apdev to the same phy that dev[0] + if add_apdev: + wpas_apdev = {} + wpas_apdev['ifname'] = dev[0].ifname + "_ap" + status, buf = dev[0].cmd_execute(['iw', dev[0].ifname, 'interface', 'add', wpas_apdev['ifname'], 'type', 'managed']) + if status != 0: + raise Exception("iw interface add failed") + wpas_hapd = hostapd.add_ap(wpas_apdev, params) + + if run_csa: + if 'OK' not in hapd.request("CHAN_SWITCH 5 2462 ht"): + raise Exception("chan switch request failed") + + ev = hapd.wait_event(["AP-CSA-FINISHED"], timeout=5) + if not ev: + raise Exception("chan switch failed") + + # now check station + ev = dev[0].wait_event(["CTRL-EVENT-CHANNEL-SWITCH"], timeout=5) + if not ev: + raise Exception("sta - no chanswitch event") + + if add_apdev: + dev[0].cmd_execute(['iw', wpas_apdev['ifname'], 'del']) + except: + if wpas_apdev: + dev[0].cmd_execute(['iw', wpas_apdev['ifname'], 'del']) + raise + def test_multi_ap_wps_shared(dev, apdev): """WPS on shared fronthaul/backhaul AP""" ssid = "multi-ap-wps" @@ -144,6 +176,26 @@ def test_multi_ap_wps_shared(dev, apdev): "multi_ap_backhaul_wpa_passphrase": passphrase}) run_multi_ap_wps(dev, apdev, params) +def test_multi_ap_wps_shared_csa(dev, apdev): + """WPS on shared fronthaul/backhaul AP, run CSA""" + ssid = "multi-ap-wps-csa" + passphrase = "12345678" + params = hostapd.wpa2_params(ssid=ssid, passphrase=passphrase) + params.update({"multi_ap": "3", + "multi_ap_backhaul_ssid": '"%s"' % ssid, + "multi_ap_backhaul_wpa_passphrase": passphrase}) + run_multi_ap_wps(dev, apdev, params, run_csa=True) + +def test_multi_ap_wps_shared_apdev_csa(dev, apdev): + """WPS on shared fronthaul/backhaul AP add apdev on same phy and run CSA""" + ssid = "multi-ap-wps-apdev-csa" + passphrase = "12345678" + params = hostapd.wpa2_params(ssid=ssid, passphrase=passphrase) + params.update({"multi_ap": "3", + "multi_ap_backhaul_ssid": '"%s"' % ssid, + "multi_ap_backhaul_wpa_passphrase": passphrase}) + run_multi_ap_wps(dev, apdev, params, add_apdev=True, run_csa=True) + def test_multi_ap_wps_shared_psk(dev, apdev): """WPS on shared fronthaul/backhaul AP using PSK""" ssid = "multi-ap-wps"