We’re excited to announce support for automatic Dynamic Frequency Selection (DFS) in the U.S. and Canada on eero Pro with eeroOS v3.19.0. DFS takes advantage of additional radio channels to avoid interference and improve the speed and reliability of eero networks.
What is DFS?
Much like a highway, the wifi radio spectrum provides lanes, or channels, for data traffic (like car traffic) to pass through. The more wifi devices (like cars) there are in the same lane, the slower traffic gets. Your neighbors’ routers and devices act like additional cars in your lane if they’re using the same channel. DFS channels are like a mostly empty “express lane” that only certified devices can use. Because of this special certification to drive in these lanes, fewer home networks use these channels.
Why are DFS channels special?
In the 5 GHz frequency band, the spectrum is divided into several channel ranges. In the middle of this range are channels that share frequency space with other systems such as weather radar and satellite communications. To safely operate alongside these essential services, DFS was created. DFS is a mechanism and certification program where access points (like eero) must passively listen to the DFS channel and verify that it is clear of radar before transmitting. Once operating in the channel, if an eero network detects a radar signal it must move off of the channel immediately so as not to interfere with these critical services. This is referred to as a “radar strike.”
How does eero work with DFS?
eero access points, or “nodes,” have multiple radios that receive and transmit data independently. We created TrueMesh to allow eero nodes to mesh with each other on every radio. This ensures resiliency to network conditions and interference. eero Pro nodes have two 5 GHz radios, which means we can react to DFS channel conditions on one 5 GHz radio and continue to serve network traffic on the other, with no interruption. In the US, DFS is enabled on the high 5 GHz radio. In Canada, DFS is enabled on the low 5 GHz radio. This difference is due to differences in regulatory power limits in each country (higher power means better range). While this radio is listening to make sure the channel is clear of radar before it begins transmitting, the other 5 GHz radio and 2.4 GHz radio keep meshing and serving clients to provide uninterrupted network connectivity, as well as compatibility for devices that may not support 5 GHz or DFS channels. This enables the device to use more channels while keeping your network and devices working without interruption.
Since there are many client devices that support 5 GHz but not DFS channels, DFS is not enabled on eero (dual-band) at this time and is only available on networks with eero Pro. As with all features, we will continue to monitor how DFS performs in the field, work with customers, and evaluate future improvements that bring this to more of our products.
How do I enable DFS and how often does it run?
DFS support is automatically enabled on all eero networks in the U.S. and Canada running eeroOS v3.19 and above with an eero Pro as the gateway. Using eero’s automatic channel selection (ACS) feature, the gateway will check channel conditions after a reboot and once per week. Use of DFS channels requires a listening period to check for radar signals in the area. If we observe these signals during that period or at any period after we move to a DFS channel, we are required to revert to another channel for a while and later restart the process of listening to see if it’s okay to move back.
So how does it work?
Our ACS algorithm runs several scans to check how much each potential channel is being used, and then runs calculations to pick the clearest channel for your network (taking into account an estimate of your network’s own traffic). A DFS channel will be selected if your network is DFS capable and if it would significantly improve your network to use that channel. Based on our analysis of eero networks over the last several months, DFS channels are typically “clear” with little or no congestion at all.
If your network picks a DFS channel as its most optimal channel for a given radio, it needs to perform a Channel Availability Check (CAC) before it can actually transmit on the channel. This requires taking the radio out of service temporarily and using it in a “listen-only” mode on the new channel for radar strikes for the duration of the CAC period. Once the eero and radio have determined the channel does not contain radar, we can use that channel.
Once CAC is complete, the second step is actually switching all the eero nodes and client devices to the new channel, which requires coordination to do in a correct, failure-proof manner. When a radio is switching channels, it needs to inform all connected devices so they can switch too. This notification is done by tagging wifi beacon frames with Channel Switch Announcement (CSA) parameters like the new channel and a countdown to when the switch will be made.
All eero nodes in a network need to switch to a new channel together to keep their mesh links connected. If, for some reason, a channel switch fails on one node, it will no longer be able to mesh on that radio until it is back on the same channel as its neighbors (but because of TrueMesh, it will still be meshed on all other radios).
To solve this problem, we designed a state machine that makes sure no node is left behind. This was made possible with Bookshelf, which allows us to locally sync state between eero nodes in a network. The eero nodes use Bookshelf to tell each other about successful CACs and coordinate synchronized transitions into and out of DFS channels. These decisions are made locally, without any input from the cloud, and with extremely low latency from start to finish.
We’re excited to launch DFS and provide our customers with an even better connectivity experience. Our team is hard at work on the next wave of performance, reliability, and feature enhancements. If this work sounds interesting to you, we’re hiring! Please check out our careers page for details.
Authors: Alix Katague and Peter Oh (software engineers on eero’s Mesh/Wifi team)