| Index: server/site_linux_router.py
|
| diff --git a/server/site_linux_router.py b/server/site_linux_router.py
|
| index d1b8072d1dc33de7fbbdb313fdd8d0bb3b972fba..8825e28d270864a46a1eea9062297ba0c7086680 100644
|
| --- a/server/site_linux_router.py
|
| +++ b/server/site_linux_router.py
|
| @@ -2,7 +2,7 @@
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
|
|
| -import re
|
| +import logging, re
|
|
|
| def isLinuxRouter(router):
|
| router_uname = router.run('uname').stdout
|
| @@ -33,32 +33,34 @@ class LinuxRouter(object):
|
| # Network interfaces.
|
| self.bridgeif = params.get('bridgedev', "br-lan")
|
| self.wiredif = params.get('wiredev', "eth1")
|
| - self.wlanif = "wlan0"
|
| + self.wlanif2 = "wlan2"
|
| + self.wlanif5 = "wlan5"
|
|
|
| # Default to 1st available wireless phy.
|
| - if "phydev" not in params:
|
| + if "phydev2" not in params:
|
| output = self.router.run("%s list" % self.cmd_iw).stdout
|
| test = re.compile("Wiphy (.*)")
|
| for line in output.splitlines():
|
| m = test.match(line)
|
| if m:
|
| - self.phydev = m.group(1)
|
| + self.phydev2 = m.group(1)
|
| + self.phydev5 = self.phydev2
|
| break
|
| else:
|
| raise error.TestFail("No Wireless NIC detected on the device")
|
| else:
|
| - self.phydev = params['phydev']
|
| + self.phydev2 = params['phydev2']
|
| + self.phydev5 = params.get('phydev5', self.phydev2)
|
|
|
|
|
| # hostapd configuration persists throughout the test, subsequent
|
| # 'config' commands only modify it.
|
| self.hostapd = {
|
| 'configured': False,
|
| - 'file': "/tmp/%s.conf" % self.phydev,
|
| + 'file': "/tmp/hostapd-test.conf",
|
| 'driver': "nl80211",
|
| 'conf': {
|
| 'ssid': defssid,
|
| - 'interface': self.wlanif,
|
| 'bridge': self.bridgeif,
|
| 'hw_mode': 'g'
|
| }
|
| @@ -110,10 +112,11 @@ class LinuxRouter(object):
|
| "mesh" : "mesh",
|
| "wds" : "wds",
|
| }[params['type']]
|
| - phydev = params.get('phydev', self.phydev)
|
| - self.router.run("%s phy %s interface add %s type %s" %
|
| - (self.cmd_iw, phydev, self.wlanif, phytype))
|
|
|
| + self.router.run("%s phy %s interface add %s type %s" %
|
| + (self.cmd_iw, self.phydev2, self.wlanif2, phytype))
|
| + self.router.run("%s phy %s interface add %s type %s" %
|
| + (self.cmd_iw, self.phydev5, self.wlanif5, phytype))
|
|
|
|
|
| def destroy(self, params):
|
| @@ -237,16 +240,25 @@ class LinuxRouter(object):
|
| conf['ieee80211n'] = 1
|
| conf['ht_capab'] = ''.join(htcaps)
|
|
|
| + # Figure out the correct interface.
|
| + if conf.get('hw_mode', 'b') == 'a':
|
| + conf['interface'] = self.wlanif5
|
| + else:
|
| + conf['interface'] = self.wlanif2
|
| +
|
| # Generate hostapd.conf.
|
| self.router.run("cat <<EOF >%s\n%s\nEOF\n" %
|
| (self.hostapd['file'], '\n'.join(
|
| "%s=%s" % kv for kv in conf.iteritems())))
|
|
|
| # Run hostapd.
|
| + logging.info("Starting hostapd...")
|
| self.router.run("%s -B %s" %
|
| (self.cmd_hostapd, self.hostapd['file']))
|
|
|
| +
|
| # Set up the bridge.
|
| + logging.info("Setting up the bridge...")
|
| self.router.run("%s setfd %s %d" %
|
| (self.cmd_brctl, self.bridgeif, 0))
|
| self.router.run("%s addif %s %s" %
|
| @@ -256,6 +268,8 @@ class LinuxRouter(object):
|
| self.router.run("%s link set %s up" %
|
| (self.cmd_ip, self.bridgeif))
|
|
|
| + logging.info("AP configured.")
|
| +
|
| # else:
|
| # # use iw to manually configure interface
|
|
|
|
|