Channel assignment for Wireless Mesh Networks (WMNs) attempts to increase the network performance by decreasing the interference of simultaneous transmissions. The reduction of interference is achieved by exploiting the availability of fully or partially non-overlapping channels. Although it is still a young research area, many diﬀerent approaches have already been developed. These approaches can be distinguished into centralized and distributed. Centralized algorithms rely on a central entity, usually called Channel Assignment Server (CAS), which calculates the channel assignment and sends the result to the mesh routers. In distributed approaches, each mesh router calculates its channel assignment decision based on local information. Distributed approaches can react faster to topology changes due to node failures or mobility and usually introduce less protocol overhead since communication with the CAS is not necessary. As a result, distributed approaches are more suitable once the network is operational and running. Distributed approaches can further be classiﬁed into static and dynamic, in regard to the modus of channel switching. In dynamic approaches, channels can be switched on a per-packet basis, whereas in static approaches radios stay on a speciﬁc channel for a longer period of time. Static assignments have been more in focus, since the channel switching time for current Institute of Electrical and Electronics Engineers (IEEE) 802.11 hardware is in the order of milliseconds which is two orders higher than the packet transmission time. Recently, surveys of channel assignment algorithms have been presented which cover certain aspects of the research ﬁeld. The survey in  introduces the problem and presents a couple of distributed algorithms and  gives a broad introduction to centralized and distributed approaches. The survey herein is focused on distributed approaches for peer- to-peer network architectures. This report describes the problem formulation for channel assignment in WMNs and the fundamental concepts and challenges of this research area. We present diﬀerent distributed channel assignment algorithms and characterize them according to a set of classiﬁcation keys. Since channel assignment algorithms may change the connectivity and therefore the network topology, they may have a high impact on routing. Therefore, we present routing metrics that consider channel diversity and adapt better to the multi- radio multi-channel scenario than traditional routing metrics designed for single channel networks. The presented algorithms are discussed and compared focusing on practical evaluations in testbed and network environments. The implementation for real networks is a hard and labor-intensive task because the researcher has to deal with the complexity of the hardware, operating system, and wireless network interface drivers. As a result, frameworks emerged in order to simplify the implementation process. We describe these frameworks and the mechanisms used to help researchers implementing their algorithms and show their limitations and restrictions.