prpl Mesh
prplMesh is an open-source, carrier-grade and certifiable implementation of the WiFi Alliance’s Multi-AP EasyMesh specification.
The project’s aim is to create a baseline for OEMs and developers to easily integrate EasyMesh into various products and platforms. Initial targets include prplWRT and RDK-B with support for WiFi chipsets from any SoC vendor integrated in residential gateways and WiFi extenders, from both retail brands and internet service providers.
The functionality includes both the Agent and Controller part of the EasyMesh specification. It is scoped as a reference implementation, however we leave ample room for product differentiation, for example for proprietary IP algorithms making intelligent decisions for the whole EasyMesh network.
EasyMesh features
- Device onboarding – EasyMesh offers the opportunity to easily add new devices to your existing network setup. Simply do a standard WPS pairing, and your device will be automatically provisioned with the necessary settings it needs to do its job. SSID, passphrase, and other settings are copied from the controller (usually a router) to new wireless repeaters, range extenders and the like.
- Synchronization of settings – Ever wanted to change your SSID or passphrase, and find out that this means you need to change it across all of your devices? With EasyMesh, you only change your network settings once, and all devices will be automatically updated
- Channel selection – EasyMesh ensures that all wireless access points in your network use the correct bands to ensure maximum efficiency of your network, so that interference with neighbouring wireless networks is minimized and all connected devices get the maximum bandwidth possible. Devices are nudged to change the band they are using to a better one when appropriate, e.g. to switch from a 2.4GHz band to a 5GHz band.
- Access Point steering – When devices move about, the signal they are getting from the access point to which they’re connected might be getting quite poor, and other nearby access points might give a better signal. EasyMesh ensures that devices will connect – and reconnect – to the access point that’s best suited to handle that device, taking into account both the signal strength to the access point, as well as the load on the access point so devices don’t connect to access points that are overloaded.
- Backhaul optimization – It’s possible that your Wi-Fi repeaters are connected to the rest of the network both by a wired connection, and a wireless connection. The EasyMesh specification will ensure that the correct upstream link is used at all times (usually a wired link like Ethernet if it’s available, falling back to a wireless backhaul link if it’s not). This decreases the odds of an accidentally disconnected cable suddenly knocking out the internet access to all your devices, and ensures the fastest upstream link is used
- Traffic separation – Don’t want guests to access your internal servers? You don’t have to! Built in to the EasyMesh specification is a way to set up a parallel network (using the same infrastructure) for guest devices to access your network, so they can only access the internet through your network infrastructure, and nothing else!
See the Wi-Fi Alliance’s EasyMesh page for more information
Benefits of prplMesh
- Full compliance with Wi-Fi EasyMesh R1 (EasyMesh R2 support is in progress)
- An architecture that’s easy to extend and modify for your own purposes
- A modular solution that can be compiled to only act as an agent, or only as a controller, or with both sets of functionality
- A high level API that exposes detailed network topography and allows the prplMesh stack to be controlled externally (Work in progress)
- An IEEE1905.1 stack that can be addressed directly by different processes
- A TLV library that allows anyone to add additional TLVs without writing source code
- Support for a wide variety of linux-based router operating platforms, including openWRT and RDK-B
- Support for multiple hardware platforms, including both Intel- and Qualcomm-based SoCs (support for other SoCs is planned)
- An extensible and easy to program hardware abstraction layer, allowing anyone to make prplmesh support other platforms
- A framework for testing prplMesh using either emulated devices, or actual devices, depending on what devices you have access to.
- This is run for each commit done to the codebase, to ensure stability
- prplMesh is tested daily using the EasyMesh test suite
This project is part of a wider collaboration between prpl Foundation and Broadband Forum, and is based on a proven full mesh solution contributed by Intel Corporation (Controller and Agent running on actual HW).