Download WiFriedX — a band-aid that can double Yosemite WiFi speeds.

An In-depth look at Yosemite WiFi issues due to AWDL & AirDrop.

There are a number of WiFi issues plaguing Yosemite users. Some have been around awhile and some are new. Their various combinations have created a perfect storm that severely impact users’ WiFi while also making it very difficult for Apple to identify and resolve. Apple Wireless Direct Link (AWDL) is new in Yosemite, and is causing severe WiFi interference while also contributing to other Yosemite WiFi trouble.

A few weeks ago, I stumbled upon a WiFi issue on my iOS 8.1 iPhone 5S/6. I conducted some research into the issue and wrote about my findings in WiFried, the issue of Bonjour over Apple Wireless Direct Link (AWDL). Just before finishing that article, I decided to glance at Yosemite and noticed similar behavior. However, I only looked at Yosemite peripherally as I had only made a workaround for iOS.

This week, I decided to spend more time diving into AirDrop and AWDL on Yosemite. Here’s what I found:

AirDrop will destroy you

Well, really just your WiFi ☺

I said it before and I’ll say it again. Apple, please no Bonjour over AWDL (or add a new WiFi chip to do so). Why not? Because it requires the WiFi chip to transmit and receive over two interfaces/channels simultaneously.

I opined previously how I didn’t believe it was possible to really have AWDL work without a performance penalty. However:

With the iPhone 6 WiFi chipset, Broadcom specifically touts “connect to multiple Wi-Fi ….without interference issues”. Either Apple has bugs still to work out or Broadcom oversold their product.

Of course, Broadcom’s press release stating “without interference issues” is referring to their latest chip that’s used in the iPhone 6. Even if Apple could improve the code, what about older iPhones and Macs? Even the latest iMac is using a ~3 year old WiFi Chip (Broadcom’s BCM20702).

Personally, I believe this is not an Apple bug, but rather a hardware limitation, and a bad choice by Apple in terms of implementation. Sure, I believe Apple can fully move Bonjour over AWDL to strictly Bluetooth. But when you AirDrop a file, I’m confident there will continue to be interference with an active WiFi access point connection on at least most, if not all, of today’s Yosemite and iOS 8 hardware.

Download WiFriedX and disable AirDrop and AWDL

As I detail below, there’s no way to full disable AWDL in Yosemite. As AWDL is impacting WiFi performance and perhaps aggravating other issues, I’ve put together a small app to allow users to toggle AWDL off and on from the menu bar.

Results from one user with an 80% improvement in WiFi performance after installing WiFriedX

WiFriedX allows users to enable/disable AWDL from the Yosemite Menu bar

Download WiFriedX

Source Code

Note: WiFriedX only assists Macs with an awdl0 interface, which is roughly mid 2012 and later. It will not help with, what Apple refers to as, “Older Mac”.

Reproduce AirDrop issue on Yosemite

To reproduce the AWDL issue on Yosemite, you need at least two devices that are on either Yosemite or iOS 8, including any point releases. You only need to begin discovering AirDrop services to see the effects.

AirDrop discovery begins after pressing the action button on both Yosemite and iOS. Additionally, discovery will begin when choosing the AirDrop tab in Finder.

On Yosemite: To begin discovering AirDrop services on Yosemite, open the AirDrop tab in Finder. This device and any nearby devices with AirDrop set to “Everyone” will be affected. On iOS 8: To begin discovering AirDrop services, open the Photos app, choose a picture, and press the action button. This device and any nearby devices with AirDrop set to “Everyone” will be affected.

If just one Yosemite device user leaves open the AirDrop tab at your office or your dorm, and you are discoverable by that device, your WiFi performance is doomed!

From a usability standpoint, Apple simply can’t expect users to know that leaving the Finder AirDrop tab open causes interference with their WiFi & nearby devices.

Without WiFriedX: Use “No One”

As a less complete alternative to WiFriedX, you can set AirDrop discoverability to “No One” in Finder -> AirDrop tab. By preventing resolution of your device, you can prevent other devices from interfering with your WiFi performance without your permission.

Why: This helps reduce exposure to AWDL, but WiFriedX helps more.

Catch: You’ll need to change this setting when you want to use incoming AirDrop connections.

AirDrop allows you to set your discoverability. By setting it to “No One”, nearby devices running Yosemite or iOS 8 will no longer be able to induce WiFi interference.

If not using WiFriedX, Yosemite users should select “No One” in their AirDrop settings.

