From patchwork Fri Feb 26 09:38:43 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janusz.Dziedzic@tieto.com X-Patchwork-Id: 588875 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2001:1868:205::9]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 1CE861402AC for ; Fri, 26 Feb 2016 21:48:05 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=tieto.com header.i=@tieto.com header.b=WIQLWxcO; dkim-atps=neutral Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1aZFw2-0007WN-SG; Fri, 26 Feb 2016 10:47:46 +0000 Received: from mail-wm0-x233.google.com ([2a00:1450:400c:c09::233]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1aZEsI-0004Dk-Qa for hostap@lists.infradead.org; Fri, 26 Feb 2016 09:39:54 +0000 Received: by mail-wm0-x233.google.com with SMTP id a4so62202891wme.1 for ; Fri, 26 Feb 2016 01:39:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tieto.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=v/2mNUuGa9C5TdjgpoErR2W7TCtG0DSx0R3kuwf0F/4=; b=WIQLWxcOCCEG9Nzg1qRtrG7iDRLBsQtgYqYzHbxfRRXTJjmWvVjuHDJiTCMbZXupM/ TnqwA9hjyId9loD63Yr5bXh3U8bmn7tpjwJOj0l0AP8PKrcLrE55JPMOg+NAkGlCN5Hm hmkbiGLoGf2Cfi8KZB5EG/w/hJlPPbcONob6Q= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=v/2mNUuGa9C5TdjgpoErR2W7TCtG0DSx0R3kuwf0F/4=; b=kubhXj21XH6o+MXKDq4dRDG7UkVmj1bGTBvMUdLib2ehBUZhgTjxVHlaZTdx0GcHaK f827XEuEeMzPK6pGu/bkh7F7Z6Qh7Ow0HGDrDz4cNHTlRt3CEWf6RL5G/RRunE2TAvds yHeQxh5MT20M/FHuIXDGi2361JmEeDFEuhqfyhif74EAGGDulWFVmiuczGt5XXOB1LtU qnyoMd/N74oLutH1z6rKSfr65VUqfnevlEIjD/1shUoehVrQAsnSbT9bsEzX6WUQSxZt k37+f4tGITsk02BTQoggr1lXITSANXEU77G4/EkZG0kPUmjDvQTpfuQPW/OYP3Mr9prp KFHQ== X-Gm-Message-State: AD7BkJKaW4Z2dnXMZRwPOiBoza3SdKEfZ+0koP92ewHotKQv+viiZ2nBGZeMTHl98a32+/Y5hxEFA3pBFWybmxFwNFQ+x9kIBb4sl5j2eXX8MGQXcH4xBX+jlxH/ljoyy6NTruEahf3eFHbO9ORPm6ghf1kQhTnY0DCmDIKCqhWJ3h6W6caBfaZJe6pNsXxZKo8c X-Received: by 10.28.226.212 with SMTP id z203mr2119205wmg.78.1456479569417; Fri, 26 Feb 2016 01:39:29 -0800 (PST) Received: from dell6430.guest.wifi ([91.198.246.8]) by smtp.gmail.com with ESMTPSA id z65sm1915950wmg.1.2016.02.26.01.39.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 26 Feb 2016 01:39:28 -0800 (PST) From: Janusz Dziedzic To: hostap@lists.infradead.org Subject: [PATCH v4 28/29] tests/remote: Add TP tests for AP STA. Date: Fri, 26 Feb 2016 10:38:43 +0100 Message-Id: <1456479524-14185-29-git-send-email-janusz.dziedzic@tieto.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1456479524-14185-1-git-send-email-janusz.dziedzic@tieto.com> References: <1456479524-14185-1-git-send-email-janusz.dziedzic@tieto.com> X-DomainID: tieto.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160226_013951_600495_7153B927 X-CRM114-Status: GOOD ( 11.45 ) X-Spam-Score: -2.0 (--) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-2.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid X-Mailman-Approved-At: Fri, 26 Feb 2016 02:47:45 -0800 X-BeenThere: hostap@lists.infradead.org X-Mailman-Version: 2.1.20 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 Allow to run TP tests for STA and AP for open/tkip/ccmp/web encryption. This can be also run as a standalone script. Signed-off-by: Janusz Dziedzic --- tests/remote/test_ap_sta_tp.py | 1034 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1034 insertions(+) create mode 100755 tests/remote/test_ap_sta_tp.py diff --git a/tests/remote/test_ap_sta_tp.py b/tests/remote/test_ap_sta_tp.py new file mode 100755 index 0000000..0fa5008 --- /dev/null +++ b/tests/remote/test_ap_sta_tp.py @@ -0,0 +1,1034 @@ +#!/usr/bin/env python +# +# TP tests for STA/AP open/tkip/ccmp/wep +# Copyright (c) 2016, Tieto Corporation +# +# This software may be distributed under the terms of the BSD license. +# See README for more details. +"USAGE: %s --dut= [--ref=] [--test_type=<>] [--dut_type=] [--channel=<>] [--bw=<>] [--country=<>] [--test_time=<>] [--parallel=<>] [--qos=] [--security=<>] [--verbose]" +import time +import traceback +import config +import os +import sys +import getopt + +import logging +logger = logging.getLogger() + +scriptsdir = os.path.dirname(os.path.realpath(sys.modules[__name__].__file__)) +sys.path.append(os.path.join(scriptsdir, '..', '..', 'wpaspy')) +sys.path.append(os.path.join(scriptsdir, '..', 'hwsim')) + +import utils +import wpaspy +from wpasupplicant import WpaSupplicant +import hostapd + +def run_ap_sta(devices, setup_params, ref, dut, dut_type="ap"): + if dut_type == "ap": + ref_flags = "STA_VHT80" + elif dut_type == "sta": + ref_flags = "AP_VHT80" + else: + raise Exception("Unknown dut_type", dut_type) + + ref_dev = config.get_device(devices, name=ref, flags=ref_flags) + if ref_dev is None: + raise Exception("Could not get reference device") + + dut_dev = config.get_dut(devices, dut) + if dut_dev is None: + config.put_device(ref_dev) + raise Exception("Could not get DUT device") + + logger.debug("ref_dev: " + ref_dev['name']) + logger.debug("dut_dev: " + dut_dev['name']) + + if dut_type == "ap": + ap, ap_log = utils.run_hostapd(dut_dev, setup_params) + sta, sta_log = utils.run_wpasupplicant(ref_dev, setup_params) + elif dut_type == "sta": + ap, ap_log = utils.run_hostapd(ref_dev, setup_params) + sta, sta_log = utils.run_wpasupplicant(dut_dev, setup_params) + else: + raise Exception("Unknown dut_type", dut_type) + + return sta, ap, sta_log, ap_log + +def run_tp_test(server, client, l3="ipv4", iperf="iperf", l4="tcp", test_time="10", parallel="5", + qos="be", bw="30M", ifname=None, port="5001"): + client_res = [] + server_res = [] + + server_ip = utils.get_ip(server, l3) + time.sleep(1) + server_thread, client_thread = utils.iperf_run(server, client, server_ip, client_res, server_res, + l3=l3, iperf=iperf, l4=l4, test_time=test_time, + parallel=parallel, qos=qos, bw=bw, ifname=ifname, + port=port) + utils.iperf_wait(server, client, server_thread, client_thread, iperf=iperf, timeout=int(test_time) + 10) + + if client_res[0] != 0: + raise Exception(iperf + " client: " + client_res[1]) + if server_res[0] != 0: + raise Exception(iperf + " server: " + server_res[1]) + if client_res[1] is None: + raise Exception(iperf + " client result issue") + if server_res[1] is None: + raise Exception(iperf + " server result issue") + + if iperf == "iperf": + result = server_res[1] + if iperf == "iperf3": + result = client_res[1] + + speed = utils.get_iperf_speed(result) + return speed + +def get_ap_params(channel="1", bw="HT20", country="US", security="open"): + ssid = "test_" + channel + "_" + security + "_" + bw + + if bw == "b_only": + params = hostapd.b_only_params(channel, ssid, country) + elif bw == "g_only": + params = hostapd.g_only_params(channel, ssid, country) + elif bw == "g_only_wmm": + params = hostapd.g_only_params(channel, ssid, country) + params['wmm_enabled'] = "1" + elif bw == "a_only": + params = hostapd.a_only_params(channel, ssid, country) + elif bw == "a_only_wmm": + params = hostapd.a_only_params(channel, ssid, country) + params['wmm_enabled'] = "1" + elif bw == "HT20": + params = hostapd.ht20_params(channel, ssid, country) + elif bw == "HT40+": + params = hostapd.ht40_plus_params(channel, ssid, country) + elif bw == "HT40-": + params = hostapd.ht40_minus_params(channel, ssid, country) + elif bw == "VHT80": + params = hostapd.ht40_plus_params(channel, ssid, country) + params['ieee80211ac'] = "1" + params['vht_oper_chwidth'] = "1" + params['vht_oper_centr_freq_seg0_idx'] = str(int(channel) + 6) + else: + params = {} + + # now setup security params + if security == "tkip": + sec_params = hostapd.wpa_params(passphrase="testtest") + elif security == "ccmp": + sec_params = hostapd.wpa2_params(passphrase="testtest") + elif security == "mixed": + sec_params = hostapd.wpa_mixed_params(passphrase="testtest") + elif security == "wep": + sec_params = { "wep_key0" : "123456789a", + "wep_default_key" : "0", + "auth_algs" : "1"} + elif security == "wep_shared": + sec_params = { "wep_key0" : "123456789a", + "wep_default_key" : "0", + "auth_algs" : "2" } + else: + sec_params = {} + + params.update(sec_params) + + return params + +def get_iperf_bw(bw, parallel, spacial_streams=2): + if bw == "b_only": + max_tp = 11 + elif bw == "g_only" or bw == "g_only_wmm" or bw == "a_only" or bw == "a_only_wmm": + max_tp = 54 + elif bw == "HT20": + max_tp = 72 * spacial_streams + elif bw == "HT40+" or bw == "HT40-": + max_tp = 150 * spacial_streams + elif bw == "VHT80": + max_tp = 433 * spacial_streams + else: + max_tp = 150 + + max_tp = 1.1 * max_tp + + return str(int(max_tp/int(parallel))) + "M" + +def ap_sta_test(devices, setup_params, ref=None, dut=None, test_type="ipv4_ping", + channel="1", bw="HT20", country=None, test_time="10", parallel="5", qos="be", + security="open", dut_type="ap"): + try: + sta = None + ap = None + hapd = None + wpas = None + sta_log = None + ap_log = None + + local_log_dir = setup_params['local_log_dir'] + + # setup country code + if country is None: + try: + country = setup_params['country'] + except: + country = "00" + + # run hostapd/wpa_supplicant + sta, ap, sta_log, ap_log = run_ap_sta(devices, setup_params, ref, dut, dut_type) + ap_params = get_ap_params(channel, bw, country, security) + iperf_bw = get_iperf_bw(bw, parallel) + + # setup AP/STA + hapd = hostapd.add_ap(ap.ifname, ap_params, hostname = ap.host, port = ap.port) + freq = hapd.get_status_field("freq") + wpas = WpaSupplicant(hostname = sta.host, global_iface="udp", global_port = sta.port) + wpas.interface_add(sta.ifname) + + if security == "open": + wpas.connect(ap_params['ssid'], key_mgmt="NONE", scan_freq=freq) + elif security == "wep": + wpas.connect(ap_params['ssid'], key_mgmt="NONE", wep_key0=ap_params['wep_key0'], wep_default_key="0", scan_freq=freq) + elif security == "wep_shared": + wpas.connect(ap_params['ssid'], key_mgmt="NONE", wep_key0=ap_params['wep_key0'], wep_default_key="0", auth_alg="SHARED", scan_freq=freq) + else: + wpas.connect(ap_params['ssid'], key_mgmt=ap_params['wpa_key_mgmt'], psk=ap_params['wpa_passphrase'], scan_req=freq) + + ev = hapd.wait_event([ "AP-STA-CONNECTED" ], timeout=5) + if ev is None: + raise Exception("No connection event received from hostapd") + + # setup ip network + ap.execute("ifconfig " + ap.ifname + " " + utils.get_ipv4_addr(setup_params, 1)) + sta.execute("ifconfig " + sta.ifname + " " + utils.get_ipv4_addr(setup_params, 2)) + + # dispatch test_type + if test_type == "ipv4_tcp_download": + speed = run_tp_test(ap, sta, "ipv4", setup_params['iperf'], l4="tcp", + test_time=test_time, parallel=parallel, qos=qos, + bw=iperf_bw) + append = speed + elif test_type == "ipv4_tcp_upload": + speed = run_tp_test(sta, ap, "ipv4", setup_params['iperf'], l4="tcp", + test_time=test_time, parallel=parallel, qos=qos, + bw=iperf_bw) + append = speed + elif test_type == "ipv6_tcp_download": + speed = run_tp_test(ap, sta, "ipv6", setup_params['iperf'], l4="tcp", + test_time=test_time, parallel=parallel, qos=qos, + bw=iperf_bw) + append = speed + elif test_type == "ipv6_tcp_upload": + speed = run_tp_test(sta, ap, "ipv6", setup_params['iperf'], l4="tcp", + test_time=test_time, parallel=parallel, qos=qos, + bw=iperf_bw) + append = speed + elif test_type == "ipv4_udp_download": + speed = run_tp_test(ap, sta, "ipv4", setup_params['iperf'], l4="udp", + test_time=test_time, parallel=parallel, qos=qos, + bw=iperf_bw) + append = speed + elif test_type == "ipv4_udp_upload": + speed = run_tp_test(sta, ap, "ipv4", setup_params['iperf'], l4="udp", + test_time=test_time, parallel=parallel, qos=qos, + bw=iperf_bw) + append = speed + elif test_type == "ipv6_udp_download": + speed = run_tp_test(ap, sta, "ipv6", setup_params['iperf'], l4="udp", + test_time=test_time, parallel=parallel, qos=qos, + bw=iperf_bw) + append = speed + elif test_type == "ipv6_udp_upload": + speed = run_tp_test(sta, ap, "ipv6", setup_params['iperf'], l4="udp", + test_time=test_time, parallel=parallel, qos=qos, + bw=iperf_bw) + append = speed + elif test_type == "ipv4_ping": + ap_sta, sta_ap = utils.check_connectivity(ap, sta, "ipv4") + append = "packet_loss: " + ap_sta + ", " + sta_ap + elif test_type == "ipv6_ping": + ap_sta, sta_ap = utils.check_connectivity(ap, sta, "ipv6") + append = "packet_loss: " + ap_sta + ", " + sta_ap + else: + raise Exception("Unknown ap_open test_type:", test_type) + + wpas.request("DISCONNECT") + ev = hapd.wait_event([ "AP-STA-DISCONNECTED" ], timeout=5) + if ev is None: + raise Exception("No disconnection event received from hostapd") + + sta.execute("ifconfig " + sta.ifname + " 0.0.0.0") + ap.execute("ifconfig " + ap.ifname + " 0.0.0.0") + + wpas.interface_remove(sta.ifname) + wpas.terminate() + + hapd.close_ctrl() + hostapd.remove_bss(ap.ifname, ap.host, ap.port) + hostapd.terminate(ap.host, ap.port) + + if sta_log: +# sta.local_execute("scp root@[" + sta.host + "]:" + sta_log + " " + local_log_dir) + sta.execute("rm " + sta_log) + if ap_log: +# ap.local_execute("scp root@[" + ap.host + "]:" + ap_log + " " + local_log_dir) + ap.execute("rm " + ap_log) + + config.put_device(devices, ap.name) + config.put_device(devices, sta.name) + + return 0, append + except: + logger.info(traceback.format_exc()) + if wpas: + try: + wpas.interface_remove(sta.ifname) + wpas.terminate() + except: + pass + if hapd: + try: + hapd.close_ctrl() + hostapd.remove_bss(ap.ifname, ap.host, ap.port) + hostapd.terminate(ap.host, ap.port) + except: + pass + if sta: + sta.execute("ifconfig " + sta.ifname + " 0.0.0.0") + sta.execute("killall wpa_supplicant") + sta.execute("killall iperf") + if sta_log: + sta.local_execute("scp root@[" + sta.host + "]:" + sta_log + " " + local_log_dir) + sta.execute("rm " + sta_log) + config.put_device(devices, sta.name) + if ap: + ap.execute("ifconfig " + ap.ifname + " 0.0.0.0") + ap.execute("killall hostapd") + ap.execute("killall iperf") + if ap_log: + ap.local_execute("scp root@[" + ap.host + "]:" + ap_log + " " + local_log_dir) + ap.execute("rm " + ap_log) + config.put_device(devices, sta.name) + raise + +# basic sanity tests +def test_sanity_ap_open_ipv4_ping(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration IPv4 ping""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_ping") + +def test_sanity_ap_open_ipv6_ping(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration IPv6""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_ping") + +def test_sanity_sta_open_ipv4_ping(devices, setup_params, ref=None, dut=None): + """STA with open mode (no security) configuration IPv4 ping""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_ping", dut_type="sta") + +def test_sanity_sta_open_ipv6_ping(devices, setup_params, ref=None, dut=None): + """STA with open mode (no security) configuration IPv6""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_ping", dut_type="sta") + +def test_sanity_ap_ccmp_ipv4_ping(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration IPv4 ping""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_ping", security="ccmp") + +def test_sanity_ap_ccmp_ipv6_ping(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration IPv6""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_ping", security="ccmp") + +def test_sanity_sta_ccmp_ipv4_ping(devices, setup_params, ref=None, dut=None): + """STA with CCMP configuration IPv4 ping""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_ping", dut_type="sta", security="ccmp") + +def test_sanity_sta_ccmp_ipv6_ping(devices, setup_params, ref=None, dut=None): + """STA with CCMP configuration IPv6""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_ping", dut_type="sta", security="ccmp") + +def test_sanity_ap_mixed_ipv4_ping(devices, setup_params, ref=None, dut=None): + """AP with mixed TKIP/CCMP configuration IPv4 ping""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_ping", security="mixed") + +def test_sanity_ap_mixed_ipv6_ping(devices, setup_params, ref=None, dut=None): + """AP with mixed TKIP/CCMP configuration IPv6""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_ping", security="mixed") + +def test_sanity_sta_mixed_ipv4_ping(devices, setup_params, ref=None, dut=None): + """STA with mixed TKIP/CCMP configuration IPv4 ping""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_ping", dut_type="sta", security="mixed") + +def test_sanity_sta_mixed_ipv6_ping(devices, setup_params, ref=None, dut=None): + """STA with mixed TKIP/CCMP configuration IPv6""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_ping", dut_type="sta", security="mixed") + +def test_sanity_ap_tkip_ipv4_ping(devices, setup_params, ref=None, dut=None): + """AP with TKIP configuration IPv4 ping""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_ping", security="tkip") + +def test_sanity_ap_tkip_ipv6_ping(devices, setup_params, ref=None, dut=None): + """AP with TKIP configuration IPv6""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_ping", security="tkip") + +def test_sanity_sta_tkip_ipv4_ping(devices, setup_params, ref=None, dut=None): + """STA with TKIP configuration IPv4 ping""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_ping", dut_type="sta", security="tkip") + +def test_sanity_sta_tkip_ipv6_ping(devices, setup_params, ref=None, dut=None): + """STA with TKIP configuration IPv6""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_ping", dut_type="sta", security="tkip") + +def test_sanity_ap_wep_ipv4_ping(devices, setup_params, ref=None, dut=None): + """AP with WEP configuration IPv4 ping""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_ping", security="wep") + +def test_sanity_ap_wep_ipv6_ping(devices, setup_params, ref=None, dut=None): + """AP with WEP configuration IPv6""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_ping", security="wep") + +def test_sanity_sta_wep_ipv4_ping(devices, setup_params, ref=None, dut=None): + """STA with WEP configuration IPv4 ping""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_ping", dut_type="sta", security="wep") + +def test_sanity_sta_wep_ipv6_ping(devices, setup_params, ref=None, dut=None): + """STA with WEP configuration IPv6""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_ping", dut_type="sta", security="wep") + +def test_sanity_ap_wep_shared_ipv4_ping(devices, setup_params, ref=None, dut=None): + """AP with WEP shared configuration IPv4 ping""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_ping", security="wep_shared") + +def test_sanity_ap_wep_shared_ipv6_ping(devices, setup_params, ref=None, dut=None): + """AP with WEP shared configuration IPv6""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_ping", security="wep_shared") + +def test_sanity_sta_wep_shared_ipv4_ping(devices, setup_params, ref=None, dut=None): + """STA with WEP shared configuration IPv4 ping""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_ping", dut_type="sta", security="wep_shared") + +def test_sanity_sta_wep_shared_ipv6_ping(devices, setup_params, ref=None, dut=None): + """STA with WEP shared configuration IPv6""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_ping", dut_type="sta", security="wep_shared") + +# B-only +def test_ap_open_2412_b_only_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 B-only IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="1", bw="b_only") + +def test_ap_open_2412_b_only_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 B-only IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="1", bw="b_only") + +def test_ap_open_2412_b_only_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 B-only IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="1", bw="b_only") + +def test_ap_open_2412_b_only_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 B-only IPv4 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_download", channel="1", bw="b_only") + +def test_ap_open_2412_b_only_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 B-only IPv6 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="1", bw="b_only") + +def test_ap_open_2412_b_only_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 B-only IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_download", channel="1", bw="b_only") + +def test_ap_open_2412_b_only_ipv6_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 B-only IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="1", bw="b_only") + +def test_ap_open_2412_b_only_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 B-only IPv6 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_download", channel="1", bw="b_only") +def test_ap_open_all_chan_b_only_ipv4_ping(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration all channels B-only IPv4 ping""" + try: + country = setup_params['country'] + except: + country = "US" + + chan = 1 + append = country + " " + while chan < 15: + try: + status, buf = ap_sta_test(devices, setup_params, ref, dut, "ipv4_ping", channel=str(chan), + bw="b_only", country = country) + if status == 0: + append = append + str(chan) + ": OK " + else: + append = append + str(chan) + ": FAILED <" + buf + ">" + except: + append = append + str(chan) + ": FAILED " + chan = chan + 1 + + return 0, append + + +# G-only +def test_ap_open_2462_g_only_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="11", bw="g_only") + +def test_ap_open_2462_g_only_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="11", bw="g_only") + +def test_ap_open_2462_g_only_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="11", bw="g_only") + +def test_ap_open_2462_g_only_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only IPv4 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_download", channel="11", bw="g_only") + +def test_ap_open_2462_g_only_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only IPv6 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="11", bw="g_only") + +def test_ap_open_2462_g_only_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_download", channel="11", bw="g_only") + +def test_ap_open_2462_g_only_ipv6_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="11", bw="g_only") + +def test_ap_open_2462_g_only_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only IPv6 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_download", channel="11", bw="g_only") + +# G-only + WMM +def test_ap_open_2412_g_only_wmm_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only WMM IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="1", bw="g_only_wmm") + +def test_ap_open_2412_g_only_wmm_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only WMM IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="1", bw="g_only_wmm") + +def test_ap_open_2412_g_only_wmm_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only WMM IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="1", bw="g_only_wmm") + +def test_ap_open_2412_g_only_wmm_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only WMM IPv4 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_download", channel="1", bw="g_only_wmm") + +def test_ap_open_2412_g_only_wmm_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only WMM IPv6 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="1", bw="g_only_wmm") + +def test_ap_open_2412_g_only_wmm_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only WMM IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_download", channel="1", bw="g_only_wmm") + +def test_ap_open_2412_g_only_wmm_ipv6_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only WMM IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="1", bw="g_only_wmm") + +def test_ap_open_2412_g_only_wmm_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 G-only WMM IPv6 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_download", channel="1", bw="g_only_wmm") + + +# A-only +def test_ap_open_5180_a_only_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="36", bw="a_only") + +def test_ap_open_5180_a_only_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="36", bw="a_only") + +def test_ap_open_5180_a_only_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="36", bw="a_only") + +def test_ap_open_5180_a_only_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_download", channel="36", bw="a_only") + +def test_ap_open_5180_a_only_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only IPv6 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="36", bw="a_only") + +def test_ap_open_5180_a_only_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_download", channel="36", bw="a_only") + +def test_ap_open_5180_a_only_ipv6_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="36", bw="a_only") + +def test_ap_open_5180_a_only_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_download", channel="36", bw="a_only") + + +# A-only + WMM +def test_ap_open_5180_a_only_wmm_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only WMM IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="36", bw="a_only_wmm") + +def test_ap_open_5180_a_only_wmm_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only WMM IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="36", bw="a_only_wmm") + +def test_ap_open_5180_a_only_wmm_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only WMM IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="36", bw="a_only_wmm") + +def test_ap_open_5180_a_only_wmm_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only WMM IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_download", channel="36", bw="a_only_wmm") + +def test_ap_open_5180_a_only_wmm_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only WMM IPv6 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="36", bw="a_only_wmm") + +def test_ap_open_5180_a_only_wmm_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only WMM IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_download", channel="36", bw="a_only_wmm") + +def test_ap_open_5180_a_only_wmm_ipv6_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only WMM IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="36", bw="a_only_wmm") + +def test_ap_open_5180_a_only_wmm_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 A-only WMM IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_download", channel="36", bw="a_only_wmm") + + +# HT20 - 2G +def test_ap_open_2437_HT20_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2437 HT20 IPv4 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_download", channel="6", bw="HT20") + +def test_ap_open_2437_HT20_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2437 HT20 IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="6", bw="HT20") + +def test_ap_open_2437_HT20_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2437 HT20 IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="6", bw="HT20") + +def test_ap_open_2437_HT20_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2437 HT20 IPv4 dup upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="6", bw="HT20") + +def test_ap_open_2437_HT20_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2437 HT20 IPv6 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_download", channel="6", bw="HT20") + +def test_ap_open_2437_HT20_ipv6_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2437 HT20 IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="6", bw="HT20") + +def test_ap_open_2437_HT20_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2437 HT20 IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_download", channel="6", bw="HT20") + +def test_ap_open_2437_HT20_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2437 HT20 IPv6 dup upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="6", bw="HT20") + + +# HT40- 2G +def test_ap_open_2462_HT40_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 HT40- IPv4 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_download", channel="11", bw="HT40-") + +def test_ap_open_2462_HT40_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 HT40- IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="11", bw="HT40-") + +def test_ap_open_2462_HT40_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 HT40- IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="11", bw="HT40-") + +def test_ap_open_2462_HT40_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 HT40- IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="11", bw="HT40-") + +def test_ap_open_2462_HT40_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 HT40- IPv6 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_download", channel="11", bw="HT40-") + +def test_ap_open_2462_HT40_ipv6_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 HT40- IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="11", bw="HT40-") + +def test_ap_open_2462_HT40_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 HT40- IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_download", channel="11", bw="HT40-") + +def test_ap_open_2462_HT40_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2462 HT40- IPv6 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="11", bw="HT40-") + + +# HT40+ 2G +def test_ap_open_2412_HT40_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 HT40+ IPv4 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_download", channel="1", bw="HT40+") + +def test_ap_open_2412_HT40_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 HT40+ IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="1", bw="HT40+") + +def test_ap_open_2412_HT40_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 HT40+ IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="1", bw="HT40+") + +def test_ap_open_2412_HT40_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 HT40+ IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="1", bw="HT40+") + +def test_ap_open_2412_HT40_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 HT40+ IPv6 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_download", channel="1", bw="HT40+") + +def test_ap_open_2412_HT40_ipv6_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 HT40+ IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="1", bw="HT40+") + +def test_ap_open_2412_HT40_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 HT40+ IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_download", channel="1", bw="HT40+") + +def test_ap_open_2412_HT40_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 2412 HT40+ IPv6 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="1", bw="HT40+") + + +# HT20 - 5G +def test_ap_open_5180_HT20_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT20 IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="40", bw="HT20") + +def test_ap_open_5180_HT20_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT20 IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="40", bw="HT20") + +def test_ap_open_5180_HT20_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT20 IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="40", bw="HT20") + +def test_ap_open_5180_HT20_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT20 IPv4 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="40", bw="HT20") + +def test_ap_open_5180_HT20_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT20 IPv6 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="40", bw="HT20") + +def test_ap_open_5180_HT20_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT20 IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="40", bw="HT20") + +def test_ap_open_5180_HT20_ipv6_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT20 IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="40", bw="HT20") + +def test_ap_open_5180_HT20_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT20 IPv6 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="40", bw="HT20") + +# HT40+ 5G +def test_ap_open_5180_HT40_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT40 IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="36", bw="HT40+") + +def test_ap_open_5180_HT40_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT40 IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="36", bw="HT40+") + +def test_ap_open_5180_HT40_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT40 IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="36", bw="HT40+") + +def test_ap_open_5180_HT40_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT40 IPv4 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="36", bw="HT40+") + +def test_ap_open_5180_HT40_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT40 IPv6 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="36", bw="HT40+") + +def test_ap_open_5180_HT40_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT40 IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="36", bw="HT40+") + +def test_ap_open_5180_HT40_ipv6_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT40 IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="36", bw="HT40+") + +def test_ap_open_5180_HT40_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 HT40 IPv6 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="36", bw="HT40+") + +# HT40+ 5G 149 +def test_ap_open_5745_HT40_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5745 HT40 IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="149", bw="HT40+") + +def test_ap_open_5745_HT40_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5745 HT40 IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="149", bw="HT40+") + +def test_ap_open_5745_HT40_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5745 HT40 IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="149", bw="HT40+") + +def test_ap_open_5745_HT40_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5745 HT40 IPv4 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_download", channel="149", bw="HT40+") + +def test_ap_open_5745_HT40_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5745 HT40 IPv6 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="149", bw="HT40+") + +def test_ap_open_5745_HT40_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5745 HT40 IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_download", channel="149", bw="HT40+") + +def test_ap_open_5745_HT40_ipv6_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5745 HT40 IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="149", bw="HT40+") + +def test_ap_open_5745_HT40_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5745 HT40 IPv6 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_download", channel="149", bw="HT40+") + +# VHT80 +def test_ap_open_5180_VHT80_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 VHT80 IPv4 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_download", channel="36", bw="VHT80") + +def test_ap_open_5180_VHT80_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 VHT80 IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="36", bw="VHT80") + +def test_ap_open_5180_VHT80_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 VHT80 IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="36", bw="VHT80") + +def test_ap_open_5180_VHT80_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 VHT80 IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="36", bw="VHT80") + +def test_ap_open_5180_VHT80_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 VHT80 IPv6 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_download", channel="36", bw="VHT80") + +def test_ap_open_5180_VHT80_ipv6_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 VHT80 IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="36", bw="VHT80") + +def test_ap_open_5180_VHT80_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 VHT80 IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_download", channel="36", bw="VHT80") + +def test_ap_open_5180_VHT80_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with open mode (no security) configuration 5180 VHT80 IPv6 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="36", bw="VHT80") + +# 5G HT40 CCMP +def test_ap_ccmp_5180_HT40_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5180 HT40 IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="36", bw="HT40+", security="ccmp") + +def test_ap_ccmp_5180_HT40_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5180 HT40 IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="36", bw="HT40+", security="ccmp") + +def test_ap_ccmp_5180_HT40_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5180 HT40 IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="36", bw="HT40+", security="ccmp") + +def test_ap_ccmp_5180_HT40_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5180 HT40 IPv4 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_download", channel="36", bw="HT40+", security="ccmp") + +def test_ap_ccmp_5180_HT40_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5180 HT40 IPv6 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="36", bw="HT40+", security="ccmp") + +def test_ap_ccmp_5180_HT40_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5180 HT40 IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_download", channel="36", bw="HT40+", security="ccmp") + +def test_ap_ccmp_5180_HT40_ipv6_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5180 HT40 IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="36", bw="HT40+", security="ccmp") + +def test_ap_ccmp_5180_HT40_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5180 HT40 IPv6 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_download", channel="36", bw="HT40+", security="ccmp") + +# VHT80 CCMP +def test_ap_ccmp_5745_VHT80_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5745 VHT80 IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="149", bw="VHT80", security="ccmp") + +def test_ap_ccmp_5745_VHT80_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5745 VHT80 IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="149", bw="VHT80", security="ccmp") + +def test_ap_ccmp_5745_VHT80_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5745 VHT80 IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="149", bw="VHT80", security="ccmp") + +def test_ap_ccmp_5745_VHT80_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5745 VHT80 IPv4 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_download", channel="149", bw="VHT80", security="ccmp") + +def test_ap_ccmp_5745_VHT80_ipv6_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5745 VHT80 IPv6 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_upload", channel="149", bw="VHT80", security="ccmp") + +def test_ap_ccmp_5745_VHT80_ipv6_udp_download(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5745 VHT80 IPv6 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_udp_download", channel="149", bw="VHT80", security="ccmp") + +def test_ap_ccmp_5745_VHT80_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5745 VHT80 IPv6 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_upload", channel="149", bw="VHT80", security="ccmp") + +def test_ap_ccmp_5745_VHT80_ipv6_tcp_download(devices, setup_params, ref=None, dut=None): + """AP with CCMP configuration 5745 VHT80 IPv6 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv6_tcp_download", channel="149", bw="VHT80", security="ccmp") + +# 5G HT40 TKIP +def test_ap_tkip_5745_HT40_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with TKIP configuration 5745 HT40 IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="149", bw="HT40+", security="tkip") + +def test_ap_tkip_5745_HT40_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with TKIP configuration 5745 HT40 IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="149", bw="HT40+", security="tkip") + + +# 2G G-only WEP open +def test_ap_wep_2462_g_only_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with WEP open configuration 2462 G-only IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="11", bw="g_only", security="wep") + +def test_ap_wep_2462_g_only_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with WEP open configuration 2462 G-only IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="11", bw="g_only", security="wep") + +# 2G G-only WEP shared +def test_ap_wep_shared_2462_g_only_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """AP with WEP shared configuration 2462 G-only IPv4 udp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="11", bw="g_only", security="wep_shared") + +def test_ap_wep_shared_2462_g_only_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """AP with WEP shared configuration 2462 G-only IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="11", bw="g_only", security="wep_shared") + +# 5G STA open test +def test_sta_open_5180_VHT80_ipv4_udp_download(devices, setup_params, ref=None, dut=None): + """STA with open mode (no security) configuration 5180 VHT80 IPv4 udp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_download", channel="36", bw="VHT80", dut_type="sta") + +def test_sta_open_5180_VHT80_ipv4_udp_upload(devices, setup_params, ref=None, dut=None): + """STA with open mode (no security) configuration 5180 VHT80 IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_udp_upload", channel="36", bw="VHT80", dut_type="sta") + +def test_sta_open_5180_VHT80_ipv4_tcp_download(devices, setup_params, ref=None, dut=None): + """STA with open mode (no security) configuration 5180 VHT80 IPv4 tcp download""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_download", channel="36", bw="VHT80", dut_type="sta") + +def test_sta_open_5180_VHT80_ipv4_tcp_upload(devices, setup_params, ref=None, dut=None): + """STA with open mode (no security) configuration 5180 VHT80 IPv4 tcp upload""" + return ap_sta_test(devices, setup_params, ref, dut, "ipv4_tcp_upload", channel="36", bw="VHT80", dut_type="sta") + + +# This will allow to run tests directly - useful when need to run all combinations +def main(): + setup_params = config.get_setup_params() + devices = config.get_devices() + + setup_params['local_log_dir'] = "/tmp/" + + ref = None + dut = None + test_type = "ipv4_ping" + channel = "1" + bw = "HT20" + country = "PL" + test_time="10" + parallel="1" + qos="be" + security="open" + dut_type="sta" + verbose = False + + # parse input parameters + try: + opts, args = getopt.getopt(sys.argv[1:], "", ["ref=", "dut=", "test_type=", "dut_type=", "channel=", "bw=", "country=", "test_time=", "parallel=", "qos=", "security=", "verbose"]) + except getopt.GetoptError as err: + print(err) + print __doc__ %sys.argv[0] + sys.exit(2) + + for option, argument in opts: + if option == "--verbose": + verbose = True + elif option == "--dut": + dut = argument + elif option == "--ref": + ref = argument + elif option == "--test_type": + test_type = argument + elif option == "--dut_type": + dut_type = argument + elif option == "--channel": + channel = argument + elif option == "--bw": + bw = argument + elif option == "--country": + country = argument + elif option == "--test_time": + test_time = argument + elif option == "--parallel": + parallel = argument + elif option == "--qos": + qos = argument + elif option == "--security": + security = argument + else: + assert False, "unhandled option" + + if dut is None: + print __doc__ %sys.argv[0] + sys.exit(2) + + logger.setLevel(logging.DEBUG) + stdout_handler = logging.StreamHandler() + stdout_handler.setLevel(logging.WARNING) + if verbose: + stdout_handler.setLevel(logging.DEBUG) + logger.addHandler(stdout_handler) + + cmd = "" + for arg in sys.argv: + cmd = cmd + " " + arg + logger.warning("START: " + cmd) + + try: + res, append = ap_sta_test(devices=devices, setup_params=setup_params, ref=ref, dut=dut, + test_type=test_type, channel=channel, bw=bw, country=country, + test_time=test_time, parallel=parallel, qos=qos, + security=security, dut_type=dut_type) + if res == 0: + logger.warning("PASS (" + append + ")") + else: + logger.warning("FAILED") + except: + logger.warning("FAILED") + +if __name__ == "__main__": + main()