diff options
author | Girish Moturu <gmoturu@google.com> | 2019-07-27 12:03:17 -0700 |
---|---|---|
committer | Girish Moturu <gmoturu@google.com> | 2019-07-29 12:03:36 -0700 |
commit | d8377f90f1f39e48ffd6834980c983f1de3eb181 (patch) | |
tree | 07908a938e5944ccc5f963d2aada0f9e74759385 | |
parent | 7a93394b3c286b9bc26a64ee860acc19d14db96b (diff) | |
download | connectivity-d8377f90f1f39e48ffd6834980c983f1de3eb181.tar.gz |
[packet_capture] Changes to use Gale APs as PCAPs
Gale APs has only 2 phy interfaces each supporting 2G and 5G bands.
It doesn't have phy2 interface with dual bands to support scanning wifi
networks like in onHubs. Added changes to skip setting up managed
interface
Cherry picked changes from aosp
Exempt-From-Owner-Approval: Submitted in aosp. These are cherry picked
to qt-dev
Bug: 138591584
Test: Verified the changes
Change-Id: Icf5211a8789388d39878c717f68dd3ac418874ad
Merged-In: Icf29080a1834f814684bc69a865b10d4824ba0a7
-rwxr-xr-x | acts/framework/acts/controllers/packet_capture.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/acts/framework/acts/controllers/packet_capture.py b/acts/framework/acts/controllers/packet_capture.py index 828c2fe5a..d10ffadce 100755 --- a/acts/framework/acts/controllers/packet_capture.py +++ b/acts/framework/acts/controllers/packet_capture.py @@ -106,7 +106,12 @@ class PacketCapture(object): self._create_interface(MON_2G, 'monitor') self._create_interface(MON_5G, 'monitor') - self._create_interface(SCAN_IFACE, 'managed') + self.managed_mode = True + result = self.ssh.run('ifconfig -a', ignore_status=True) + if result.stderr or SCAN_IFACE not in result.stdout: + self.managed_mode = False + if self.managed_mode: + self._create_interface(SCAN_IFACE, 'managed') self.pcap_properties = dict() self._pcap_stop_lock = threading.Lock() @@ -116,6 +121,8 @@ class PacketCapture(object): Create mon0/mon1 for 2G/5G monitor mode and wlan2 for managed mode. """ + if mode == 'monitor': + self.ssh.run('ifconfig wlan%s down' % iface[-1], ignore_status=True) self.ssh.run('iw dev %s del' % iface, ignore_status=True) self.ssh.run('iw phy%s interface add %s type %s' % (iface[-1], iface, mode), ignore_status=True) @@ -171,6 +178,8 @@ class PacketCapture(object): Returns: List of dictionaries each representing a found network. """ + if not self.managed_mode: + raise PacketCaptureError('Managed mode not setup') result = self.ssh.run('iw dev %s scan' % SCAN_IFACE) if result.stderr: raise PacketCaptureError('Failed to get scan dump') |