1# Environment configuration 2# Copyright (c) 2016, Tieto Corporation 3# 4# This software may be distributed under the terms of the BSD license. 5# See README for more details. 6 7# 8# Currently static definition, in the future this could be a config file, 9# or even common database with host management. 10# 11 12import logging 13logger = logging.getLogger() 14 15# 16# You can put your settings in cfg.py file with setup_params, devices 17# definitions in the format as below. In other case HWSIM cfg will be used. 18# 19setup_params = {"setup_hw" : "./tests/setup_hw.sh", 20 "hostapd" : "./tests/hostapd-rt", 21 "wpa_supplicant" : "./tests/wpa_supplicant-rt", 22 "iperf" : "iperf", 23 "wlantest" : "./tests/wlantest", 24 "wlantest_cli" : "./tests/wlantest_cli", 25 "country" : "US", 26 "log_dir" : "/tmp/", 27 "remote_cli" : True, 28 "ipv4_test_net" : "192.168.12.0", 29 "trace_start" : "./tests/trace_start.sh", 30 "trace_stop" : "./tests/trace_stop.sh", 31 "perf_start" : "./tests/perf_start.sh", 32 "perf_stop" : "./tests/perf_stop.sh"} 33 34# 35#devices = [{"hostname": "192.168.254.58", "ifname" : "wlan0", "port": "9877", "name" : "t2-ath9k", "flags" : "AP_HT40 STA_HT40"}, 36# {"hostname": "192.168.254.58", "ifname" : "wlan1", "port": "9877", "name" : "t2-ath10k", "flags" : "AP_VHT80"}, 37# {"hostname": "192.168.254.58", "ifname" : "wlan3", "port": "9877", "name" : "t2-intel7260", "flags" : "STA_VHT80"}, 38# {"hostname": "192.168.254.55", "ifname" : "wlan0, wlan1, wlan2", "port": "", "name" : "t3-monitor"}, 39# {"hostname": "192.168.254.50", "ifname" : "wlan0", "port": "9877", "name" : "t1-ath9k"}, 40# {"hostname": "192.168.254.50", "ifname" : "wlan1", "port": "9877", "name" : "t1-ath10k"}] 41 42# 43# HWSIM - ifaces available after modprobe mac80211_hwsim 44# 45devices = [{"hostname": "localhost", "ifname": "wlan0", "port": "9868", "name": "hwsim0", "flags": "AP_VHT80 STA_VHT80"}, 46 {"hostname": "localhost", "ifname": "wlan1", "port": "9878", "name": "hwsim1", "flags": "AP_VHT80 STA_VHT80"}, 47 {"hostname": "localhost", "ifname": "wlan2", "port": "9888", "name": "hwsim2", "flags": "AP_VHT80 STA_VHT80"}, 48 {"hostname": "localhost", "ifname": "wlan3", "port": "9898", "name": "hwsim3", "flags": "AP_VHT80 STA_VHT80"}, 49 {"hostname": "localhost", "ifname": "wlan4", "port": "9908", "name": "hwsim4", "flags": "AP_VHT80 STA_VHT80"}] 50 51 52def get_setup_params(filename="cfg.py"): 53 try: 54 mod = __import__(filename.split(".")[0]) 55 return mod.setup_params 56 except: 57 logger.debug("__import__(" + filename + ") failed, using static settings") 58 pass 59 return setup_params 60 61def get_devices(filename="cfg.py"): 62 try: 63 mod = __import__(filename.split(".")[0]) 64 return mod.devices 65 except: 66 logger.debug("__import__(" + filename + ") failed, using static settings") 67 pass 68 return devices 69 70def get_device(devices, name=None, flags=None, lock=False): 71 if name is None and flags is None: 72 raise Exception("Failed to get device") 73 word = name.split(":") 74 name = word[0] 75 for device in devices: 76 if device['name'] == name: 77 return device 78 for device in devices: 79 try: 80 device_flags = device['flags'] 81 if device_flags.find(flags) != -1: 82 return device 83 except: 84 pass 85 raise Exception("Failed to get device " + name) 86 87def put_device(devices, name): 88 pass 89