Added support for per-band phys.
Review URL: http://codereview.chromium.org/2054004
diff --git a/server/site_linux_router.py b/server/site_linux_router.py
index d1b8072..8825e28 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 @@
# 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 @@
"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 @@
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 @@
self.router.run("%s link set %s up" %
(self.cmd_ip, self.bridgeif))
+ logging.info("AP configured.")
+
# else:
# # use iw to manually configure interface