diff mbox series

[10/12] tests: remote: gen/send cfg files

Message ID 20200112220226.5056-10-janusz.dziedzic@gmail.com
State Accepted
Headers show
Series [01/12] tests: remote: switch to python3 | expand

Commit Message

Janusz Dziedzic Jan. 12, 2020, 10:02 p.m. UTC
Instead of hardcoded bss-*.cfg files
generate them correctly, using correct
bssid. Next send/install them on remote
client.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
---
 tests/hwsim/hostapd.py      |  5 +++++
 tests/hwsim/hostapd_conf.py | 38 +++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+)
diff mbox series

Patch

diff --git a/tests/hwsim/hostapd.py b/tests/hwsim/hostapd.py
index 8f2ce02d4..f8db64326 100644
--- a/tests/hwsim/hostapd.py
+++ b/tests/hwsim/hostapd.py
@@ -13,6 +13,7 @@  import wpaspy
 import remotehost
 import utils
 import subprocess
+import hostapd_conf
 
 logger = logging.getLogger()
 hapd_ctrl = '/var/run/hostapd'
@@ -592,6 +593,8 @@  def add_bss(apdev, ifname, confname, ignore_error=False):
         hostname = None
         port = 8878
     hapd_global = HostapdGlobal(apdev)
+    confname = hostapd_conf.cfg_file(apdev, confname, ifname)
+    hapd_global.send_file(confname, confname)
     hapd_global.add_bss(phy, confname, ignore_error)
     port = hapd_global.get_ctrl_iface_port(ifname)
     hapd = Hostapd(ifname, hostname=hostname, port=port)
@@ -610,6 +613,8 @@  def add_iface(apdev, confname):
         hostname = None
         port = 8878
     hapd_global = HostapdGlobal(apdev)
+    confname = hostapd_conf.cfg_file(apdev, confname, ifname)
+    hapd_global.send_file(confname, confname)
     hapd_global.add_iface(ifname, confname)
     port = hapd_global.get_ctrl_iface_port(ifname)
     hapd = Hostapd(ifname, hostname=hostname, port=port)
diff --git a/tests/hwsim/hostapd_conf.py b/tests/hwsim/hostapd_conf.py
index 2243d1f24..a6bffb1d3 100644
--- a/tests/hwsim/hostapd_conf.py
+++ b/tests/hwsim/hostapd_conf.py
@@ -1,5 +1,6 @@ 
 import hostapd
 import os
+import re
 
 def acl_file(dev, apdev, conf):
     filename = os.path.join("/tmp", conf)
@@ -32,3 +33,40 @@  def acl_file(dev, apdev, conf):
         return conf
 
     return filename
+
+def bssid_inc(apdev, inc=1):
+    parts = apdev['bssid'].split(':')
+    parts[5] = '%02x' % (int(parts[5], 16) + int(inc))
+    bssid = '%s:%s:%s:%s:%s:%s' % (parts[0], parts[1], parts[2], parts[3], parts[4], parts[5])
+    return bssid
+
+def cfg_file(apdev, conf, ifname=None):
+    # put cfg file in /tmp directory
+    fname = os.path.join("/tmp", conf)
+
+    match = re.search(r'bss-\d+', conf)
+    if match:
+        with open(fname, 'w') as f:
+            idx = ''.join(filter(str.isdigit, conf))
+            if ifname is None:
+                ifname = apdev['ifname']
+                if idx != '1':
+                    ifname = ifname + '-' + idx
+
+            f.write("driver=nl80211\n")
+            f.write("ctrl_interface=/var/run/hostapd\n")
+            f.write("hw_mode=g\n")
+            f.write("channel=1\n")
+            f.write("ieee80211n=1\n")
+            f.write("interface=%s\n" % ifname)
+
+            f.write("ssid=bss-%s\n" % idx)
+            if conf == 'bss-2-dup.conf':
+                bssid = apdev['bssid']
+            else:
+                bssid = bssid_inc(apdev, int(idx) - 1)
+            f.write("bssid=%s\n" % bssid)
+    else:
+        return conf
+
+    return fname