Note: The discoverability setting is available only for newer Macs with an awdl0 interface.

By default when you are not logged into iCloud, Yosemite sets discoverability to “No One”. However, as I recommended above and explain in more detail below, you are still better off using WiFriedX to disable awdl0 as “No One” does not equate to stop using AWDL.

AirDrop: Don’t use “Everyone”

This should be called, “Allow Everyone to destroy my WiFi”. Seriously. On iOS 8–8.1, simply opening the Control Center could impact your WiFi. On iOS 8.1.1, Apple has reduced the impact. If someone uses an iOS 8.1.1 AirDrop-capable iPhone nearby and opens the Photos app, selects a photo, and presses the action button (ie, to iMessage the photo), they will inadvertently reduce your WiFi performance. The minimum time span it will affect nearby WiFi devices is about 30 seconds after the user has closed the action view.

With AirDrop set to “Everyone” or “Contacts Only”, devices from

over 40m (120 feet) away can severly degrade your WiFi performance.

Simply put, the ability for neighboring devices to half or worse my WiFi’s performance is not acceptable.

AirDrop: Don’t Use “Contacts Only”

If you sign into iCloud, Yosemite changes the discoverability to “Contacts Only”. I would rename this setting, “Grant Permission to degrade my WiFi only if I know you”. It’s a definite improvement over “Everyone”, but typically in an office or dorm, nearby iPhone’s are in your contact list.

Is AirDrop set to “No One” enough?

It turns out AWDL is still a problem even when set to “No One”. The largest impact I saw during my tests was when I connected to a WiFI access point. For 30 seconds to a minute, I would experience severe degradation of my MBP’s WiFi speeds. To verify, I brought the awdl0 interface down and the speed degradation did not occur (except for the impact of the scans mentioned below). You can also verify traffic going out the awdl0 interface by doing a “netstat -i” and watch the packet count increase on the awdl0 interface when hopping access points.

AWDL Channel Insanity

I was curious what channel(s) AWDL uses, so I whipped together some quick code to fetch the channel from the kernel on the awdl0 interface. During discovery, I was surprised to see the awdl0 interface alternating between channel 6 and 149, despite being connected to an access point on channel 11 or 36 for example.

AirDrop uses 5ghz (chan 149) for Transmit

Another important note is that while it will jump channels while browsing for nearby devices, it appears to use the 5Ghz 149 WiFi channel for actual transmission. While transmitting a file, the interface will report alternating between channel 149 and the WiFi channel my Mac is connected to (instead of channel 6 as before). If my Mac is not connected to any access point, the interface reports back channel 149 the entire time the AirDrop interface is in use.

Most concerning was that after AirDrop browsing is stopped on my MBP, after about 30 seconds of final alternating, the awdl0 interface would report back channel 1. Now you wouldn’t expect any traffic on the awdl0 interface at this time, so no worries right? However, after being set to channel 1, packets do get sent out over awdl0. I noticed these packets, along with interference and performance degradation, most prominently when I switched WiFi connections.

Too Much Information, But….

This may be TMI, but to boil it down to a relevant question, why is Apple jumping around between 6 and 149 during discovery? I understand the reason to use the 5Ghz 149 channel for sending and discovery, but not clear as to why, during discovery, it jumped between channel 6 and 149. I mention this as I hope Apple will perhaps look into this, and perhaps find it to be a bug. This jumping around is during the discovery period which corresponds with when Yosemite is having the most problematic interference / performance degradation.

Surprisingly, AWDL is actually interfering with even Windows machines

I set my WiFi access point to channel 149 and disconnected my MBP and iPhone 6. On a 3rd Windows computer, I ran a speed test while sending a file over AirDrop between the MBP and iPhone 6. Not surprisingly, my Windows computer began to degrade its WiFi performance due to interference from AirDrop.

To be clear, the channel 149 interference is not nearly as severe as the way AirDrop discovery degrades Yosemite. Additionally, it’s only noticeable when users are actively using AirDrop, so it’s unlikely you’ll ever have much interference.

To avoid interference, I’m no longer going to use the 149 5Ghz channel that Apple has dedicated to using for AWDL.

One anecdotal reference a user not being able to use 149.

With changes in iOS 8.1.1, it’s clear that Apple has given the AWDL issue attention. There have been reports of improved performance from users on 10.10.1/2, but it’s clear from the list below, there’s still a lot of challenges for Apple to tackle. I’m crossing my fingers, but not holding my breath.