|
| 1 | +--- |
| 2 | +name: "Mesh channel coordination" |
| 3 | +desc: "Automatically select channels in mesh networks" |
| 4 | +requirements: |
| 5 | + - "C programming skills" |
| 6 | + - "Experienced Linux knowledge (usage and architecture)" |
| 7 | + - "WLAN technology" |
| 8 | + - "Game theory" |
| 9 | + - "Graph theory" |
| 10 | +difficulty: "high" |
| 11 | + |
| 12 | +mentors: |
| 13 | + - CodeFetch |
| 14 | +initiatives: |
| 15 | + - GSoC |
| 16 | + - ffh |
| 17 | + - freifunk |
| 18 | +tags: |
| 19 | + - OpenWrt |
| 20 | + - WLAN |
| 21 | + - Networking |
| 22 | + - Mesh technology |
| 23 | + - Game theory |
| 24 | + - Graph theory |
| 25 | + - Linux |
| 26 | + - C |
| 27 | + - Lua |
| 28 | +collaborating_projects: |
| 29 | + - "freifunk" |
| 30 | + - "ffh Freifunk Hannover" |
| 31 | +--- |
| 32 | + |
| 33 | +The aim of this project is to improve the quality of the wireless user |
| 34 | +experience in mesh networks and to increase the stability of wireless mesh links |
| 35 | +in general specifically mitigating the hidden node problem by utilizing |
| 36 | +diverse channels where adjacent networks might otherwise interfere. |
| 37 | + |
| 38 | +At the moment most mesh solutions define a default channel value for their |
| 39 | +wireless mesh networks. In many cases the nodes have additional means to connect |
| 40 | +to their neighboring nodes like direct wired connections or VPN connections. |
| 41 | +Additionally, some could utilize multiple radios to reduce the hidden node |
| 42 | +problem in addition to diversity routing. |
| 43 | + |
| 44 | +Upcoming features like MCCA, BSS coloring and dedicated RUs will further allow |
| 45 | +reducing contention caused by interference. |
| 46 | +These also need a form of coordination which has been subject of current |
| 47 | +research and which is partly being defined in the WiFi 7 standard. |
| 48 | + |
| 49 | +As a mesh network is a highly dynamic system and as the radio is often used to |
| 50 | +both serve the clients and forward mesh traffic in parallel (so-called VIFs - |
| 51 | +virtual interfaces), the configuration of the channels must be done respecting |
| 52 | +the special properties of mesh protocols while taking route switches into |
| 53 | +consideration and reacting accordingly. Care must be taken to not influence the |
| 54 | +routing decisions of the mesh protocol in a way that leads to an imbalance. |
| 55 | + |
| 56 | +An example for an imbalance occurs in dense high-use scenarios with packet- |
| 57 | +loss-metric based mesh routing protocols if a wireless link appears to be |
| 58 | +saturated due to interference caused by neighboring nodes and their clients. |
| 59 | +If a redundant route exists in that case, nodes might choose another route with |
| 60 | +a presumably better metric. |
| 61 | +In theory that switch was assumed to be transparent to the user, but in practice |
| 62 | +a mediocre link is often swapped for a link that e.g. has even less capacity |
| 63 | +congesting the link long enough for some clients to assume a broken connection |
| 64 | +and switch to another node which will eventually suffer, too. |
| 65 | +This problem can be mitigated using adjacent channels where coverage overlaps |
| 66 | +and a redundant connection exists. |
| 67 | + |
| 68 | +Even though modern mesh routing protocols are hardened against some of these |
| 69 | +issues by not only considering the packet loss for their metric calculation but |
| 70 | +also other criteria like calculating the route metrics from wireless statistics |
| 71 | +exported from the kernels mac80211 subsystem, they are still an open topic of |
| 72 | +research. |
| 73 | + |
| 74 | +For example the highly sophisticated diversity routing RFC amendment of the more |
| 75 | +and more popular routing protocol Babel does not consider shared usage of the |
| 76 | +radios mesh network with the client network which can lead to unexpected |
| 77 | +behavior as different WLAN clients tend to prefer quite individual frequencies |
| 78 | +depending on their hardware, antenna and software configuration which could |
| 79 | +favor an imbalance. |
| 80 | + |
| 81 | +As this project involves a lot of different disciplines the main goal of the |
| 82 | +student is not to get deep knowledge about every internal. Instead, the student |
| 83 | +shall be encouraged to think and act independently then cooperatively and to |
| 84 | +find a simple, creative way to improve the current situation. |
| 85 | + |
| 86 | +This reflects the results-oriented approach to work which is often required for |
| 87 | +participating in open-source projects where code changes must be kept simple to |
| 88 | +be reviewed timely and to increase the chance of being accepted. |
| 89 | + |
| 90 | + |
| 91 | +#### Ideas |
| 92 | +* Create "hearing maps" |
| 93 | +* Find ways to create hierarchical sub-trees in the network by identifying |
| 94 | + "border nodes" (e.g. VPN or PtP links) which is critical for decentralizing |
| 95 | + the coordination |
| 96 | +* Only use the links which are actually needed: If a node can reach all of |
| 97 | + its neighbors by other means (e.g. VPN) it should not be bound to a specific |
| 98 | + channel assuming the available bandwidth offered by the alternative link and |
| 99 | + the metric is sufficient. It may even be possible to deactivate the wireless |
| 100 | + mesh network for that radio to save airtime (e.g. if there is no neighbor). |
| 101 | + This needs to dynamically react if e.g. a new neighbor appears. |
| 102 | +* Analyze the roaming behavior of the clients to estimate where interference |
| 103 | + due to the hidden node problem is more likely. |
| 104 | +* Take actual traffic flow patterns into account. |
| 105 | +* Identify e.g. long-range interference using coordinates if given similar |
| 106 | + to the WiFi 6 proposed Automatic Frequency Coordination scheme. |
| 107 | +* Make use of game theory to achieve a Nash equilibrium instead of central |
| 108 | + coordination. |
| 109 | +* Where a form of centralization is unavoidable, make the consensus fault-proof. |
| 110 | + E.g. if the elected coordinator fails the system must reconstitute timely. |
| 111 | + The Raft consensus protocol is an interesting candidate for this. |
| 112 | +* Allow manual override |
| 113 | + |
| 114 | +#### Milestones |
| 115 | +* Add basic support for mesh networks in DAWN |
| 116 | +* Implement a daemon "meshrealmd" which can interact with DAWN and implements |
| 117 | + the graph theory-based approach presented in the paper "Interference-Aware |
| 118 | + Channel Assignment in Wireless Mesh Networks" in a decentralized way |
| 119 | +* freifunk-gluon integration (OpenWrt-based mesh framework) |
| 120 | + |
| 121 | +#### Inspirationals |
| 122 | + * https://blog.freifunk.net/2018/05/19/dawn-a-decentralized-wifi-controller/ |
| 123 | + * https://link.springer.com/chapter/10.1007/978-3-540-89183-3_7 |
| 124 | + * https://dblp.org/pid/175/1661.html |
| 125 | + * https://github.com/willemt/ticketd |
0 commit comments