aboutsummaryrefslogtreecommitdiff
path: root/tests/remote/monitor.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/remote/monitor.py')
-rw-r--r--tests/remote/monitor.py193
1 files changed, 0 insertions, 193 deletions
diff --git a/tests/remote/monitor.py b/tests/remote/monitor.py
deleted file mode 100644
index 0f77d500bf30..000000000000
--- a/tests/remote/monitor.py
+++ /dev/null
@@ -1,193 +0,0 @@
-# Monitor support
-# Copyright (c) 2016, Tieto Corporation
-#
-# This software may be distributed under the terms of the BSD license.
-# See README for more details.
-
-import time
-from remotehost import Host
-import config
-import rutils
-import re
-import traceback
-import logging
-logger = logging.getLogger()
-import hostapd
-
-# standalone monitor with multi iface support
-def create(devices, setup_params, refs, duts, monitors):
- mons = []
- mhosts = []
- hosts = duts + refs
-
- # choose only standalone monitors
- for monitor in monitors:
- if monitor not in hosts and monitor != "all":
- mons.append(monitor)
-
- for mon in mons:
- word = mon.split(":")
- dev = config.get_device(devices, word[0])
- if dev is None:
- continue
-
- host = Host(host=dev['hostname'],
- ifname=dev['ifname'],
- port=dev['port'],
- name=dev['name'])
-
- for iface_param in word[1:]:
- params = iface_param.split(",")
- if len(params) > 3:
- monitor_param = { "freq" : rutils.c2f(params[0]),
- "bw" : params[1],
- "center_freq1" : rutils.c2f(params[2]),
- "center_freq2" : rutils.c2f(params[3]) }
- host.monitor_params.append(monitor_param)
-
- try:
- host.execute(["iw", "reg", "set", setup_params['country']])
- rutils.setup_hw_host(host, setup_params, True)
- except:
- pass
- mhosts.append(host)
-
- return mhosts
-
-def destroy(devices, hosts):
- for host in hosts:
- stop(host)
- for monitor in host.monitors:
- host.execute(["ifconfig", monitor, "down"])
- host.monitor_params = []
-
-def setup(host, monitor_params=None):
- if host is None:
- return
-
- if monitor_params == None:
- monitor_params = host.monitor_params
-
- ifaces = re.split('; | |, ', host.ifname)
- count = 0
- for param in monitor_params:
- try:
- iface = ifaces[count]
- except:
- logger.debug(traceback.format_exc())
- break
- host.execute(["ifconfig", iface, " down"])
- host.execute(["rfkill", "unblock", "wifi"])
- host.execute(["iw", iface, "set type monitor"])
- host.execute(["ifconfig", iface, "up"])
- status, buf = host.execute(["iw", iface, "set", "freq", param['freq'],
- param['bw'], param['center_freq1'],
- param['center_freq2']])
- if status != 0:
- logger.debug("Could not setup monitor interface: " + buf)
- continue
- host.monitors.append(iface)
- count = count + 1
-
-def run(host, setup_params):
- monitor_res = []
- log_monitor = ""
- if host is None:
- return None
- if len(host.monitors) == 0:
- return None
- try:
- log_dir = setup_params['log_dir']
- tc_name = setup_params['tc_name']
- except:
- return None
-
- tshark = "tshark"
- for monitor in host.monitors:
- host.execute(["ifconfig", monitor, "up"])
- tshark = tshark + " -i " + monitor
- log_monitor = log_monitor + "_" + monitor
-
- log = log_dir + tc_name + "_" + host.name + log_monitor + ".pcap"
- host.add_log(log)
- thread = host.thread_run([tshark, "-w", log], monitor_res)
- host.thread = thread
-
-
-def stop(host):
- if host is None:
- return
- if len(host.monitors) == 0:
- return
- if host.thread is None:
- return
-
- host.thread_stop(host.thread)
- host.thread = None
-
-# Add monitor to existing interface
-def add(host, monitors):
- if host is None:
- return
-
- for monitor in monitors:
- if monitor != "all" and monitor != host.name:
- continue
- mon = "mon_" + host.ifname
- status, buf = host.execute(["iw", host.ifname, "interface", "add", mon,
- "type", "monitor"])
- if status == 0:
- host.monitors.append(mon)
- host.execute(["ifconfig", mon, "up"])
- else:
- logger.debug("Could not add monitor for " + host.name)
-
-def remove(host):
- stop(host)
- for monitor in host.monitors:
- host.execute(["iw", monitor, "del"])
- host.monitors.remove(monitor)
-
-
-# get monitor params from hostapd/wpa_supplicant
-def get_monitor_params(wpa, is_p2p=False):
- if is_p2p:
- get_status_field_f = wpa.get_group_status_field
- else:
- get_status_field_f = wpa.get_status_field
- freq = get_status_field_f("freq")
- bw = "20"
- center_freq1 = ""
- center_freq2 = ""
-
- vht_oper_chwidth = get_status_field_f("vht_oper_chwidth")
- secondary_channel = get_status_field_f("secondary_channel")
- vht_oper_centr_freq_seg0_idx = get_status_field_f("vht_oper_centr_freq_seg0_idx")
- vht_oper_centr_freq_seg1_idx = get_status_field_f("vht_oper_centr_freq_seg1_idx")
- if vht_oper_chwidth == "0" or vht_oper_chwidth is None:
- if secondary_channel == "1":
- bw = "40"
- center_freq1 = str(int(freq) + 10)
- elif secondary_channel == "-1":
- center_freq1 = str(int(freq) - 10)
- else:
- pass
- elif vht_oper_chwidth == "1":
- bw = "80"
- center_freq1 = str(int(vht_oper_centr_freq_seg0_idx) * 5 + 5000)
- elif vht_oper_chwidth == "2":
- bw = "160"
- center_freq1 = str(int(vht_oper_centr_freq_seg0_idx) * 5 + 5000)
- elif vht_oper_chwidth == "3":
- bw = "80+80"
- center_freq1 = str(int(vht_oper_centr_freq_seg0_idx) * 5 + 5000)
- center_freq2 = str(int(vht_oper_centr_freq_seg1_idx) * 5 + 5000)
- else:
- pass
-
- monitor_params = {"freq" : freq,
- "bw" : bw,
- "center_freq1" : center_freq1,
- "center_freq2" : center_freq2}
-
- return monitor_params